diff --git a/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm b/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm index f1b0582ec3..35b5d702ab 100644 --- a/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm +++ b/_maps/RandomRuins/AnywhereRuins/fountain_hall.dmm @@ -5,45 +5,45 @@ "c" = ( /obj/structure/healingfountain, /turf/open/floor/carpet/purple, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "d" = ( /obj/structure/fluff/divine/conduit, /turf/open/floor/mineral/plasma, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "e" = ( /obj/structure/sacrificealtar, /turf/open/floor/carpet/purple, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /mob/living/simple_animal/butterfly, /turf/open/floor/carpet/purple, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "g" = ( /mob/living/simple_animal/butterfly, /turf/open/floor/carpet/red, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "h" = ( /obj/structure/fans/tiny/invisible, /turf/open/floor/carpet/red, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "u" = ( /turf/open/floor/carpet/purple, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "G" = ( /turf/closed/wall/mineral/cult{ sheet_amount = 0 }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "J" = ( /mob/living/simple_animal/butterfly, /turf/open/floor/carpet/royalblack, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "T" = ( /turf/open/floor/carpet/royalblack, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "U" = ( /turf/open/floor/carpet/red, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm index e20fa042d7..2d2ad90206 100644 --- a/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm +++ b/_maps/RandomRuins/AnywhereRuins/golem_ship.dmm @@ -4,7 +4,7 @@ /area/template_noop) "b" = ( /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "c" = ( /obj/structure/closet/crate, /obj/item/shovel, @@ -20,7 +20,7 @@ /obj/item/card/id/mining, /obj/item/gps/mining/off, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "d" = ( /obj/structure/closet/crate, /obj/item/shovel, @@ -34,18 +34,18 @@ /obj/item/card/id/mining, /obj/item/gps/mining/off, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "e" = ( /obj/item/storage/toolbox/mechanical, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "f" = ( /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "g" = ( /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "h" = ( /obj/structure/shuttle/engine/heater{ dir = 4 @@ -56,7 +56,7 @@ /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "i" = ( /obj/structure/shuttle/engine/propulsion{ dir = 8 @@ -64,37 +64,37 @@ /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "j" = ( /obj/machinery/door/airlock/titanium, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "k" = ( /obj/machinery/computer/arcade/battle{ dir = 4; icon_state = "arcade" }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "l" = ( /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "m" = ( /obj/effect/mob_spawn/human/golem/adamantine, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "n" = ( /obj/machinery/mineral/equipment_vendor/golem, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "o" = ( /obj/item/resonator, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "p" = ( /obj/machinery/mineral/ore_redemption, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "q" = ( /obj/structure/statue/gold/rd, /obj/structure/window/reinforced{ @@ -105,24 +105,24 @@ dir = 8 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "r" = ( /obj/machinery/computer/shuttle, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "s" = ( /obj/machinery/computer/arcade/orion_trail{ dir = 4; icon_state = "arcade" }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "t" = ( /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "u" = ( /obj/structure/table/wood, /obj/item/bedsheet/rd/royal_cape{ @@ -141,27 +141,27 @@ }, /obj/item/tcg_card/special/golem, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "v" = ( /obj/item/resonator/upgraded, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "w" = ( /obj/machinery/autolathe, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "x" = ( /obj/structure/table/wood, /obj/machinery/reagentgrinder, /obj/item/gps/mining, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "z" = ( /obj/structure/extinguisher_cabinet{ pixel_y = -30 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "A" = ( /obj/structure/table/wood, /obj/item/surgical_drapes{ @@ -170,14 +170,14 @@ /obj/item/storage/firstaid/fire, /obj/item/storage/firstaid/fire, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "B" = ( /obj/item/storage/firstaid/fire, /obj/structure/table/wood, /obj/item/storage/firstaid/fire, /obj/machinery/light, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "C" = ( /obj/item/storage/firstaid/brute, /obj/structure/table/wood, @@ -187,34 +187,34 @@ name = "land claim" }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "D" = ( /obj/item/storage/firstaid/brute, /obj/structure/table/wood, /obj/item/storage/firstaid/brute, /obj/item/disk/design_disk/golem_shell, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "E" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "F" = ( /obj/structure/ore_box, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "G" = ( /turf/closed/wall/mineral/titanium, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "H" = ( /obj/machinery/door/airlock/titanium, /obj/structure/fans/tiny, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "I" = ( /obj/machinery/light/small, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "K" = ( /obj/machinery/door/airlock/titanium, /obj/structure/fans/tiny, @@ -222,59 +222,59 @@ dir = 8 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "L" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "M" = ( /obj/effect/mob_spawn/human/golem/adamantine, /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "N" = ( /obj/machinery/light{ dir = 1 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "O" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "Q" = ( /obj/machinery/light/small, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "T" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/titanium, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "U" = ( /obj/effect/mob_spawn/human/golem/adamantine, /obj/machinery/light/small, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "V" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plating, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) "Y" = ( /obj/machinery/door/airlock/titanium, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/golem_ship) +/area/ruin/lavaland/powered/golem_ship) (1,1,1) = {" a diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm index 6947549f83..1ec9461699 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_bathhouse.dmm @@ -4,14 +4,14 @@ /area/template_noop) "b" = ( /turf/closed/wall/ice, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "c" = ( /obj/machinery/shower{ pixel_y = 16 }, /obj/structure/curtain, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "d" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/explored) @@ -23,40 +23,40 @@ pixel_y = 20 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "f" = ( /obj/structure/table/greyscale, /obj/item/bikehorn/rubberducky, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "g" = ( /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "h" = ( /obj/item/soap, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "i" = ( /obj/machinery/door/airlock/freezer{ name = "bath house airlock" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "j" = ( /turf/closed/wall/mineral/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "k" = ( /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "l" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/meatballspaghetti, /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "m" = ( /obj/structure/bookcase/random, /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "n" = ( /turf/open/floor/plating/asteroid/snow/ice/icemoon, /area/icemoon/underground/explored) @@ -64,7 +64,7 @@ /obj/structure/bed, /obj/item/bedsheet, /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) (1,1,1) = {" b diff --git a/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm b/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm index 38e4f2685e..0e2789066c 100644 --- a/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm +++ b/_maps/RandomRuins/IceRuins/icemoon_underground_library.dmm @@ -7,167 +7,167 @@ /obj/item/documents/syndicate/mining, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ac" = ( /turf/closed/wall/mineral/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ad" = ( /turf/closed/mineral/random/snow, /area/icemoon/underground/explored) "ae" = ( /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "af" = ( /obj/item/stack/sheet/mineral/wood, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ag" = ( /obj/item/feather, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ah" = ( /obj/structure/bookcase/random, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ai" = ( /obj/structure/table/wood/fancy/black, /obj/item/paper/crumpled/fluff/stations/lavaland/library/diary2, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ak" = ( /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "al" = ( /turf/closed/wall/mineral/iron, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "am" = ( /obj/structure/table/wood/fancy/black, /obj/item/book_of_babel, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ao" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ap" = ( /obj/item/stack/sheet/mineral/wood, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aq" = ( /obj/structure/fluff/paper{ dir = 1 }, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ar" = ( /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "as" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/fluff/ruins/oldstation/protosing, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "at" = ( /obj/structure/fluff/paper, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "av" = ( /obj/structure/bookcase/random, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aw" = ( /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ax" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ay" = ( /obj/machinery/door/keycard/library, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "az" = ( /obj/item/paper/crumpled/fluff/stations/lavaland/library/diary, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aA" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aC" = ( /obj/item/feather, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aD" = ( /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aE" = ( /obj/item/stack/sheet/mineral/wood, /obj/item/book/manual/random, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aF" = ( /obj/item/book/manual/random, /obj/effect/decal/cleanable/dirt, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aG" = ( /obj/structure/table/bronze, /obj/item/stack/ore/slag, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aH" = ( /obj/structure/table/bronze, /obj/item/statuebust, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aI" = ( /obj/effect/mob_spawn/human/skeleton, /obj/item/clothing/head/rice_hat, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aK" = ( /obj/item/feather, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper/stack, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aM" = ( /obj/item/stack/sheet/mineral/wood, /obj/item/book/manual/random, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aN" = ( /obj/structure/statue/sandstone/venus, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aO" = ( /mob/living/simple_animal/pet/fox, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aP" = ( /obj/item/keycard/library, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aR" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aS" = ( /obj/structure/table/wood/fancy/black, /obj/effect/decal/cleanable/dirt, @@ -176,39 +176,39 @@ on = 1 }, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aV" = ( /obj/item/stack/sheet/mineral/wood, /obj/structure/fluff/paper/stack, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aW" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aX" = ( /obj/structure/table/bronze, /obj/item/statuebust, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aY" = ( /obj/structure/table_frame/wood, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aZ" = ( /obj/structure/fluff/paper/stack, /obj/structure/fluff/paper, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ba" = ( /obj/structure/barricade/wooden/snowed, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bc" = ( /obj/item/feather, /obj/structure/fluff/paper, @@ -216,81 +216,81 @@ dir = 1 }, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper{ dir = 1 }, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "be" = ( /obj/structure/fluff/paper{ dir = 5 }, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bf" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bg" = ( /obj/item/paper/fluff/ruins/oldstation/protogun, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bh" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/pet/fox, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bi" = ( /obj/structure/fluff/paper, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bj" = ( /obj/item/book/manual/random, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bk" = ( /obj/structure/fluff/paper{ dir = 10 }, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bl" = ( /obj/item/storage/box/fountainpens, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bm" = ( /obj/structure/fluff/paper/stack, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bn" = ( /obj/item/book/manual/random, /obj/item/stack/sheet/mineral/wood, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bo" = ( /obj/item/stack/sheet/mineral/wood, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bq" = ( /obj/structure/mineral_door/wood, /obj/structure/barricade/wooden/crude/snow, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "br" = ( /obj/structure/girder, /turf/closed/mineral/random/snow, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bt" = ( /obj/effect/decal/cleanable/dirt, /turf/template_noop, @@ -305,21 +305,21 @@ "by" = ( /obj/item/statuebust, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bz" = ( /obj/item/flashlight/lantern/jade{ on = 1 }, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bA" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bB" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bC" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper{ @@ -327,7 +327,7 @@ }, /mob/living/simple_animal/pet/fox, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm index 0d1e740d13..2e23cf937c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm @@ -5,14 +5,14 @@ "ad" = ( /obj/structure/flora/ausbushes/leafybush, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ae" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical, /obj/item/stack/cable_coil, /obj/item/storage/box/lights/mixed, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "af" = ( /obj/structure/table, /obj/item/clothing/mask/gas, @@ -23,22 +23,22 @@ /obj/item/clothing/glasses/sunglasses/big, /obj/item/clothing/glasses/sunglasses/big, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ag" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ah" = ( /obj/effect/mob_spawn/human/bartender/alive, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ai" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aj" = ( /turf/closed/wall/mineral/sandstone, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ak" = ( /obj/structure/toilet, /obj/effect/turf_decal/sand, @@ -47,27 +47,27 @@ }, /obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "al" = ( /obj/structure/urinal{ pixel_y = 32 }, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "am" = ( /obj/structure/urinal{ pixel_y = 32 }, /obj/effect/turf_decal/sand, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "an" = ( /obj/item/flashlight/lantern, /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ao" = ( /obj/structure/sink{ dir = 4; @@ -78,71 +78,71 @@ pixel_x = 28 }, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ap" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aq" = ( /obj/structure/flora/ausbushes/sunnybush, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ar" = ( /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "as" = ( /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "at" = ( /obj/item/tank/internals/oxygen, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "au" = ( /obj/effect/turf_decal/sand, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "av" = ( /obj/machinery/door/airlock/sandstone{ name = "Lavatory" }, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aw" = ( /obj/machinery/door/airlock/sandstone{ name = "Bar Storage" }, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ax" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/mineral/sandstone, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ay" = ( /obj/effect/turf_decal/sand, /obj/machinery/door/airlock/sandstone{ name = "Restroom" }, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "az" = ( /obj/item/clothing/neck/necklace/dope, /obj/item/reagent_containers/spray/spraytan, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aA" = ( /obj/effect/turf_decal/sand, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aB" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aC" = ( /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aD" = ( /obj/structure/table, /obj/machinery/light{ @@ -150,19 +150,19 @@ }, /obj/machinery/chem_dispenser/drinks, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aE" = ( /obj/structure/table, /obj/machinery/reagentgrinder, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aF" = ( /obj/machinery/vending/boozeomat{ req_access_txt = "0"; set_obj_flags = "EMAGGED" }, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aH" = ( /obj/structure/table, /obj/machinery/light{ @@ -173,12 +173,12 @@ /obj/item/reagent_containers/food/drinks/shaker, /obj/item/reagent_containers/rag, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aI" = ( /obj/structure/table, /obj/machinery/microwave, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aJ" = ( /obj/structure/closet/crate/bin, /obj/item/tank/internals/emergency_oxygen, @@ -189,57 +189,57 @@ }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aK" = ( /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aM" = ( /obj/structure/reagent_dispensers/beerkeg{ reagent_id = /datum/reagent/consumable/ethanol/beer/light }, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aN" = ( /obj/machinery/vending/cigarette/beach, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aO" = ( /obj/structure/weightmachine/stacklifter, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aP" = ( /obj/structure/table/wood, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aQ" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aR" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/bottle/tequila, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aS" = ( /obj/machinery/processor, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aT" = ( /obj/machinery/vending/cola, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aU" = ( /obj/effect/overlay/palmtree_l, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aV" = ( /obj/effect/mob_spawn/human/beach/alive, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aW" = ( /obj/structure/chair/stool, /obj/effect/turf_decal/stripes/asteroid/line{ @@ -247,60 +247,60 @@ }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aX" = ( /obj/structure/closet/secure_closet/freezer/meat, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aY" = ( /obj/machinery/vending/snack, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "aZ" = ( /obj/effect/overlay/coconut, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bb" = ( /obj/structure/weightmachine/weightlifter, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bc" = ( /obj/machinery/door/airlock/sandstone{ name = "Bar Access" }, /obj/effect/turf_decal/sand, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bd" = ( /obj/structure/closet/secure_closet/freezer/kitchen{ req_access = null }, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "be" = ( /obj/vehicle/ridden/scooter/skateboard{ dir = 4 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bg" = ( /obj/structure/sign/barsign, /turf/closed/wall/mineral/sandstone, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bl" = ( /obj/effect/turf_decal/caution, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bx" = ( /obj/structure/flora/rock, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bz" = ( /mob/living/simple_animal/crab, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bA" = ( /obj/structure/window/reinforced{ dir = 1 @@ -313,7 +313,7 @@ /obj/item/storage/firstaid, /obj/item/storage/firstaid/brute, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bB" = ( /obj/structure/window/reinforced{ dir = 4 @@ -324,15 +324,15 @@ }, /obj/structure/chair/stool, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bE" = ( /obj/item/reagent_containers/spray/spraytan, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bF" = ( /obj/item/toy/beach_ball, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bG" = ( /obj/structure/window/reinforced{ dir = 8 @@ -340,22 +340,22 @@ /obj/structure/window/reinforced, /obj/item/megaphone, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bH" = ( /obj/structure/window/reinforced{ dir = 4 }, /obj/effect/mob_spawn/human/beach/alive/lifeguard, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bJ" = ( /obj/structure/chair, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bK" = ( /obj/item/storage/backpack/duffelbag, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bL" = ( /obj/effect/turf_decal/sand{ density = 1 @@ -364,71 +364,71 @@ /turf/open/floor/pod/light{ density = 1 }, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bM" = ( /turf/open/floor/plasteel/stairs/old, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bN" = ( /obj/structure/flora/ausbushes/reedbush, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bO" = ( /obj/item/camera, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bP" = ( /obj/item/reagent_containers/food/drinks/beer/light, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bQ" = ( /obj/structure/flora/ausbushes/reedbush, /turf/open/floor/plating/beach/coastline_t, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bR" = ( /turf/open/floor/plating/beach/coastline_t, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bS" = ( /obj/structure/flora/ausbushes/sparsegrass, /turf/open/floor/plating/beach/coastline_t, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bT" = ( /turf/open/floor/plating/beach/coastline_b, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bU" = ( /turf/open/floor/plating/beach/water, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bV" = ( /obj/structure/flora/ausbushes/stalkybush, /turf/open/floor/plating/beach/water, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "bW" = ( /turf/closed/wall/r_wall, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "cd" = ( /obj/machinery/light/small{ dir = 1 }, /turf/closed/wall/mineral/sandstone, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ce" = ( /obj/effect/turf_decal/sand, /obj/machinery/light{ dir = 1 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "cg" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ch" = ( /obj/machinery/light{ dir = 4 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "cj" = ( /obj/effect/turf_decal/stripes/asteroid/line{ dir = 1 @@ -438,31 +438,31 @@ }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "cs" = ( /obj/effect/overlay/palmtree_l, /obj/machinery/light{ dir = 4 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "ct" = ( /obj/machinery/light, /turf/open/floor/plating/beach/water, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "cR" = ( /obj/structure/table/wood, /obj/item/tank/internals/oxygen, /obj/item/pickaxe, /obj/item/clothing/mask/gas, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "dw" = ( /obj/machinery/door/airlock/sandstone{ name = "Beach Access" }, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "gg" = ( /obj/structure/table, /obj/item/storage/box/drinkingglasses, @@ -471,23 +471,23 @@ /obj/item/storage/box/donkpockets, /obj/item/soap, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "hY" = ( /obj/structure/table, /obj/machinery/chem_dispenser/drinks/beer, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "iw" = ( /obj/machinery/light/small{ brightness = 3; dir = 8 }, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "jF" = ( /obj/effect/turf_decal/sand, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "lF" = ( /obj/machinery/light{ dir = 4 @@ -495,55 +495,55 @@ /turf/open/floor/pod/dark{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "lM" = ( /obj/structure/dresser, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "mh" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "oK" = ( /obj/effect/turf_decal/caution{ dir = 1 }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "pg" = ( /obj/effect/turf_decal/sand, /obj/machinery/shower{ dir = 4 }, /turf/open/floor/pod/light, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "pI" = ( /obj/machinery/door/airlock/hatch{ name = "Lava Beach Club" }, /obj/structure/fans/tiny, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "pU" = ( /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "qa" = ( /obj/effect/turf_decal/sand, /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "qT" = ( /obj/machinery/shower{ dir = 8 }, /turf/open/floor/pod/light, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "rV" = ( /obj/effect/turf_decal/sand, /obj/item/reagent_containers/food/drinks/beer/light{ @@ -551,79 +551,79 @@ pixel_y = -3 }, /turf/open/floor/plating, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "sy" = ( /obj/effect/turf_decal/caution{ dir = 4 }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "sO" = ( /obj/machinery/jukebox/disco/indestructible, /turf/open/floor/light/colour_cycle, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "vl" = ( /obj/structure/closet/athletic_mixed, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "wY" = ( /turf/open/floor/pod/light, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "yp" = ( /obj/item/reagent_containers/spray/spraytan, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "zw" = ( /obj/structure/closet/athletic_mixed, /obj/effect/turf_decal/sand, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "Bl" = ( /obj/effect/turf_decal/sand, /obj/machinery/light{ dir = 8 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "Ec" = ( /obj/machinery/door/airlock/sandstone{ name = "Beach Access" }, /obj/effect/turf_decal/sand, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "Ga" = ( /obj/effect/turf_decal/caution{ dir = 8 }, /obj/effect/turf_decal/sand, /turf/open/floor/plasteel, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "Gc" = ( /obj/effect/turf_decal/sand, /turf/open/floor/pod/light, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "Gu" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/beer/light, /turf/open/floor/wood, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "HC" = ( /obj/structure/rack, /obj/item/clothing/shoes/sandal, /obj/item/clothing/shoes/sandal, /obj/effect/turf_decal/sand, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "QS" = ( /obj/effect/turf_decal/sand, /obj/machinery/light{ dir = 4 }, /turf/open/floor/plating/beach/sand, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "TP" = ( /obj/machinery/light{ dir = 8 @@ -631,10 +631,10 @@ /turf/open/floor/pod/dark{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "VO" = ( /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) "Xp" = ( /obj/effect/turf_decal/sand, /obj/machinery/light/small{ @@ -642,7 +642,7 @@ dir = 8 }, /turf/open/floor/pod/dark, -/area/ruin/powered/beach) +/area/ruin/lavaland/powered/beach) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm index cd512e44b6..7831c53667 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_clown_planet.dmm @@ -7,32 +7,32 @@ dir = 6 }, /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "an" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ao" = ( /obj/structure/disposalpipe/segment{ dir = 6 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ap" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aq" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ dir = 1 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ar" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 @@ -51,7 +51,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "as" = ( /obj/effect/mob_spawn/human/corpse/damaged, /obj/effect/decal/cleanable/blood/old, @@ -72,7 +72,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "at" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -91,27 +91,27 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "au" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "av" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 1; sortType = 3 }, /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aw" = ( /obj/structure/window/reinforced, /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ax" = ( /obj/effect/decal/cleanable/pie_smudge, /obj/structure/disposalpipe/segment{ @@ -131,7 +131,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ay" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -151,7 +151,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "az" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -172,7 +172,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aA" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -192,7 +192,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aB" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -211,7 +211,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aC" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ @@ -227,7 +227,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow, @@ -244,7 +244,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aE" = ( /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" @@ -263,7 +263,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aF" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -284,7 +284,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aG" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -303,7 +303,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aH" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -323,7 +323,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aI" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -343,13 +343,13 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aJ" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aK" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -370,14 +370,14 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aL" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aM" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -396,7 +396,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aO" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -417,20 +417,20 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aP" = ( /obj/structure/disposalpipe/segment{ dir = 4; invisibility = 101 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aS" = ( /obj/structure/disposalpipe/segment{ dir = 9 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -450,11 +450,11 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aU" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aV" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -474,7 +474,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aW" = ( /obj/item/bikehorn, /obj/effect/decal/cleanable/dirt, @@ -495,7 +495,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aX" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -504,7 +504,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aY" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -524,7 +524,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "aZ" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -544,7 +544,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ba" = ( /obj/effect/decal/cleanable/pie_smudge, /obj/effect/turf_decal/tile/yellow, @@ -561,7 +561,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bb" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -570,7 +570,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bc" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -590,7 +590,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bd" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -602,7 +602,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "be" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -613,7 +613,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bf" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -633,7 +633,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bg" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -643,7 +643,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bh" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -651,7 +651,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bi" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -659,7 +659,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bj" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -668,7 +668,7 @@ /turf/open/indestructible{ icon_state = "light_on" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bk" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 @@ -680,12 +680,12 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bl" = ( /turf/open/indestructible{ icon_state = "light_on" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bm" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -693,7 +693,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bn" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -701,21 +701,21 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bp" = ( /turf/closed/mineral/bananium, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bq" = ( /obj/item/pickaxe, /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "br" = ( /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bs" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -734,13 +734,13 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bt" = ( /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bu" = ( /obj/item/bikehorn, /obj/structure/disposalpipe/segment{ @@ -760,7 +760,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bx" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/red, @@ -777,7 +777,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "by" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/yellow, @@ -794,7 +794,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bz" = ( /obj/machinery/disposal/deliveryChute{ dir = 1 @@ -803,7 +803,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bA" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -819,7 +819,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bB" = ( /turf/open/indestructible/sound{ icon_state = "bananium"; @@ -827,7 +827,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bC" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 1; @@ -848,7 +848,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bD" = ( /obj/structure/mecha_wreckage/honker, /obj/structure/disposalpipe/segment{ @@ -856,7 +856,7 @@ invisibility = 101 }, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bE" = ( /obj/effect/decal/cleanable/oil, /obj/structure/disposalpipe/segment{ @@ -864,7 +864,7 @@ }, /obj/item/tcg_card/special/honk, /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bF" = ( /obj/effect/decal/cleanable/cobweb{ icon_state = "cobweb2" @@ -875,7 +875,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/indestructible/sound{ @@ -884,7 +884,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bI" = ( /obj/effect/mob_spawn/human/corpse/damaged, /obj/effect/decal/cleanable/blood/old, @@ -902,7 +902,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bK" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -921,22 +921,22 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bL" = ( /obj/item/reagent_containers/food/drinks/trophy/gold_cup, /obj/structure/table/glass, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bM" = ( /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bN" = ( /obj/machinery/disposal/deliveryChute, /obj/structure/disposalpipe/trunk{ dir = 1 }, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bO" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/indestructible/sound{ @@ -945,21 +945,21 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bP" = ( /obj/structure/statue/bananium/clown, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bQ" = ( /obj/structure/table/glass, /obj/item/grown/bananapeel/bluespace, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bR" = ( /obj/structure/table/glass, /obj/item/clothing/shoes/clown_shoes/banana_shoes, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bS" = ( /obj/item/coin/bananium, /obj/item/coin/bananium, @@ -969,21 +969,21 @@ dir = 8 }, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bT" = ( /obj/structure/table/glass, /obj/item/reagent_containers/spray/waterflower/superlube, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bU" = ( /obj/item/bikehorn/airhorn, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bV" = ( /obj/structure/table/glass, /obj/item/gun/magic/staff/honk, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bW" = ( /obj/item/bikehorn, /turf/open/indestructible/sound{ @@ -992,7 +992,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bY" = ( /obj/effect/mob_spawn/human/corpse/damaged, /obj/effect/decal/cleanable/blood/old, @@ -1002,7 +1002,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "bZ" = ( /obj/machinery/door/airlock/bananium, /turf/open/indestructible/sound{ @@ -1011,7 +1011,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ca" = ( /obj/item/bikehorn, /obj/effect/decal/cleanable/dirt, @@ -1021,19 +1021,19 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "cc" = ( /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ch" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 }, /turf/closed/wall/r_wall, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "cu" = ( /turf/open/floor/plating, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dB" = ( /obj/structure/disposalpipe/segment{ invisibility = 101 @@ -1055,7 +1055,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dC" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -1078,7 +1078,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dD" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -1100,7 +1100,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dE" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -1123,7 +1123,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dF" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -1136,7 +1136,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dG" = ( /obj/structure/disposalpipe/segment{ dir = 4; @@ -1148,7 +1148,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dH" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -1159,7 +1159,7 @@ /turf/open/indestructible{ icon_state = "white" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dI" = ( /obj/machinery/light{ dir = 1 @@ -1178,13 +1178,13 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dK" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dL" = ( /obj/item/coin/bananium, /obj/item/coin/bananium, @@ -1194,7 +1194,7 @@ dir = 4 }, /turf/open/floor/carpet, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dM" = ( /obj/machinery/light{ dir = 1 @@ -1205,7 +1205,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "dO" = ( /obj/machinery/light, /turf/open/indestructible/sound{ @@ -1214,7 +1214,7 @@ sound = 'sound/effects/clownstep1.ogg'; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "eX" = ( /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip{ @@ -1229,16 +1229,16 @@ /obj/machinery/light, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "pv" = ( /obj/machinery/light{ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "ye" = ( /turf/open/lava/smooth, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "CB" = ( /obj/item/paper/crumpled/bloody/ruins/lavaland/clown_planet/hope, /obj/effect/decal/cleanable/blood/old, @@ -1263,7 +1263,7 @@ icon_state = "darkfull"; wet = 16 }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "KX" = ( /obj/item/grown/bananapeel{ color = "#2F3000"; @@ -1283,7 +1283,7 @@ /turf/open/floor/noslip{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "Mv" = ( /obj/effect/mapping_helpers/no_lava, /mob/living/simple_animal/hostile/retaliate/clown, @@ -1295,7 +1295,7 @@ }, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "TD" = ( /obj/structure/disposalpipe/trunk, /obj/structure/disposaloutlet{ @@ -1305,7 +1305,7 @@ /turf/open/floor/noslip{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "Xm" = ( /obj/item/clothing/head/cone, /obj/effect/mapping_helpers/no_lava, @@ -1323,14 +1323,14 @@ }, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) "YI" = ( /obj/machinery/light/small, /obj/effect/mapping_helpers/no_lava, /turf/open/floor/noslip{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/clownplanet) +/area/ruin/lavaland/powered/clownplanet) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm index ed882850cf..155ce29fda 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_alien_nest.dmm @@ -9,31 +9,31 @@ /obj/structure/alien/resin/wall, /obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ad" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ae" = ( /obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/maid, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "af" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ag" = ( /obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ah" = ( /obj/structure/bed/nest, /obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aj" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -41,22 +41,22 @@ /obj/item/storage/backpack/clown, /obj/item/bikehorn, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ak" = ( /obj/structure/alien/resin/membrane, /obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "al" = ( /obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "am" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "an" = ( /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) @@ -64,7 +64,7 @@ /obj/structure/alien/weeds/node, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ap" = ( /obj/structure/bed/nest, /obj/structure/alien/weeds, @@ -74,73 +74,73 @@ /obj/effect/decal/cleanable/blood/old, /obj/item/clothing/under/syndicate/tacticool, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aq" = ( /obj/structure/alien/weeds, /obj/structure/alien/egg/burst, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ar" = ( /obj/structure/alien/weeds/node, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "as" = ( /obj/structure/alien/resin/wall, /obj/structure/alien/weeds, /obj/structure/alien/weeds, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "at" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "au" = ( /obj/structure/alien/weeds, /obj/item/grown/bananapeel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "av" = ( /obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aw" = ( /obj/structure/alien/weeds, /obj/structure/alien/resin/membrane, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ax" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /obj/structure/alien/weeds/node, /mob/living/simple_animal/hostile/alien/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ay" = ( /obj/structure/stone_tile/slab/cracked, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aA" = ( /obj/structure/alien/weeds, /obj/item/flamethrower, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aB" = ( /obj/structure/alien/weeds, /obj/item/ammo_casing/c45, /obj/effect/decal/cleanable/blood/gibs, /mob/living/simple_animal/hostile/alien/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aC" = ( /obj/structure/alien/weeds, /obj/item/ammo_casing/c45{ pixel_x = -6 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aD" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 @@ -151,37 +151,37 @@ }, /obj/structure/stone_tile/center, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aE" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/ash, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aF" = ( /obj/structure/alien/weeds, /mob/living/simple_animal/hostile/alien, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aG" = ( /obj/structure/alien/weeds, /obj/structure/mecha_wreckage/ripley, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aH" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/tracks, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aI" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/vomit/old, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aJ" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aK" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 @@ -194,17 +194,17 @@ }, /obj/structure/stone_tile/center/cracked, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aL" = ( /obj/structure/alien/weeds, /obj/item/tank/internals/plasma, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aM" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/xeno, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aN" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -214,17 +214,17 @@ }, /obj/structure/stone_tile/cracked, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aO" = ( /obj/structure/alien/weeds, /obj/effect/mob_spawn/alien/corpse/humanoid/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aP" = ( /obj/structure/alien/weeds, /obj/effect/mob_spawn/alien/corpse/humanoid/hunter, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aQ" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -234,18 +234,18 @@ /obj/item/clothing/mask/breath, /obj/item/flashlight/seclite, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aS" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aT" = ( /obj/structure/alien/weeds, /obj/item/chainsaw, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aU" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -253,30 +253,30 @@ /obj/item/clothing/head/helmet/gladiator, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aV" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/item/clothing/mask/facehugger/impregnated, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aW" = ( /obj/structure/alien/resin/wall, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aX" = ( /obj/structure/alien/weeds, /obj/effect/gibspawner/xeno, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "aZ" = ( /turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ba" = ( /obj/structure/stone_tile/slab, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bb" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -290,7 +290,7 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bc" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile{ @@ -300,7 +300,7 @@ dir = 4 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bd" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile{ @@ -311,7 +311,7 @@ }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "be" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile{ @@ -321,7 +321,7 @@ dir = 1 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bf" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -335,12 +335,12 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bg" = ( /obj/structure/alien/weeds, /obj/item/clothing/mask/facehugger/dead, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bh" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -352,7 +352,7 @@ dir = 8 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bi" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -360,7 +360,7 @@ /obj/item/book_of_babel, /obj/item/clothing/head/wizard/black, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bj" = ( /obj/structure/stone_tile/surrounding_tile/cracked, /obj/structure/stone_tile/surrounding_tile{ @@ -371,11 +371,11 @@ }, /obj/structure/stone_tile/center/cracked, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bk" = ( /obj/structure/stone_tile/block, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bl" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -385,7 +385,7 @@ }, /obj/structure/stone_tile, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bn" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -397,7 +397,7 @@ dir = 4 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bo" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 @@ -408,10 +408,10 @@ /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/center, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bq" = ( /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "br" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -422,13 +422,13 @@ }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bs" = ( /obj/structure/stone_tile/block{ dir = 8 }, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bw" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -442,7 +442,7 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bx" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -453,7 +453,7 @@ }, /obj/effect/decal/cleanable/blood/xeno, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "by" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -463,7 +463,7 @@ dir = 8 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bz" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 @@ -473,7 +473,7 @@ dir = 8 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bA" = ( /obj/structure/stone_tile/cracked{ dir = 1 @@ -487,18 +487,18 @@ /obj/structure/stone_tile, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bB" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "bC" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /mob/living/simple_animal/hostile/alien, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "dE" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -507,13 +507,13 @@ /obj/item/reagent_containers/hypospray/medipen, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "gA" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/effect/mob_spawn/alien/corpse/humanoid/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "iA" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, @@ -521,70 +521,70 @@ /obj/item/weldingtool/largetank, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "lG" = ( /obj/structure/alien/weeds, /obj/effect/mob_spawn/alien/corpse/humanoid/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "lM" = ( /obj/structure/stone_tile/block{ dir = 4 }, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "nj" = ( /obj/effect/mob_spawn/alien/corpse/humanoid/praetorian, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "tY" = ( /obj/structure/alien/weeds/node, /obj/effect/mob_spawn/alien/corpse/humanoid/hunter, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "wA" = ( /obj/structure/alien/weeds, /obj/structure/alien/weeds/node, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "yf" = ( /obj/structure/alien/weeds/node, /mob/living/simple_animal/hostile/alien/sentinel, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "zj" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 }, /turf/open/chasm/lavaland, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "Dd" = ( /obj/structure/alien/weeds, /obj/effect/decal/cleanable/blood/gibs, /obj/item/storage/backpack/duffelbag/sec/surgery, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "Ha" = ( /obj/structure/alien/weeds, /obj/item/reagent_containers/syringe/alien, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "JM" = ( /obj/structure/alien/weeds/node, /obj/effect/mob_spawn/alien/corpse/humanoid/drone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "QG" = ( /obj/structure/alien/weeds, /obj/structure/bed/nest, /obj/structure/alien/weeds/node, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "Uh" = ( /obj/structure/alien/weeds, /obj/item/xenos_claw, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "Vi" = ( /obj/structure/bed/nest, /obj/structure/alien/weeds, @@ -593,16 +593,16 @@ /obj/item/radio/headset/headset_cargo/mining, /obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "VZ" = ( /obj/structure/alien/weeds, /obj/effect/gibspawner/human, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) "ZT" = ( /obj/effect/mob_spawn/human/corpse/syndicatesoldier, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/xenonest) +/area/ruin/lavaland/unpowered/xenonest) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm index 527a328563..aad53a4507 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm @@ -19,18 +19,18 @@ /area/lavaland/surface/outdoors) "ae" = ( /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "af" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ag" = ( /obj/effect/turf_decal/tile/bar, /obj/effect/turf_decal/tile/bar{ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ah" = ( /obj/structure/toilet, /obj/effect/turf_decal/tile/bar, @@ -38,7 +38,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ai" = ( /obj/machinery/vending/coffee, /obj/effect/turf_decal/tile/blue{ @@ -48,7 +48,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aj" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp, @@ -59,7 +59,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ak" = ( /obj/structure/table/wood, /obj/item/taperecorder, @@ -71,7 +71,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "al" = ( /obj/structure/table/wood, /obj/item/toy/plush/carpplushie, @@ -82,7 +82,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "am" = ( /obj/machinery/vending/snack, /obj/effect/turf_decal/tile/blue{ @@ -92,7 +92,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "an" = ( /obj/machinery/sleeper{ dir = 4 @@ -101,10 +101,10 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ao" = ( /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ap" = ( /obj/structure/table, /obj/item/circular_saw, @@ -112,7 +112,7 @@ pixel_y = 12 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aq" = ( /obj/structure/table, /obj/item/cautery{ @@ -120,13 +120,13 @@ }, /obj/item/surgicaldrill, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ar" = ( /obj/structure/table, /obj/item/surgical_drapes, /obj/item/razor, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "as" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -135,7 +135,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "at" = ( /obj/structure/chair/office/dark{ dir = 1 @@ -147,7 +147,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "au" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -159,7 +159,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "av" = ( /obj/item/reagent_containers/rag, /obj/item/reagent_containers/spray/cleaner, @@ -170,14 +170,14 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aw" = ( /obj/structure/bed/roller, /obj/machinery/light{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ax" = ( /obj/structure/closet/crate/trashcart, /obj/item/storage/bag/trash, @@ -203,7 +203,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "az" = ( /obj/structure/noticeboard{ dir = 1; @@ -217,27 +217,27 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aA" = ( /obj/structure/closet/secure_closet/medical2, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aB" = ( /obj/machinery/computer/operating{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aC" = ( /obj/structure/table/optable, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aD" = ( /obj/structure/table, /obj/item/retractor, /obj/item/hemostat, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aF" = ( /obj/machinery/door/airlock/shuttle{ name = "Restroom" @@ -247,11 +247,11 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aG" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aJ" = ( /turf/open/floor/plasteel/grimy{ initial_gas_mix = "o2=14;n2=23;TEMP=300" @@ -259,7 +259,7 @@ /area/lavaland/surface/outdoors) "aK" = ( /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aL" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -268,7 +268,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aN" = ( /obj/structure/closet/crate/freezer, /obj/item/reagent_containers/blood/random, @@ -285,7 +285,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aO" = ( /obj/machinery/iv_drip, /obj/effect/turf_decal/tile/blue{ @@ -295,27 +295,27 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aP" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aQ" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aR" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aS" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -324,7 +324,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aT" = ( /obj/structure/closet, /obj/effect/decal/cleanable/cobweb, @@ -339,41 +339,41 @@ dir = 8 }, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aU" = ( /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aV" = ( /obj/structure/closet/secure_closet/medical1, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aW" = ( /obj/machinery/vending/wallmed{ pixel_y = 28 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aX" = ( /obj/item/stack/cable_coil/random, /obj/item/stack/sheet/mineral/titanium{ amount = 30 }, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aY" = ( /obj/structure/bodycontainer/morgue, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "aZ" = ( /obj/effect/decal/cleanable/ash, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ba" = ( /obj/structure/table/glass, /obj/item/reagent_containers/glass/beaker, /obj/item/storage/backpack/duffelbag/med, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bb" = ( /obj/structure/table/reinforced, /obj/item/laser_pointer, @@ -381,12 +381,12 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bc" = ( /obj/structure/table/reinforced, /obj/item/storage/firstaid/regular, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bd" = ( /obj/structure/table/glass, /obj/item/storage/box/gloves, @@ -398,43 +398,43 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "be" = ( /obj/effect/decal/cleanable/oil, /obj/item/storage/toolbox/mechanical, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bf" = ( /obj/structure/table, /obj/item/storage/fancy/cigarettes/dromedaryco, /obj/item/storage/box/matches, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bg" = ( /mob/living/simple_animal/cockroach, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bh" = ( /obj/structure/table/glass, /obj/item/storage/firstaid/brute, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bi" = ( /obj/item/toy/cattoy, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bj" = ( /obj/structure/table/glass, /obj/item/lazarus_injector, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bk" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/flashlight/glowstick/blue, /obj/item/flashlight/glowstick/blue, /obj/item/flashlight/glowstick/blue, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bl" = ( /obj/structure/table, /obj/item/reagent_containers/food/snacks/cookie{ @@ -465,7 +465,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bm" = ( /obj/structure/chair/comfy/teal{ dir = 8 @@ -477,19 +477,19 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bn" = ( /obj/machinery/sleeper{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bo" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bp" = ( /obj/structure/closet/crate/bin, /obj/item/trash/pistachios, @@ -502,24 +502,24 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bq" = ( /obj/structure/filingcabinet/chestdrawer/wheeled, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "br" = ( /obj/structure/chair/office/dark, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bs" = ( /obj/structure/table/reinforced, /obj/item/phone, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bt" = ( /obj/item/kirbyplants, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bu" = ( /obj/structure/chair/comfy/teal{ dir = 8 @@ -529,19 +529,19 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bv" = ( /obj/effect/mob_spawn/human/doctor/alive/lavaland{ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bx" = ( /obj/machinery/door/airlock/medical{ name = "Rejuvenation Pods" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "by" = ( /obj/structure/table/reinforced, /obj/item/flashlight/lamp, @@ -552,23 +552,23 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bz" = ( /obj/structure/table/reinforced, /obj/item/clothing/glasses/regular, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bA" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen/fourcolor, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bB" = ( /obj/structure/table/reinforced, /obj/item/storage/box/hug, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bD" = ( /mob/living/simple_animal/bot/medbot{ desc = "A little medical robot. It's programmed to only act in emergencies."; @@ -576,7 +576,7 @@ name = "emergency Medibot" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bE" = ( /obj/structure/closet/crate/critter, /obj/effect/turf_decal/tile/blue{ @@ -586,7 +586,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bF" = ( /obj/effect/turf_decal/tile/blue{ dir = 1 @@ -596,7 +596,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bG" = ( /obj/structure/chair/comfy/teal{ dir = 8 @@ -609,7 +609,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bH" = ( /obj/structure/table, /obj/item/tank/internals/oxygen, @@ -621,20 +621,20 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bI" = ( /obj/structure/sign/departments/medbay/alt{ name = "animal hospital" }, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bJ" = ( /obj/machinery/door/airlock/glass_large{ name = "Ian's Pet Care" }, /obj/structure/fans/tiny/invisible, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bL" = ( /obj/vehicle/ridden/scooter/skateboard{ dir = 4 @@ -659,11 +659,11 @@ /obj/structure/table/glass, /obj/item/storage/firstaid/fire, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bQ" = ( /obj/machinery/light/small, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bR" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -680,7 +680,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bS" = ( /obj/structure/closet, /obj/item/defibrillator/loaded, @@ -696,7 +696,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bT" = ( /obj/item/pickaxe, /obj/effect/decal/cleanable/blood/old, @@ -716,7 +716,7 @@ "bW" = ( /obj/structure/fans/tiny/invisible, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "bX" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 6 @@ -758,25 +758,25 @@ "cc" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cd" = ( /obj/structure/table/reinforced, /obj/item/clothing/gloves/color/latex, /obj/item/clothing/mask/surgical, /obj/item/clothing/suit/apron/surgical, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ce" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 }, /obj/machinery/portable_atmospherics/pump, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cf" = ( /obj/structure/closet/l3closet, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cg" = ( /obj/machinery/door/airlock/shuttle{ name = "Break Room" @@ -788,13 +788,13 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ch" = ( /obj/machinery/door/airlock/shuttle{ name = "Operating Theatre" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ci" = ( /obj/structure/fans/tiny/invisible, /obj/machinery/door/airlock/shuttle{ @@ -802,31 +802,31 @@ name = "Staff Entrance" }, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cj" = ( /obj/machinery/door/airlock/shuttle{ name = "Morgue" }, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "ck" = ( /obj/machinery/door/airlock/shuttle{ name = "Medical Supplies" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cl" = ( /obj/machinery/door/airlock/shuttle{ name = "Safety Supplies" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cm" = ( /obj/machinery/door/airlock/shuttle{ name = "Storage" }, /turf/open/floor/plating, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cn" = ( /obj/machinery/light, /turf/open/floor/grass{ @@ -849,7 +849,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cr" = ( /obj/machinery/light/small{ dir = 8 @@ -861,7 +861,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cs" = ( /obj/machinery/light/small{ dir = 4 @@ -873,7 +873,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cv" = ( /obj/machinery/light/small{ dir = 1 @@ -885,7 +885,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cw" = ( /obj/machinery/light/small, /obj/effect/turf_decal/tile/blue, @@ -893,7 +893,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cx" = ( /obj/machinery/light{ dir = 4 @@ -911,7 +911,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cz" = ( /obj/machinery/light{ dir = 1 @@ -923,7 +923,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cC" = ( /obj/machinery/light{ dir = 1 @@ -960,7 +960,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cH" = ( /mob/living/simple_animal/bot/cleanbot, /obj/effect/turf_decal/tile/blue, @@ -968,12 +968,12 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cI" = ( /obj/structure/table/glass, /obj/item/storage/firstaid/toxin, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) "cJ" = ( /obj/machinery/sleeper{ dir = 4 @@ -982,7 +982,7 @@ dir = 8 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/animal_hospital) +/area/ruin/lavaland/powered/animal_hospital) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm index 2d13b2743e..a94190e03b 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm @@ -59,7 +59,7 @@ /area/lavaland/surface/outdoors) "ak" = ( /turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "al" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 @@ -76,7 +76,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "an" = ( /obj/structure/stone_tile/surrounding_tile/cracked, /obj/structure/stone_tile/center, @@ -89,13 +89,13 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "ao" = ( /obj/structure/stone_tile/block/cracked, /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "ap" = ( /obj/structure/stone_tile/surrounding_tile/cracked, /obj/structure/stone_tile/surrounding_tile/cracked{ @@ -108,7 +108,7 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aq" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -129,7 +129,7 @@ /area/lavaland/surface/outdoors) "as" = ( /turf/closed/wall/mineral/wood, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "at" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -152,7 +152,7 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "av" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile{ @@ -162,7 +162,7 @@ dir = 4 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aw" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile{ @@ -173,7 +173,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "ax" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile/cracked{ @@ -183,7 +183,7 @@ dir = 4 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "ay" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -197,7 +197,7 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "az" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -212,7 +212,7 @@ /obj/item/disk/tech_disk/illegal, /obj/structure/safe, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aB" = ( /obj/structure/stone_tile/block/cracked, /obj/structure/stone_tile{ @@ -220,12 +220,12 @@ }, /obj/item/t_scanner/adv_mining_scanner/lesser, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aC" = ( /obj/structure/stone_tile/block/cracked, /obj/item/storage/toolbox/syndicate, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aD" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -233,7 +233,7 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aE" = ( /obj/structure/stone_tile{ dir = 4 @@ -246,7 +246,7 @@ /obj/item/reagent_containers/blood/lizard, /obj/item/stack/sheet/cloth/ten, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aF" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -264,13 +264,13 @@ dir = 8 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aH" = ( /obj/structure/lavaland/ash_walker, /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aI" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -278,7 +278,7 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aJ" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 @@ -291,7 +291,7 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aK" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -302,7 +302,7 @@ /obj/structure/stone_tile, /mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aL" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -310,32 +310,32 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aM" = ( /obj/structure/stone_tile/cracked{ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aN" = ( /obj/structure/stone_tile{ dir = 1 }, /obj/item/weldingtool/experimental, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aO" = ( /obj/structure/stone_tile/surrounding/cracked{ dir = 1; icon_state = "cracked_surrounding1" }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aP" = ( /obj/structure/stone_tile, /obj/item/shard, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aQ" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -343,7 +343,7 @@ /obj/machinery/iv_drip, /obj/item/reagent_containers/glass/beaker/waterbottle/large, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aR" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -365,7 +365,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aT" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 @@ -380,7 +380,7 @@ /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aW" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -390,7 +390,7 @@ dir = 1 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aY" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -403,7 +403,7 @@ dir = 1 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "aZ" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -416,7 +416,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "ba" = ( /obj/structure/stone_tile/cracked{ dir = 8 @@ -425,7 +425,7 @@ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bc" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -438,7 +438,7 @@ }, /mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bg" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -448,7 +448,7 @@ }, /obj/structure/stone_tile, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bh" = ( /obj/structure/stone_tile/block{ dir = 4 @@ -478,7 +478,7 @@ /obj/item/seeds/cotton, /obj/item/seeds/cotton/durathread, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bk" = ( /obj/structure/stone_tile{ dir = 4 @@ -492,13 +492,13 @@ }, /obj/item/stack/marker_beacon/ten, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bl" = ( /obj/structure/stone_tile/cracked{ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bm" = ( /obj/structure/stone_tile{ dir = 1 @@ -512,7 +512,7 @@ }, /obj/item/construction/rcd/loaded/upgraded, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bn" = ( /obj/structure/closet/crate/radiation, /obj/item/flashlight/lantern, @@ -526,7 +526,7 @@ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bo" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -548,7 +548,7 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bq" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -558,11 +558,11 @@ dir = 8 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "br" = ( /obj/structure/stone_tile/slab/cracked, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bs" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 @@ -573,7 +573,7 @@ /obj/structure/stone_tile, /obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bt" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -587,7 +587,7 @@ }, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bv" = ( /obj/structure/stone_tile/cracked{ dir = 8 @@ -597,7 +597,7 @@ /obj/item/flashlight/lantern, /obj/item/flashlight/lantern, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bw" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -613,12 +613,12 @@ /obj/item/seeds/tower, /obj/item/seeds/tower, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bx" = ( /obj/structure/stone_tile/slab/cracked, /obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "by" = ( /obj/structure/closet/crate, /obj/structure/stone_tile/block/cracked{ @@ -632,7 +632,7 @@ /obj/item/flashlight/lantern, /obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bz" = ( /obj/structure/stone_tile{ dir = 4 @@ -646,7 +646,7 @@ }, /obj/machinery/the_singularitygen, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bA" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -662,7 +662,7 @@ dir = 8 }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bC" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -674,7 +674,7 @@ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bE" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 @@ -690,7 +690,7 @@ /area/lavaland/surface/outdoors) "bG" = ( /turf/closed/indestructible/riveted/boss/see_through, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "bI" = ( /obj/structure/stone_tile/slab/cracked, /turf/closed/mineral/volcanic/lava_land_surface, @@ -994,7 +994,7 @@ dir = 8 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cy" = ( /obj/structure/stone_tile{ dir = 8 @@ -1014,14 +1014,14 @@ }, /obj/item/spear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cA" = ( /obj/structure/stone_tile/slab/cracked{ dir = 4; icon_state = "cracked_slab1" }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cB" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -1035,18 +1035,18 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cD" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 }, /obj/item/flashlight/lantern, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cE" = ( /obj/structure/stone_tile/surrounding/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cF" = ( /obj/structure/stone_tile/block{ dir = 8 @@ -1059,7 +1059,7 @@ /obj/item/spear, /obj/item/storage/belt, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cI" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -1101,7 +1101,7 @@ /obj/item/spear, /obj/item/scythe, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cM" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -1113,7 +1113,7 @@ /obj/structure/table/wood, /obj/item/kitchen/knife/combat/bone, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cN" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -1129,7 +1129,7 @@ /obj/item/spear, /obj/item/clothing/head/helmet/roman/legionnaire, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cO" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 @@ -1169,14 +1169,14 @@ }, /obj/item/surgical_drapes, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cX" = ( /obj/item/storage/box/rxglasses, /obj/structure/stone_tile{ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cY" = ( /obj/item/seeds/glowshroom, /obj/item/seeds/glowshroom, @@ -1184,7 +1184,7 @@ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "cZ" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_bathhouse.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_bathhouse.dmm index a4b572a2ee..a231d06d36 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_bathhouse.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_bathhouse.dmm @@ -4,14 +4,14 @@ /area/template_noop) "b" = ( /turf/closed/wall/mineral/silver, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "c" = ( /obj/machinery/shower{ pixel_y = 16 }, /obj/structure/curtain, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "e" = ( /obj/structure/mirror{ pixel_y = 28 @@ -20,40 +20,40 @@ pixel_y = 20 }, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "f" = ( /obj/structure/table/greyscale, /obj/item/bikehorn/rubberducky, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "g" = ( /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "h" = ( /obj/item/soap, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "i" = ( /obj/machinery/door/airlock/freezer{ name = "bath house airlock" }, /turf/open/floor/plasteel/white, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "j" = ( /turf/closed/wall/mineral/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "k" = ( /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "l" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/meatballspaghetti, /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "m" = ( /obj/structure/bookcase/random, /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) "n" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) @@ -61,7 +61,7 @@ /obj/structure/bed, /obj/item/bedsheet, /turf/open/floor/wood, -/area/ruin/powered/bathhouse) +/area/ruin/lavaland/powered/bathhouse) (1,1,1) = {" b diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm index c7ae4c6eb4..63c557b8a8 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_biodome_winter.dmm @@ -7,7 +7,7 @@ /obj/structure/table, /obj/item/stack/medical/suture, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ad" = ( /obj/structure/table, /obj/item/stack/medical/gauze, @@ -16,98 +16,98 @@ dir = 1 }, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ae" = ( /obj/machinery/power/smes, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "af" = ( /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ag" = ( /obj/structure/reagent_dispensers/beerkeg, /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ah" = ( /obj/item/reagent_containers/food/drinks/mug, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ai" = ( /obj/machinery/shower, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aj" = ( /obj/structure/sink, /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ak" = ( /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "al" = ( /obj/effect/decal/cleanable/oil, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "am" = ( /obj/machinery/door/airlock/hatch, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "an" = ( /obj/structure/toilet{ dir = 8 }, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ao" = ( /turf/open/floor/plating/ice{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ap" = ( /obj/structure/flora/rock/icy, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aq" = ( /turf/closed/wall/mineral/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ar" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "as" = ( /obj/structure/fans, /turf/closed/wall/mineral/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "at" = ( /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "au" = ( /obj/structure/bed, /obj/item/bedsheet/blue, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "av" = ( /obj/structure/bookcase/random, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aw" = ( /obj/structure/table/wood, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ax" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/beans, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "ay" = ( /obj/structure/closet/crate/trashcart, /obj/item/trash/semki, @@ -115,92 +115,92 @@ /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "az" = ( /obj/structure/flora/tree/pine, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aA" = ( /obj/structure/chair/comfy/brown{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aB" = ( /obj/structure/flora/rock/pile/icy, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aC" = ( /obj/structure/flora/tree/dead, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aD" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aE" = ( /obj/structure/extinguisher_cabinet, /turf/closed/wall/mineral/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aF" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/mug/coco, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aG" = ( /obj/structure/chair/comfy/brown{ dir = 8 }, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aH" = ( /mob/living/simple_animal/hostile/skeleton/eskimo, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aI" = ( /obj/structure/flora/bush, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aJ" = ( /obj/vehicle/ridden/atv, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aL" = ( /obj/structure/displaycase/captain, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aM" = ( /turf/open/floor/carpet, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aN" = ( /obj/structure/bed/dogbed, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aO" = ( /obj/machinery/door/airlock/glass_large, /obj/structure/fans/tiny, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aP" = ( /obj/structure/fans/tiny, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aQ" = ( /obj/structure/flora/grass/both, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "aR" = ( /obj/structure/flora/tree/pine/xmas, /obj/item/a_gift{ @@ -212,13 +212,13 @@ /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bl" = ( /turf/open/floor/wood{ initial_gas_mix = "o2=22;n2=82;TEMP=180"; name = "bridge" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bv" = ( /obj/machinery/light{ dir = 1 @@ -226,20 +226,20 @@ /turf/open/floor/plating/ice{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bw" = ( /obj/machinery/light/small{ brightness = 3; dir = 8 }, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bx" = ( /obj/machinery/light{ dir = 4 }, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "by" = ( /obj/machinery/light{ dir = 8 @@ -247,11 +247,11 @@ /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bz" = ( /obj/machinery/light, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bB" = ( /obj/machinery/light{ dir = 4 @@ -259,7 +259,7 @@ /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bD" = ( /obj/machinery/light{ dir = 1 @@ -267,50 +267,50 @@ /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bM" = ( /obj/machinery/light, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "bN" = ( /obj/machinery/light, /turf/open/floor/plating/ice{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "dS" = ( /obj/machinery/light/small, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "eb" = ( /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "eg" = ( /obj/machinery/vending/coffee, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "gh" = ( /obj/machinery/light/small{ brightness = 3; dir = 8 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "gy" = ( /obj/item/toy/snowball, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "gz" = ( /obj/structure/chair/stool, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "hA" = ( /obj/machinery/light/built{ dir = 1 @@ -319,7 +319,7 @@ /turf/open/floor/pod/dark{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "qt" = ( /obj/machinery/door/airlock/silver, /obj/structure/fans/tiny, @@ -327,69 +327,69 @@ dir = 8 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "rl" = ( /obj/structure/flora/bush, /obj/item/toy/snowball, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "tb" = ( /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors/explored) "tl" = ( /turf/open/floor/pod/light, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "xU" = ( /obj/item/storage/toolbox/mechanical, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "zT" = ( /obj/machinery/door/airlock/silver, /obj/structure/fans/tiny, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "AM" = ( /obj/structure/table, /obj/item/pen, /obj/item/paper, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Dd" = ( /obj/structure/rack, /obj/item/clothing/suit/hooded/wintercoat/science, /obj/item/clothing/shoes/winterboots, /obj/item/clothing/gloves/fingerless, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Ef" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Ez" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/glass_large, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "HP" = ( /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "HR" = ( /obj/structure/closet/secure_closet/freezer/fridge, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "IQ" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/drinks/mug, /turf/open/floor/wood, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "JZ" = ( /obj/structure/table, /obj/machinery/microwave, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "KS" = ( /obj/item/chainsaw, /obj/structure/closet, @@ -397,16 +397,16 @@ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Mp" = ( /obj/item/clothing/mask/balaclava, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Oj" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/mug, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "PD" = ( /obj/machinery/door/airlock/hatch, /obj/structure/fans/tiny, @@ -414,13 +414,13 @@ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "PK" = ( /obj/structure/table, /obj/item/pen, /obj/item/paper_bin, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Qa" = ( /obj/effect/mapping_helpers/no_lava, /obj/effect/mapping_helpers/no_lava, @@ -434,35 +434,35 @@ /obj/item/storage/fancy/cigarettes/cigpack_carp, /obj/item/reagent_containers/food/drinks/mug, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "QN" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Sj" = ( /obj/effect/decal/cleanable/oil, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "SL" = ( /obj/structure/flora/grass/both, /obj/item/toy/snowball, /turf/open/floor/plating/asteroid/snow{ initial_gas_mix = "o2=22;n2=82;TEMP=180" }, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Ub" = ( /obj/structure/filingcabinet, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "UM" = ( /obj/machinery/computer/monitor/secret{ dir = 1 }, /turf/open/floor/pod/dark, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) "Wg" = ( /turf/closed/wall/r_wall, -/area/ruin/powered/snow_biodome) +/area/ruin/lavaland/powered/snow_biodome) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm index 7c166a1a56..444984d88c 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm @@ -6,41 +6,41 @@ /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "c" = ( /turf/open/lava/smooth/lava_land_surface, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "d" = ( /turf/closed/wall/mineral/cult, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "e" = ( /obj/effect/decal/remains/human, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /obj/structure/destructible/cult/pylon, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "g" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "i" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "k" = ( /obj/effect/decal/remains/human, /obj/item/melee/cultblade, /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "l" = ( /obj/effect/decal/remains/human, /obj/item/clothing/shoes/cult, @@ -48,13 +48,13 @@ /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "m" = ( /obj/effect/decal/remains/human, /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "o" = ( /obj/effect/rune/narsie{ color = "#ff0000"; @@ -76,7 +76,7 @@ /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "q" = ( /obj/effect/decal/remains/human, /obj/item/clothing/shoes/cult, @@ -85,10 +85,10 @@ /turf/open/floor/engine/cult{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "s" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm index f590af752b..08bc2f35dd 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_elephant_graveyard.dmm @@ -7,74 +7,74 @@ /area/lavaland/surface) "ac" = ( /turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ad" = ( /obj/effect/decal/cleanable/cobweb, /obj/structure/closet/crate/grave/lead_researcher, /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/mob_spawn/human/skeleton, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ae" = ( /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "af" = ( /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ag" = ( /obj/effect/decal/cleanable/vomit, /obj/item/shovel, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ah" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ai" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aj" = ( /obj/effect/decal/cleanable/blood/tracks{ dir = 4 }, /obj/item/paper/fluff/ruins/elephant_graveyard/final_message, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ak" = ( /turf/open/floor/plating/asteroid/basalt/wasteland{ icon_state = "wasteland_dug" }, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "al" = ( /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "am" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "an" = ( /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/assembly/mousetrap, /turf/open/floor/plating/asteroid/basalt/wasteland{ icon_state = "wasteland_dug" }, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ao" = ( /obj/structure/statue/bone/skull/half, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ap" = ( /obj/structure/statue/bone/skull/half{ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aq" = ( /obj/item/reagent_containers/glass/bottle/frostoil{ desc = "A small bottle. Contains cold sauce. There's a label on here: APPLY ON SEVERE BURNS."; @@ -82,11 +82,11 @@ }, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ar" = ( /obj/structure/flora/rock, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "as" = ( /obj/structure/flora/rock, /obj/item/pickaxe{ @@ -96,7 +96,7 @@ }, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "at" = ( /turf/closed/mineral/strong/wasteland, /area/lavaland/surface) @@ -105,47 +105,47 @@ /obj/item/t_scanner/adv_mining_scanner/lesser, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "av" = ( /obj/structure/barricade/wooden/crude, /obj/structure/barricade/wooden, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aw" = ( /obj/structure/table, /obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/rnd_notes, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ax" = ( /obj/structure/statue/bone/rib{ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ay" = ( /obj/structure/statue/bone/rib, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "az" = ( /obj/structure/table, /obj/item/pen, /obj/item/pen, /obj/item/pen, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aA" = ( /turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aB" = ( /obj/item/chair, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aC" = ( /obj/effect/decal/remains/human, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aD" = ( /obj/structure/table, /obj/item/reagent_containers/glass/bottle/plasma{ @@ -153,80 +153,80 @@ }, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aE" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aF" = ( /obj/structure/table, /obj/machinery/power/floodlight, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aG" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/glowstick, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aH" = ( /turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "aI" = ( /obj/effect/spawner/structure/window/shuttle, /obj/structure/grille, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "aJ" = ( /obj/structure/table, /obj/item/clipboard, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aK" = ( /obj/item/cigbutt, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aL" = ( /obj/structure/table, /obj/item/paper_bin, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aM" = ( /obj/structure/table, /obj/item/clothing/gloves/color/black, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aN" = ( /turf/closed/wall/mineral/titanium/nodiagonal, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "aO" = ( /obj/effect/decal/cleanable/glass, /obj/machinery/computer, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "aP" = ( /obj/structure/bed, /obj/item/flashlight/lantern, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aQ" = ( /obj/machinery/power/floodlight, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aR" = ( /obj/structure/table, /obj/item/taperecorder, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aS" = ( /obj/structure/table, /obj/item/tape/random, /obj/item/tape/random, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aT" = ( /obj/structure/closet/crate/bin, /obj/item/trash/candle, @@ -235,124 +235,124 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/item/cigbutt, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aU" = ( /obj/structure/bed, /obj/item/bedsheet/brown, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aV" = ( /obj/structure/bed, /obj/item/bedsheet/brown, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aW" = ( /obj/structure/filingcabinet/chestdrawer, /obj/item/clothing/mask/gas/explorer/folded, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "aX" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aY" = ( /obj/structure/sign/warning/nosmoking/circle, /turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "aZ" = ( /obj/item/organ/brain, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ba" = ( /obj/structure/headpike/bone, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bb" = ( /obj/effect/decal/cleanable/oil/streak, /obj/effect/decal/cleanable/glass, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bc" = ( /obj/structure/sign/poster/ripped, /turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bd" = ( /obj/item/organ/heart, /obj/item/organ/eyes, /obj/item/organ/ears, /obj/effect/decal/cleanable/blood/gibs/old, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "be" = ( /obj/item/organ/lungs, /obj/item/organ/liver, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bf" = ( /turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bg" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bh" = ( /obj/effect/decal/cleanable/oil, /obj/structure/chair/office/light, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bi" = ( /obj/effect/turf_decal/delivery/white, /turf/open/floor/circuit/off, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bj" = ( /obj/structure/barricade/wooden, /obj/structure/mineral_door/wood, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bk" = ( /obj/item/kitchen/knife/combat/bone, /obj/item/organ/tongue, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bl" = ( /obj/effect/decal/cleanable/shreds, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bm" = ( /obj/structure/closet/wardrobe/curator, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bn" = ( /obj/structure/sink/oil_well, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bo" = ( /obj/item/stack/medical/gauze/improvised, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bp" = ( /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bq" = ( /obj/machinery/iv_drip, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "br" = ( /obj/structure/sign/warning/nosmoking/circle, /turf/closed/wall/mineral/titanium, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bs" = ( /obj/structure/fence/door, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bt" = ( /obj/structure/table, /turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bu" = ( /obj/structure/bed, /obj/item/trash/pistachios, @@ -360,54 +360,54 @@ /obj/item/bedsheet/brown, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bv" = ( /obj/effect/decal/remains/human, /obj/item/clothing/under/misc/overalls, /obj/item/clothing/mask/bandana/green, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bw" = ( /obj/structure/rack, /obj/item/shovel, /obj/item/wrench, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bx" = ( /obj/item/reagent_containers/food/snacks/deadmouse, /obj/item/assembly/mousetrap, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "by" = ( /obj/structure/closet/emcloset, /obj/item/light/bulb, /obj/effect/turf_decal/box/white, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bz" = ( /obj/item/paper/crumpled/muddy/fluff/elephant_graveyard/mutiny, /obj/item/cigbutt, /obj/item/cigbutt, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bA" = ( /obj/machinery/suit_storage_unit/mining/eva, /obj/effect/turf_decal/box/white, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bB" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bC" = ( /obj/structure/barricade/sandbags, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bD" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bE" = ( /obj/structure/shuttle/engine/heater, /obj/structure/window{ @@ -415,17 +415,17 @@ }, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bF" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bG" = ( /obj/effect/decal/remains/human, /obj/item/tank/internals/emergency_oxygen/empty, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bH" = ( /obj/item/paper/fluff/ruins/elephant_graveyard, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -433,70 +433,70 @@ "bI" = ( /obj/structure/shuttle/engine/propulsion, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bJ" = ( /obj/structure/sign/warning/xeno_mining, /turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bK" = ( /obj/structure/sign/warning/explosives, /turf/closed/wall, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bL" = ( /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bM" = ( /obj/item/storage/fancy/cigarettes/cigpack_mindbreaker, /obj/structure/closet/crate/grave, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bN" = ( /obj/structure/sign/warning/securearea, /obj/structure/sign/warning/securearea, /turf/closed/mineral/strong/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bO" = ( /obj/item/paper/fluff/ruins/elephant_graveyard, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bP" = ( /obj/structure/barricade/wooden/crude, /obj/item/paper/fluff/ruins/elephant_graveyard, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bQ" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/decal/cleanable/cobweb, /obj/item/paper/fluff/ruins/elephant_graveyard/hypothesis, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bR" = ( /obj/effect/decal/cleanable/generic, /obj/item/cigbutt, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bS" = ( /obj/effect/decal/cleanable/oil/slippery, /obj/machinery/rnd/destructive_analyzer, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bT" = ( /obj/structure/barricade/wooden, /obj/item/paper/fluff/ruins/elephant_graveyard, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bU" = ( /obj/item/light/bulb/broken, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bV" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bW" = ( /obj/effect/decal/cleanable/glass, /obj/effect/decal/cleanable/dirt/dust, @@ -504,19 +504,19 @@ name = "archaeology shuttle airlock" }, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bX" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/dirt/dust, /obj/item/clothing/head/fedora/curator, /obj/item/clothing/suit/curator, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "bY" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/item/cigbutt, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "bZ" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface) @@ -524,84 +524,84 @@ /obj/structure/table, /obj/item/storage/firstaid/o2, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cb" = ( /obj/machinery/power/port_gen/pacman, /obj/effect/mapping_helpers/network_builder/power_cable, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cc" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/shreds, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cd" = ( /obj/item/trash/can, /obj/structure/bedsheetbin/empty, /obj/structure/table, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ce" = ( /obj/structure/stone_tile/slab/cracked, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cf" = ( /obj/structure/bed, /obj/item/wirecutters, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cg" = ( /obj/structure/stone_tile/center/cracked, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ch" = ( /obj/effect/decal/remains/human, /obj/item/restraints/handcuffs/cable/zipties/used, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ci" = ( /obj/structure/stone_tile/surrounding_tile, /turf/open/floor/plating/asteroid/basalt/wasteland{ icon_state = "wasteland_dug" }, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cj" = ( /obj/structure/stone_tile/block/cracked, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ck" = ( /obj/structure/reagent_dispensers/water_cooler, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cl" = ( /obj/structure/closet/crate/grave, /obj/effect/mob_spawn/human/skeleton, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cm" = ( /obj/structure/table/optable, /obj/item/storage/backpack/explorer, /obj/item/reagent_containers/food/drinks/soda_cans/cola, /obj/item/restraints/handcuffs/cable/zipties/used, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "cn" = ( /obj/structure/stone_tile/cracked, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "co" = ( /obj/effect/decal/cleanable/blood/drip, /obj/structure/stone_tile/cracked, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cq" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cr" = ( /obj/structure/bonfire/prelit, /obj/effect/decal/cleanable/ash, @@ -609,42 +609,42 @@ /obj/effect/decal/cleanable/blood/old, /obj/structure/stone_tile/slab/cracked, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cs" = ( /obj/structure/ore_box, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "ct" = ( /obj/structure/stone_tile, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cu" = ( /obj/structure/stone_tile{ dir = 8 }, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cv" = ( /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/titanium/white, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "cw" = ( /obj/structure/closet/crate/grave, /obj/effect/decal/cleanable/dirt/dust, /obj/effect/mob_spawn/human/skeleton, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) "cx" = ( /obj/item/light/bulb/broken, /obj/effect/turf_decal/caution/stand_clear/white, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/mineral/titanium/purple, -/area/ruin/powered/graveyard_shuttle) +/area/ruin/lavaland/powered/graveyard_shuttle) "cz" = ( /obj/structure/stone_tile, /obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating/asteroid/basalt/wasteland, -/area/ruin/unpowered/elephant_graveyard) +/area/ruin/lavaland/unpowered/elephant_graveyard) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm index e7fa30c601..6e10d1dd76 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_envy.dmm @@ -10,7 +10,7 @@ /area/lavaland/surface/outdoors) "d" = ( /turf/closed/wall/rust, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /obj/structure/mirror{ broken = 1; @@ -21,7 +21,7 @@ /obj/item/clothing/suit/hooded/bloated_human, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "g" = ( /obj/effect/decal/cleanable/blood/tracks, /obj/structure/mirror{ @@ -31,18 +31,18 @@ pixel_x = -28 }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "h" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "i" = ( /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "j" = ( /obj/effect/decal/cleanable/blood/splatter, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "k" = ( /obj/structure/mirror{ broken = 1; @@ -53,7 +53,7 @@ /turf/open/floor/plating{ icon_state = "panelscorched" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "l" = ( /obj/structure/mirror{ broken = 1; @@ -62,7 +62,7 @@ pixel_x = 28 }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "m" = ( /obj/structure/mirror{ broken = 1; @@ -71,12 +71,12 @@ pixel_x = -28 }, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "n" = ( /turf/open/floor/plating{ icon_state = "platingdmg2" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "o" = ( /obj/structure/mirror{ broken = 1; @@ -87,11 +87,11 @@ /turf/open/floor/plating{ icon_state = "platingdmg1" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "p" = ( /obj/machinery/door/airlock/hatch, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "A" = ( /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -105,7 +105,7 @@ }, /obj/item/kitchen/knife/envy, /turf/open/floor/plating, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm index 70ffdc85cd..5aeb8d8da1 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm @@ -10,115 +10,115 @@ /area/lavaland/surface/outdoors) "e" = ( /turf/open/lava/smooth, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "f" = ( /obj/item/reagent_containers/syringe/gluttony, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "g" = ( /obj/effect/gluttony, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "h" = ( /obj/item/trash/boritos, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "i" = ( /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "j" = ( /obj/item/trash/plate, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "l" = ( /obj/item/trash/candy, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "m" = ( /obj/item/trash/raisins, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "n" = ( /obj/item/trash/pistachios, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "o" = ( /obj/item/trash/popcorn, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "p" = ( /obj/item/trash/semki, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "q" = ( /obj/item/trash/syndi_cakes, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "r" = ( /obj/effect/gluttony, /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "t" = ( /obj/machinery/light/small{ dir = 1 }, /obj/item/trash/plate/alt, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "v" = ( /obj/machinery/light/small, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "z" = ( /obj/item/trash/plate, /obj/machinery/light/small{ dir = 8 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "A" = ( /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "B" = ( /obj/item/veilrender/vealrender, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "E" = ( /obj/machinery/light/small, /obj/item/trash/cheesie, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "G" = ( /obj/item/trash/waffles, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "L" = ( /obj/machinery/light/small, /obj/item/trash/plate/alt, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "N" = ( /obj/item/trash/cheesie, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "R" = ( /turf/closed/indestructible/riveted/uranium, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "S" = ( /obj/machinery/door/airlock/uranium, /obj/structure/fans/tiny/invisible, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) "Z" = ( /obj/item/trash/plate/alt, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/gluttony) +/area/ruin/lavaland/powered/gluttony) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm index 671fdd54d6..26aebb4a4d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_greed.dmm @@ -17,11 +17,11 @@ /turf/open/floor/carpet{ icon_state = "carpetsymbol" }, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "f" = ( /obj/structure/cursed_slot_machine, /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "g" = ( /obj/structure/table/wood/poker, /obj/item/coin/mythril, @@ -31,48 +31,48 @@ /turf/open/floor/carpet{ icon_state = "carpetsymbol" }, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "h" = ( /obj/structure/table/wood/poker, /obj/item/coin/diamond, /turf/open/floor/carpet{ icon_state = "carpetsymbol" }, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "j" = ( /obj/structure/table/wood/poker, /obj/item/coin/adamantine, /turf/open/floor/carpet{ icon_state = "carpetsymbol" }, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "k" = ( /obj/machinery/computer/arcade/battle{ set_obj_flags = "EMAGGED" }, /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "l" = ( /obj/item/coin/gold, /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "m" = ( /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "n" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c1000, /turf/open/floor/carpet, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "o" = ( /obj/item/storage/bag/money, /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "p" = ( /obj/structure/table/wood/poker, /obj/item/stack/ore/gold, /turf/open/floor/carpet, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "q" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c20, @@ -82,19 +82,19 @@ dir = 8 }, /turf/open/floor/carpet, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "r" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c500, /obj/item/stack/spacecash/c100, /obj/item/stack/spacecash/c1000, /turf/open/floor/carpet, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "s" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c200, /turf/open/floor/carpet, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "u" = ( /obj/structure/table/wood/poker, /obj/item/stack/spacecash/c500, @@ -104,30 +104,30 @@ dir = 4 }, /turf/open/floor/carpet, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "v" = ( /obj/item/coin/gold, /obj/machinery/light/small, /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "w" = ( /obj/item/storage/bag/money, /obj/machinery/light/small, /turf/open/floor/carpet/black, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "H" = ( /turf/open/floor/carpet/purple, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "J" = ( /obj/machinery/door/airlock/gold, /obj/structure/fans/tiny/invisible, /turf/open/floor/carpet/purple, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) "W" = ( /turf/closed/wall/mineral/cult{ sheet_amount = 0 }, -/area/ruin/powered/greed) +/area/ruin/lavaland/powered/greed) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm index 4e16f9a174..6f1aaac226 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm @@ -4,57 +4,57 @@ /area/lavaland/surface/outdoors) "b" = ( /turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/powered) +/area/ruin/lavaland/powered) "c" = ( /turf/closed/wall/mineral/iron, -/area/ruin/powered) +/area/ruin/lavaland/powered) "d" = ( /obj/item/clothing/head/helmet/space/orange, /obj/item/clothing/mask/breath, /turf/open/floor/plating/asteroid/basalt, -/area/ruin/powered) +/area/ruin/lavaland/powered) "e" = ( /obj/item/clothing/suit/space/orange, /turf/open/floor/plating/asteroid/basalt, -/area/ruin/powered) +/area/ruin/lavaland/powered) "f" = ( /turf/open/floor/plating/asteroid/basalt, -/area/ruin/powered) +/area/ruin/lavaland/powered) "g" = ( /turf/open/floor/plating/asteroid{ name = "dirt" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) "h" = ( /obj/item/shovel, /turf/open/floor/plating/asteroid{ name = "dirt" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) "i" = ( /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plating/asteroid{ name = "dirt" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) "j" = ( /obj/structure/sink/puddle, /turf/open/floor/plating/asteroid{ name = "dirt" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) "k" = ( /obj/structure/glowshroom/single, /turf/open/floor/plating/asteroid{ name = "dirt" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) "l" = ( /obj/item/storage/toolbox/emergency, /turf/open/floor/plating/asteroid{ name = "dirt" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) "m" = ( /obj/structure/rack, /obj/item/seeds/reishi, @@ -62,79 +62,79 @@ /obj/item/seeds/plump, /obj/item/reagent_containers/food/snacks/grown/mushroom/glowshroom, /turf/open/floor/plating/asteroid/basalt, -/area/ruin/powered) +/area/ruin/lavaland/powered) "n" = ( /obj/machinery/hydroponics/soil, /turf/open/floor/plating, -/area/ruin/powered) +/area/ruin/lavaland/powered) "o" = ( /turf/open/floor/plating, -/area/ruin/powered) +/area/ruin/lavaland/powered) "p" = ( /obj/structure/rack, /obj/item/storage/bag/plants/portaseeder, /obj/item/storage/bag/ore, /obj/item/storage/firstaid/regular, /turf/open/floor/plating/asteroid/basalt, -/area/ruin/powered) +/area/ruin/lavaland/powered) "q" = ( /obj/structure/glowshroom/single, /turf/open/floor/plating, -/area/ruin/powered) +/area/ruin/lavaland/powered) "r" = ( /obj/structure/rack, /obj/item/pickaxe/emergency, /obj/item/tank/internals/oxygen, /turf/open/floor/plating/asteroid/basalt, -/area/ruin/powered) +/area/ruin/lavaland/powered) "s" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "t" = ( /turf/closed/wall/mineral/titanium/survival/pod, -/area/ruin/powered) +/area/ruin/lavaland/powered) "u" = ( /obj/structure/bed/pod, /obj/item/bedsheet/black, /turf/open/floor/plating, -/area/ruin/powered) +/area/ruin/lavaland/powered) "v" = ( /obj/structure/fans, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "w" = ( /obj/machinery/smartfridge/survival_pod, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "x" = ( /obj/effect/mob_spawn/human/hermit, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "y" = ( /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "z" = ( /obj/machinery/light/small{ dir = 4 }, /obj/structure/tubes, /turf/open/floor/plating, -/area/ruin/powered) +/area/ruin/lavaland/powered) "A" = ( /obj/structure/table, /obj/item/kitchen/knife/combat/survival, /turf/open/floor/plating, -/area/ruin/powered) +/area/ruin/lavaland/powered) "B" = ( /obj/structure/table/survival_pod, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "C" = ( /obj/structure/tubes, /obj/item/crowbar, /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "D" = ( /obj/effect/decal/cleanable/blood/footprints{ dir = 1; @@ -143,37 +143,37 @@ /obj/machinery/door/airlock/survival_pod/glass, /obj/structure/fans/tiny, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "E" = ( /obj/structure/shuttle/engine/propulsion/burst{ dir = 8 }, /turf/closed/wall/mineral/titanium/interior, -/area/ruin/powered) +/area/ruin/lavaland/powered) "F" = ( /turf/closed/wall/mineral/titanium, -/area/ruin/powered) +/area/ruin/lavaland/powered) "G" = ( /turf/closed/wall/mineral/titanium/interior, -/area/ruin/powered) +/area/ruin/lavaland/powered) "H" = ( /obj/machinery/door/airlock/titanium{ name = "Escape Pod Airlock" }, /turf/open/floor/mineral/titanium/blue, -/area/ruin/powered) +/area/ruin/lavaland/powered) "I" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/mineral/titanium/blue, -/area/ruin/powered) +/area/ruin/lavaland/powered) "J" = ( /obj/effect/spawner/structure/window/shuttle, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/powered) +/area/ruin/lavaland/powered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm index c307c2caae..1a9bc28f2d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm @@ -1,35 +1,35 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/indestructible/riveted/hierophant, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) "b" = ( /turf/open/indestructible/hierophant, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) "c" = ( /obj/effect/light_emitter{ set_cap = 3; set_luminosity = 5 }, /turf/open/indestructible/hierophant, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) "d" = ( /mob/living/simple_animal/hostile/megafauna/hierophant, /turf/open/indestructible/hierophant/two, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) "e" = ( /turf/open/indestructible/hierophant/two, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) "f" = ( /obj/effect/light_emitter{ set_cap = 3; set_luminosity = 5 }, /turf/open/indestructible/hierophant/two, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) "s" = ( /obj/item/tcg_card/special/hierophant, /turf/open/indestructible/hierophant, -/area/ruin/unpowered/hierophant) +/area/ruin/lavaland/unpowered/hierophant) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_library.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_library.dmm index 829761b042..a21ea5f9dd 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_library.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_library.dmm @@ -7,145 +7,145 @@ /obj/item/documents/syndicate/mining, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ac" = ( /turf/closed/wall/mineral/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ad" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "ae" = ( /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "af" = ( /obj/item/stack/sheet/mineral/wood, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ag" = ( /obj/item/feather, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ah" = ( /obj/structure/bookcase/random, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ai" = ( /obj/structure/table/wood/fancy/black, /obj/item/paper/crumpled/fluff/stations/lavaland/library/diary2, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "al" = ( /turf/closed/wall/mineral/iron, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "am" = ( /obj/structure/table/wood/fancy/black, /obj/item/book_of_babel, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ao" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ap" = ( /obj/item/stack/sheet/mineral/wood, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aq" = ( /obj/structure/bookcase/random, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ar" = ( /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "as" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/fluff/ruins/oldstation/protosing, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aw" = ( /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ay" = ( /obj/machinery/door/keycard/library, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "az" = ( /obj/item/paper/crumpled/fluff/stations/lavaland/library/diary, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aA" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aC" = ( /obj/item/feather, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aD" = ( /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aE" = ( /obj/item/stack/sheet/mineral/wood, /obj/item/book/manual/random, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aF" = ( /obj/item/book/manual/random, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aG" = ( /obj/structure/table/bronze, /obj/item/stack/ore/slag, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aH" = ( /obj/structure/table/bronze, /obj/item/statuebust, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aI" = ( /obj/effect/mob_spawn/human/skeleton, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aK" = ( /obj/item/feather, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aL" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/fluff/paper/stack, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aM" = ( /obj/item/stack/sheet/mineral/wood, /obj/item/book/manual/random, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aN" = ( /obj/structure/statue/sandstone/venus, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aP" = ( /obj/item/keycard/library, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aQ" = ( /obj/effect/decal/cleanable/dirt, /obj/item/paper/fluff/awaymissions/moonoutpost19/research/larva_autopsy, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aR" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aS" = ( /obj/structure/table/wood/fancy/black, /obj/effect/decal/cleanable/dirt, @@ -154,74 +154,74 @@ on = 1 }, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aV" = ( /obj/item/stack/sheet/mineral/wood, /obj/structure/fluff/paper/stack, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aW" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/plasteel/cult, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aX" = ( /obj/structure/table/bronze, /obj/item/statuebust, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "aY" = ( /obj/structure/table_frame/wood, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "ba" = ( /obj/structure/barricade/wooden/crude, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bg" = ( /obj/item/paper/fluff/ruins/oldstation/protogun, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bh" = ( /obj/effect/decal/cleanable/dirt, /mob/living/simple_animal/pet/fox, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bi" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bj" = ( /obj/item/book/manual/random, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bl" = ( /obj/item/storage/box/fountainpens, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bm" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bn" = ( /obj/item/book/manual/random, /obj/item/stack/sheet/mineral/wood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bo" = ( /obj/item/stack/sheet/mineral/wood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bp" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bq" = ( /obj/structure/mineral_door/wood, /turf/open/floor/wood, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "br" = ( /obj/structure/girder, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bt" = ( /obj/effect/decal/cleanable/dirt, /turf/template_noop, @@ -236,21 +236,21 @@ "by" = ( /obj/item/statuebust, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bz" = ( /obj/item/flashlight/lantern/jade{ on = 1 }, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bA" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/plating, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) "bB" = ( /obj/structure/fluff/paper/stack, /turf/open/floor/carpet/black, -/area/ruin/unpowered/buried_library) +/area/ruin/lavaland/unpowered/buried_library) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_mining_site.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_mining_site.dmm index dfe6a1b335..c5074528f1 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_mining_site.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_mining_site.dmm @@ -1,7 +1,7 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "b" = ( /turf/closed/wall/mineral/wood/nonmetal, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "c" = ( /obj/structure/closet/toolcloset, /obj/item/wrench, @@ -11,7 +11,7 @@ /obj/item/wirecutters, /obj/item/radio/off, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "d" = ( /turf/open/openspace/icemoon, /area/template_noop) @@ -25,14 +25,14 @@ /obj/structure/closet, /obj/item/clothing/shoes/jackboots, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "g" = ( /obj/structure/fireplace, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "h" = ( /obj/structure/flora/ash/cacti, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -43,34 +43,34 @@ "j" = ( /obj/structure/sink/kitchen, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "k" = ( /obj/structure/closet/crate/freezer, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "l" = ( /obj/machinery/vending/dinnerware, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "m" = ( /obj/structure/mineral_door/wood, /obj/effect/decal/cleanable/trail_holder, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "n" = ( /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) "o" = ( /obj/item/reagent_containers/food/drinks/beer, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "p" = ( /obj/machinery/light/broken{ dir = 4 }, /obj/effect/decal/cleanable/trail_holder, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "q" = ( /obj/structure/table/wood, /obj/item/pen, @@ -82,7 +82,7 @@ text = "" }, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "r" = ( /obj/item/chair/wood, /obj/effect/decal/cleanable/blood/splatter, @@ -91,11 +91,11 @@ dir = 8 }, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "s" = ( /obj/effect/decal/cleanable/trail_holder, /turf/open/floor/wood, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "N" = ( /obj/effect/decal/cleanable/trail_holder, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm index e582f6e9ce..d7811a66b2 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pizzaparty.dmm @@ -11,13 +11,13 @@ /area/lavaland/surface/outdoors) "d" = ( /turf/closed/wall, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "e" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /obj/structure/table/wood, /obj/item/storage/box/cups, @@ -25,7 +25,7 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "g" = ( /obj/structure/reagent_dispensers/water_cooler{ name = "punch cooler"; @@ -35,27 +35,27 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "h" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "i" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "j" = ( /obj/item/reagent_containers/food/snacks/pizzaslice/mushroom, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "k" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/pizzaparty, @@ -63,7 +63,7 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "l" = ( /obj/machinery/light{ dir = 4 @@ -75,42 +75,42 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "m" = ( /obj/item/chair/wood/wings, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "n" = ( /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "o" = ( /obj/item/trash/plate, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "p" = ( /obj/effect/decal/remains/human, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "q" = ( /obj/item/chair/wood/wings, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "r" = ( /obj/structure/chair/wood/wings, /obj/effect/decal/remains/human, @@ -121,25 +121,25 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "s" = ( /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "t" = ( /obj/structure/chair/wood/wings, /obj/effect/decal/remains/human, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "u" = ( /obj/structure/glowshroom/single, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "v" = ( /obj/structure/lattice, /obj/item/chair/wood/wings, @@ -151,21 +151,21 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "x" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/pizzaparty, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "y" = ( /obj/structure/table/wood, /obj/item/trash/plate, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "z" = ( /obj/structure/table/wood, /obj/structure/glowshroom/single, @@ -173,7 +173,7 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "A" = ( /obj/structure/table/wood, /obj/item/trash/plate, @@ -181,14 +181,14 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "B" = ( /obj/effect/decal/cleanable/dirt, /obj/item/trash/candy, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "C" = ( /obj/structure/chair/wood/wings{ dir = 4 @@ -198,7 +198,7 @@ /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "D" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/pizzaslice/margherita, @@ -206,48 +206,48 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "E" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/pizzaslice/meat, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "F" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/store/cake/birthday, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "G" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/lollipop, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "H" = ( /obj/item/chair/wood/wings, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "I" = ( /obj/item/kitchen/fork, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "J" = ( /obj/structure/glowshroom/single, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "K" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -257,21 +257,21 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "L" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "M" = ( /obj/effect/decal/cleanable/dirt, /obj/item/a_gift, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "N" = ( /obj/structure/lattice, /obj/effect/decal/cleanable/dirt, @@ -283,7 +283,7 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "P" = ( /obj/machinery/light{ dir = 4 @@ -292,12 +292,12 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "Q" = ( /turf/open/floor/plating{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "R" = ( /obj/structure/table/wood, /obj/effect/spawner/lootdrop/pizzaparty, @@ -306,27 +306,27 @@ /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "V" = ( /obj/item/reagent_containers/food/snacks/gumball, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "X" = ( /obj/effect/decal/cleanable/dirt, /obj/item/toy/snappop, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "Z" = ( /obj/effect/decal/cleanable/dirt, /obj/item/reagent_containers/food/snacks/gumball, /turf/open/floor/wood{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm index f42aef243a..07c0693056 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_pride.dmm @@ -4,7 +4,7 @@ /area/lavaland/surface/outdoors) "b" = ( /turf/closed/wall/mineral/diamond, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "c" = ( /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) @@ -13,20 +13,20 @@ pixel_x = -32 }, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "f" = ( /obj/structure/mirror{ pixel_x = 32 }, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "g" = ( /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "i" = ( /obj/item/clothing/gloves/ring, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "j" = ( /obj/structure/mirror{ pixel_x = -32 @@ -35,11 +35,11 @@ dir = 1 }, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "k" = ( /obj/structure/mirror/magic/pride, /turf/closed/wall/mineral/diamond, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "l" = ( /obj/structure/mirror{ pixel_x = -32 @@ -49,7 +49,7 @@ dir = 8 }, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "m" = ( /obj/structure/mirror{ pixel_x = 32 @@ -58,43 +58,43 @@ dir = 4 }, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "o" = ( /obj/structure/mirror{ pixel_x = -32 }, /obj/item/lipstick/random, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "q" = ( /obj/structure/mirror{ pixel_x = -32 }, /obj/item/clothing/gloves/ring/silver, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "r" = ( /obj/machinery/light/small, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "u" = ( /obj/structure/mirror{ pixel_x = 32 }, /obj/item/lipstick/random, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "D" = ( /obj/item/clothing/head/wig/random, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "G" = ( /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) "I" = ( /obj/item/clothing/gloves/ring/silver, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "J" = ( /obj/structure/mirror{ pixel_x = 32 @@ -103,25 +103,25 @@ dir = 1 }, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "L" = ( /obj/item/lipstick/random, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "O" = ( /obj/item/clothing/gloves/ring/diamond, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "V" = ( /obj/item/clothing/head/wig, /turf/open/floor/mineral/silver, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) "Y" = ( /obj/machinery/door/airlock/silver/glass, /turf/open/floor/mineral/silver{ blocks_air = 1 }, -/area/ruin/powered/pride) +/area/ruin/lavaland/powered/pride) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm index e22f21ef4f..e95fcc82c3 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm @@ -14,29 +14,29 @@ /obj/item/storage/fancy/rollingpapers, /obj/item/storage/fancy/rollingpapers, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "e" = ( /obj/structure/table/wood, /obj/item/storage/box/disks_plantgene, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "f" = ( /obj/machinery/plantgenes/seedvault{ pixel_y = 6 }, /obj/structure/table/wood, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "g" = ( /obj/structure/table/wood, /obj/machinery/smartfridge/disks{ pixel_y = 2 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "h" = ( /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "i" = ( /obj/structure/closet/crate/hydroponics, /obj/structure/beebox, @@ -48,7 +48,7 @@ /obj/item/clothing/head/beekeeper_head, /obj/item/clothing/suit/beekeeper_suit, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "j" = ( /obj/structure/shuttle/engine/propulsion{ dir = 8 @@ -59,11 +59,11 @@ /obj/structure/closet/crate, /obj/effect/spawner/lootdrop/seed_vault, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "l" = ( /obj/machinery/door/airlock, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "m" = ( /obj/machinery/door/airlock/external, /obj/structure/fans/tiny, @@ -71,11 +71,11 @@ dir = 8 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "n" = ( /obj/machinery/smartfridge, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "o" = ( /obj/structure/closet/crate/hydroponics, /obj/item/cultivator, @@ -91,18 +91,18 @@ /obj/item/hatchet, /obj/item/hatchet, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "p" = ( /obj/machinery/hydroponics/constructable, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "q" = ( /obj/item/hatchet, /obj/item/storage/bag/plants, /obj/item/reagent_containers/glass/bucket, /obj/structure/table/wood, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "r" = ( /obj/structure/table/wood, /obj/item/storage/bag/plants, @@ -110,7 +110,7 @@ /obj/item/storage/bag/plants, /obj/item/storage/bag/plants, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "s" = ( /obj/structure/table/wood, /obj/item/gun/energy/floragun, @@ -119,11 +119,11 @@ /obj/item/gun/energy/floragun, /obj/item/storage/box/disks_plantgene, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "t" = ( /obj/effect/mob_spawn/human/seed_vault, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "u" = ( /obj/structure/sink{ dir = 8; @@ -131,15 +131,15 @@ pixel_y = 2 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "v" = ( /obj/machinery/vending/hydronutrients, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "w" = ( /obj/machinery/vending/hydroseeds, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "x" = ( /obj/machinery/reagentgrinder{ pixel_y = 5 @@ -150,42 +150,42 @@ /obj/item/reagent_containers/glass/beaker/bluespace, /obj/item/reagent_containers/glass/beaker/bluespace, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "y" = ( /obj/structure/sink{ dir = 4; pixel_x = 11 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "z" = ( /obj/machinery/door/airlock/external, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "B" = ( /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/bin, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "C" = ( /obj/machinery/seed_extractor, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "D" = ( /obj/machinery/biogenerator, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "E" = ( /obj/machinery/chem_dispenser/mutagensaltpeter, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "F" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "G" = ( /obj/structure/closet/crate/hydroponics, /obj/item/clothing/under/rank/civilian/hydroponics, @@ -193,11 +193,11 @@ /obj/item/clothing/under/rank/civilian/hydroponics, /obj/item/clothing/under/rank/civilian/hydroponics, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "H" = ( /obj/machinery/chem_master/condimaster, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "I" = ( /obj/structure/table/wood, /obj/item/reagent_containers/glass/bucket, @@ -205,12 +205,12 @@ /obj/item/reagent_containers/glass/bucket, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "J" = ( /obj/item/storage/toolbox/syndicate, /obj/structure/table/wood, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "L" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -230,55 +230,55 @@ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "O" = ( /obj/machinery/light{ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "P" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/light{ dir = 1 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "Q" = ( /turf/closed/wall/r_wall, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "R" = ( /obj/machinery/light{ dir = 8 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "S" = ( /obj/machinery/light{ dir = 4 }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "U" = ( /obj/machinery/light, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "V" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/r_wall, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "X" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/light, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) "Z" = ( /obj/item/disk/design_disk/plant_disk, /obj/machinery/autolathe/hacked{ desc = "This autolathe seems to have its safety light off." }, /turf/open/floor/plasteel/freezer, -/area/ruin/powered/seedvault) +/area/ruin/lavaland/powered/seedvault) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm index 3576cab5c7..5bdb724e00 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @@ -1,30 +1,30 @@ //MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE "a" = ( /turf/closed/indestructible/riveted, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "b" = ( /turf/open/lava/smooth/lava_land_surface, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "c" = ( /obj/item/paper/fluff/stations/lavaland/sloth/note, /turf/open/floor/sepia{ blocks_air = 0; slowdown = 10 }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "d" = ( /turf/open/floor/sepia{ blocks_air = 0; slowdown = 10 }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "e" = ( /obj/machinery/door/airlock/wood, /turf/open/floor/sepia{ blocks_air = 0; slowdown = 10 }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /obj/structure/table/wood, /obj/item/reagent_containers/food/snacks/grown/citrus/orange, @@ -32,7 +32,7 @@ blocks_air = 0; slowdown = 10 }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "g" = ( /obj/structure/bed, /obj/item/bedsheet/brown, @@ -40,7 +40,7 @@ blocks_air = 0; slowdown = 10 }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm index 47896ec886..5bb7d48a44 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm @@ -13,7 +13,7 @@ /area/lavaland/surface/outdoors) "d" = ( /turf/closed/wall/mineral/titanium/survival/pod, -/area/ruin/powered) +/area/ruin/lavaland/powered) "e" = ( /obj/structure/sign/mining/survival{ dir = 4; @@ -24,16 +24,16 @@ "f" = ( /obj/structure/fans, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "g" = ( /obj/machinery/smartfridge/survival_pod/empty, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "h" = ( /obj/item/gps/computer, /obj/structure/tubes, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "i" = ( /obj/structure/sign/mining/survival{ dir = 8; @@ -48,12 +48,12 @@ "k" = ( /obj/machinery/sleeper/survival_pod, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "l" = ( /obj/item/pickaxe, /obj/effect/decal/cleanable/blood, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "m" = ( /obj/structure/bed/pod, /obj/item/bedsheet/black, @@ -62,7 +62,7 @@ dir = 4 }, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "n" = ( /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -78,7 +78,7 @@ /obj/structure/table/survival_pod, /obj/item/kitchen/knife/combat/survival, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "q" = ( /obj/effect/mob_spawn/human/miner/explorer{ brute_damage = 150; @@ -91,13 +91,13 @@ icon_state = "blood1" }, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "r" = ( /obj/structure/tubes, /obj/item/crowbar, /obj/effect/decal/cleanable/blood/drip, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "s" = ( /obj/effect/decal/cleanable/blood/footprints{ icon_state = "blood1" @@ -111,7 +111,7 @@ }, /obj/machinery/door/airlock/survival_pod/glass, /turf/open/floor/pod/dark, -/area/ruin/powered) +/area/ruin/lavaland/powered) "u" = ( /obj/effect/decal/cleanable/blood/footprints{ dir = 8; diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm index 93b8195a40..7f6ba7464d 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm @@ -7,24 +7,24 @@ /area/template_noop) "c" = ( /turf/closed/wall/mineral/plastitanium, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "d" = ( /turf/open/floor/mineral/plastitanium/red{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "e" = ( /obj/structure/shuttle/engine/propulsion{ dir = 4 }, /turf/template_noop, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "f" = ( /mob/living/simple_animal/hostile/megafauna/swarmer_swarm_beacon, /turf/open/floor/mineral/plastitanium/red{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm index 4514e08d5e..bcf0830523 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm @@ -30,17 +30,17 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "ae" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "af" = ( /obj/machinery/light/small{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ag" = ( /obj/machinery/airalarm/syndicate{ dir = 4; @@ -53,7 +53,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ah" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ @@ -64,14 +64,14 @@ req_access = null }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ai" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks/fullupgrade{ dir = 1 }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "aj" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -79,17 +79,17 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "ak" = ( /obj/machinery/vending/boozeomat/syndicate_access, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "al" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/machinery/vending/medical/syndicate_access, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "am" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high/plus{ @@ -104,7 +104,7 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "an" = ( /obj/structure/table/reinforced, /obj/item/stock_parts/cell/high/plus{ @@ -122,33 +122,33 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "ao" = ( /obj/structure/table/reinforced, /obj/item/integrated_circuit_printer/upgraded, /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "ap" = ( /obj/machinery/light/small{ dir = 1 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "aq" = ( /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "ar" = ( /obj/structure/table/reinforced, /obj/item/integrated_circuit_printer/upgraded, /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "as" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "at" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -156,7 +156,7 @@ id = "lavalandsyndi_chemistry" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "au" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -165,7 +165,7 @@ id = "lavalandsyndi_circuits" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "av" = ( /obj/structure/bed/roller, /obj/machinery/iv_drip, @@ -185,7 +185,7 @@ faction = list("neutral","Syndicate") }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "aw" = ( /obj/machinery/light/small, /obj/structure/bed/roller, @@ -206,7 +206,7 @@ faction = list("neutral","Syndicate") }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "ax" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -214,16 +214,16 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "aF" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "aL" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "aM" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -232,7 +232,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/chem_dispenser/fullupgrade, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "aO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -242,7 +242,7 @@ /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aP" = ( /obj/structure/cable/yellow{ icon_state = "0-8" @@ -255,14 +255,14 @@ /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aR" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aS" = ( /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -274,7 +274,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 @@ -284,13 +284,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -300,7 +300,7 @@ /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "aX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 @@ -312,7 +312,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "ba" = ( /obj/structure/chair/office/light{ dir = 8 @@ -327,19 +327,19 @@ /turf/open/floor/plasteel/white/corner{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "bb" = ( /obj/structure/chair/office/light{ dir = 4 }, /turf/open/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "bd" = ( /obj/structure/closet/crate/bin, /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "be" = ( /obj/structure/table/glass, /obj/item/integrated_electronics/analyzer{ @@ -351,20 +351,20 @@ pixel_y = 1 }, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "bf" = ( /obj/structure/table/glass, /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "bg" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/metal/fifty, /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "cA" = ( /obj/structure/table/reinforced, /obj/item/book/manual/wiki/chemistry, @@ -373,7 +373,7 @@ /obj/item/clothing/glasses/science, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "cG" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -382,19 +382,19 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dc" = ( /obj/machinery/light/small{ dir = 8 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "di" = ( /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "do" = ( /obj/structure/closet/secure_closet/medical1{ req_access = null; @@ -406,7 +406,7 @@ /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "du" = ( /obj/machinery/light/small{ dir = 1 @@ -421,7 +421,7 @@ /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dv" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -429,7 +429,7 @@ /obj/machinery/chem_heater, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dw" = ( /obj/structure/chair/office/light{ dir = 1 @@ -437,7 +437,7 @@ /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dx" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -445,10 +445,10 @@ /obj/structure/closet/crate/bin, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dy" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "dA" = ( /obj/structure/closet/l3closet, /obj/machinery/power/apc/syndicate{ @@ -466,17 +466,17 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dE" = ( /obj/structure/table/glass, /obj/item/stack/sheet/mineral/plasma{ @@ -501,7 +501,7 @@ /turf/open/floor/plasteel/white/corner{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dG" = ( /obj/structure/lattice/catwalk, /turf/open/lava/smooth/lava_land_surface, @@ -515,7 +515,7 @@ /turf/open/floor/plasteel/white/side{ dir = 5 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dK" = ( /obj/effect/turf_decal/box/white/corners{ dir = 4 @@ -538,7 +538,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "dL" = ( /obj/machinery/airalarm/syndicate{ pixel_y = 24 @@ -579,7 +579,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "dM" = ( /obj/effect/turf_decal/box/white/corners{ dir = 8 @@ -597,14 +597,14 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "dP" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "dQ" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "dR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/hatch{ @@ -628,7 +628,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "dS" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -638,7 +638,7 @@ name = "Syndicate Research Experimentation Shutters" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "dT" = ( /obj/machinery/firealarm{ dir = 8; @@ -654,32 +654,32 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dY" = ( /obj/structure/chair{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "dZ" = ( /obj/machinery/light/small{ dir = 4 @@ -704,7 +704,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "ea" = ( /obj/effect/turf_decal/box/white/corners{ dir = 1 @@ -734,7 +734,7 @@ }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eb" = ( /obj/structure/closet/crate, /obj/item/storage/toolbox/electrical{ @@ -742,7 +742,7 @@ }, /obj/item/storage/toolbox/mechanical, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ec" = ( /obj/effect/turf_decal/box/white/corners, /obj/structure/closet/crate/medical, @@ -756,7 +756,7 @@ pixel_y = -3 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ed" = ( /obj/structure/table, /obj/item/paper_bin, @@ -774,7 +774,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ee" = ( /obj/structure/rack, /obj/item/flashlight{ @@ -790,7 +790,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ef" = ( /obj/machinery/light/small{ dir = 1 @@ -812,7 +812,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eg" = ( /obj/structure/closet/firecloset/full{ anchored = 1 @@ -826,22 +826,22 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eh" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "ei" = ( /obj/structure/disposaloutlet{ dir = 1 }, /obj/structure/disposalpipe/trunk, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "ek" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "el" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -857,7 +857,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "em" = ( /obj/machinery/light/small{ dir = 1 @@ -883,7 +883,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eo" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/syndicate, @@ -898,7 +898,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "ep" = ( /obj/structure/table/reinforced, /obj/effect/decal/cleanable/dirt, @@ -917,7 +917,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eq" = ( /obj/structure/table/reinforced, /obj/item/restraints/handcuffs, @@ -934,7 +934,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "er" = ( /obj/machinery/light/small{ dir = 8 @@ -951,7 +951,7 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "es" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -959,13 +959,13 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/bin, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "et" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "eu" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -974,17 +974,17 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "ev" = ( /turf/open/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "ew" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/vending/syndichem, /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "ex" = ( /obj/machinery/light/small{ dir = 8 @@ -1013,7 +1013,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ey" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -1036,7 +1036,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ez" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -1058,7 +1058,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eA" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -1086,7 +1086,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eB" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -1099,7 +1099,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eC" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -1112,12 +1112,12 @@ dir = 10 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eD" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eE" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1127,7 +1127,7 @@ /obj/item/wrench, /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eF" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -1136,14 +1136,14 @@ id = "lavalandsyndi_cargo" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eG" = ( /obj/structure/closet/secure_closet/personal/patient, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "eH" = ( /obj/structure/bed, /obj/item/bedsheet, @@ -1153,16 +1153,16 @@ /turf/open/floor/plasteel/white/side{ dir = 5 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "eI" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "eJ" = ( /obj/structure/disposalpipe/segment, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "eL" = ( /obj/machinery/door/airlock/hatch{ name = "Monkey Pen"; @@ -1180,7 +1180,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eM" = ( /obj/machinery/firealarm{ dir = 1; @@ -1200,7 +1200,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eN" = ( /obj/machinery/airalarm/syndicate{ dir = 1; @@ -1220,7 +1220,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eO" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -1240,7 +1240,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eP" = ( /obj/structure/chair{ dir = 1 @@ -1262,7 +1262,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eQ" = ( /obj/machinery/light/small, /obj/structure/table/reinforced, @@ -1279,7 +1279,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "eR" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -1289,7 +1289,7 @@ /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "eS" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1297,13 +1297,13 @@ /obj/machinery/chem_master, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "eT" = ( /obj/effect/turf_decal/bot, /obj/structure/chair/office/light, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "eU" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1312,13 +1312,13 @@ /obj/machinery/chem_dispenser/fullupgrade, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "eV" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "eW" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -1336,7 +1336,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eX" = ( /obj/effect/turf_decal/box/white/corners{ dir = 4 @@ -1352,7 +1352,7 @@ /obj/item/clothing/mask/gas, /obj/item/clothing/mask/gas, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eY" = ( /obj/effect/turf_decal/box/white/corners{ dir = 8 @@ -1372,7 +1372,7 @@ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "eZ" = ( /obj/structure/rack{ dir = 8 @@ -1394,13 +1394,13 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fa" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate/bin, @@ -1408,21 +1408,21 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fe" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1431,7 +1431,7 @@ /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high/plus, /turf/open/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ff" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -1440,7 +1440,7 @@ /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ @@ -1449,7 +1449,7 @@ /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -1457,7 +1457,7 @@ /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fi" = ( /obj/structure/table/glass, /obj/item/storage/box/beakers{ @@ -1477,7 +1477,7 @@ /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fj" = ( /obj/structure/table/glass, /obj/structure/reagent_dispensers/virusfood{ @@ -1495,7 +1495,7 @@ /turf/open/floor/plasteel/white/side{ dir = 5 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fk" = ( /obj/machinery/power/apc/syndicate{ name = "Experimentation Lab APC"; @@ -1516,7 +1516,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "fl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -1537,7 +1537,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "fm" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical{ @@ -1550,13 +1550,13 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "fn" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "fo" = ( /obj/machinery/door/firedoor, /obj/structure/table/reinforced, @@ -1569,14 +1569,14 @@ req_access_txt = "150" }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "fp" = ( /obj/machinery/smartfridge/chemistry/preloaded, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry) "fq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -1592,7 +1592,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fr" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -1611,7 +1611,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fs" = ( /obj/effect/turf_decal/box/white/corners{ dir = 1 @@ -1627,7 +1627,7 @@ /obj/item/circuitboard/machine/cell_charger, /obj/item/circuitboard/machine/smoke_machine, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ft" = ( /obj/effect/turf_decal/box/white/corners, /obj/structure/closet/crate, @@ -1651,7 +1651,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fu" = ( /obj/machinery/light/small{ dir = 8 @@ -1682,11 +1682,11 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fv" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fw" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/firealarm{ @@ -1695,11 +1695,11 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fx" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fy" = ( /obj/machinery/door/airlock/virology/glass{ name = "Isolation B"; @@ -1708,7 +1708,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fz" = ( /obj/machinery/door/airlock/virology/glass{ name = "Isolation A"; @@ -1717,7 +1717,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fA" = ( /obj/structure/table/glass, /obj/item/book/manual/wiki/infections{ @@ -1732,14 +1732,14 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fB" = ( /obj/structure/chair/stool, /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/white/corner{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fC" = ( /obj/machinery/smartfridge/chemistry/virology/preloaded, /obj/effect/decal/cleanable/dirt, @@ -1747,11 +1747,11 @@ /turf/open/floor/plasteel/white/side{ dir = 5 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fD" = ( /obj/structure/sign/warning/biohazard, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "fE" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/l3closet, @@ -1763,14 +1763,14 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "fF" = ( /obj/effect/turf_decal/bot, /obj/machinery/shower{ pixel_y = 14 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "fG" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -1793,13 +1793,13 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "fH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "fI" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable/yellow{ @@ -1810,12 +1810,12 @@ /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "fO" = ( /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "fW" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -1838,7 +1838,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "fY" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -27; @@ -1863,7 +1863,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gb" = ( /obj/structure/table, /obj/item/paper_bin, @@ -1873,7 +1873,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gc" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -1883,7 +1883,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gd" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" @@ -1893,14 +1893,14 @@ dir = 4 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gf" = ( /obj/structure/sign/warning/vacuum{ pixel_y = -32 }, /obj/machinery/light/small, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gg" = ( /obj/structure/sign/warning/fire{ pixel_y = 32 @@ -1909,7 +1909,7 @@ pixel_y = -32 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gh" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ @@ -1919,16 +1919,16 @@ dir = 8 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gj" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gn" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 6 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "gp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -1938,7 +1938,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gq" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -1947,7 +1947,7 @@ dir = 1 }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1956,14 +1956,14 @@ dir = 4 }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gs" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1974,7 +1974,7 @@ /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -1988,7 +1988,7 @@ /turf/open/floor/plasteel/white/corner{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -2001,7 +2001,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gw" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2015,7 +2015,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gy" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -2031,7 +2031,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gz" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -2046,7 +2046,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gA" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/virology{ @@ -2075,7 +2075,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -2093,7 +2093,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gE" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/structure/cable/yellow{ @@ -2108,7 +2108,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gF" = ( /obj/machinery/light/small{ dir = 1 @@ -2124,7 +2124,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gG" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -2136,7 +2136,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gH" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -2147,7 +2147,7 @@ icon_state = "1-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gI" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -2160,7 +2160,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gJ" = ( /obj/machinery/door/firedoor, /obj/structure/cable/yellow{ @@ -2174,7 +2174,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gK" = ( /obj/machinery/light/small{ dir = 1 @@ -2192,7 +2192,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gL" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -2210,7 +2210,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown{ @@ -2220,7 +2220,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown{ @@ -2231,11 +2231,11 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gO" = ( /obj/structure/sign/departments/cargo, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gP" = ( /obj/machinery/photocopier, /obj/effect/decal/cleanable/dirt, @@ -2243,18 +2243,18 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gQ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gR" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gS" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -2269,7 +2269,7 @@ req_access_txt = "150" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "gT" = ( /obj/machinery/door/airlock/virology/glass{ name = "Monkey Pen"; @@ -2278,7 +2278,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gU" = ( /obj/machinery/airalarm/syndicate{ dir = 4; @@ -2296,11 +2296,11 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gV" = ( /obj/structure/chair/office/light, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gW" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -2309,7 +2309,7 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gX" = ( /obj/machinery/doorButtons/airlock_controller{ idExterior = "lavaland_syndie_virology_exterior"; @@ -2336,7 +2336,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "gY" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -2354,7 +2354,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "gZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -2364,10 +2364,10 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ha" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ @@ -2378,7 +2378,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -2389,18 +2389,18 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hd" = ( /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "he" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red, @@ -2408,7 +2408,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hg" = ( /obj/machinery/light/small, /obj/effect/decal/cleanable/dirt, @@ -2417,7 +2417,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hh" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/red, @@ -2425,20 +2425,20 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hi" = ( /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hj" = ( /obj/effect/turf_decal/tile/brown, /obj/effect/turf_decal/tile/brown{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hk" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining/glass{ @@ -2446,17 +2446,17 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hl" = ( /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hn" = ( /obj/structure/chair{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "ho" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2473,7 +2473,7 @@ shuttleId = "syndie_cargo" }, /turf/open/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hp" = ( /obj/effect/decal/cleanable/dirt, /mob/living/carbon/monkey{ @@ -2482,7 +2482,7 @@ /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -2491,7 +2491,7 @@ /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hr" = ( /mob/living/carbon/monkey{ faction = list("neutral","Syndicate") @@ -2499,7 +2499,7 @@ /turf/open/floor/plasteel/white/side{ dir = 5 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hs" = ( /obj/machinery/computer/pandemic, /obj/effect/decal/cleanable/dirt, @@ -2512,7 +2512,7 @@ /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "ht" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -2525,7 +2525,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/clothing/glasses/science, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hu" = ( /obj/structure/table, /obj/machinery/reagentgrinder, @@ -2539,7 +2539,7 @@ amount = 10 }, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hv" = ( /obj/machinery/disposal/bin, /obj/structure/sign/warning/deathsposal{ @@ -2553,7 +2553,7 @@ /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hw" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" @@ -2561,7 +2561,7 @@ /obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hx" = ( /obj/machinery/airalarm/syndicate{ dir = 4; @@ -2580,17 +2580,17 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hy" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hz" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hA" = ( /obj/structure/closet/emcloset/anchored, /obj/effect/decal/cleanable/dirt, @@ -2605,7 +2605,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hB" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -2614,14 +2614,14 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hC" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining/glass{ name = "Cargo Bay" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hD" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -2630,7 +2630,7 @@ /obj/item/storage/belt/utility, /obj/effect/decal/cleanable/dirt, /turf/open/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hE" = ( /mob/living/carbon/monkey{ faction = list("neutral","Syndicate") @@ -2638,7 +2638,7 @@ /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hF" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ @@ -2646,7 +2646,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hG" = ( /obj/effect/decal/cleanable/dirt, /mob/living/carbon/monkey{ @@ -2655,7 +2655,7 @@ /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hH" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -2663,17 +2663,17 @@ id = "lavalandsyndi_virology" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/virology) +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology) "hI" = ( /obj/structure/sign/warning/vacuum{ pixel_x = -32 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hK" = ( /obj/machinery/light/small{ dir = 4 @@ -2688,7 +2688,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hL" = ( /obj/machinery/light/small{ dir = 8 @@ -2705,7 +2705,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hM" = ( /obj/structure/table/wood, /obj/item/ammo_box/magazine/m10mm, @@ -2714,24 +2714,24 @@ pixel_y = 24 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hN" = ( /obj/machinery/light/small{ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hO" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hP" = ( /obj/machinery/light/small{ dir = 8 }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hQ" = ( /obj/structure/table/wood, /obj/item/ammo_box/magazine/m10mm, @@ -2739,14 +2739,14 @@ pixel_y = 24 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "hR" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/brown{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hS" = ( /obj/structure/table/reinforced, /obj/item/folder, @@ -2761,7 +2761,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hT" = ( /obj/machinery/vending/toyliberationstation{ req_access_txt = "150" @@ -2771,7 +2771,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hU" = ( /obj/machinery/light/small, /obj/structure/filingcabinet/chestdrawer, @@ -2781,7 +2781,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hV" = ( /obj/structure/filingcabinet/chestdrawer, /obj/effect/decal/cleanable/dirt, @@ -2790,13 +2790,13 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo) "hW" = ( /obj/machinery/porta_turret/syndicate{ dir = 10 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hX" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ @@ -2806,7 +2806,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hY" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ @@ -2817,7 +2817,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "hZ" = ( /obj/machinery/firealarm{ dir = 8; @@ -2838,7 +2838,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ia" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 @@ -2848,18 +2848,18 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ib" = ( /obj/effect/mob_spawn/human/lavaland_syndicate{ dir = 4 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "ic" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "id" = ( /obj/structure/toilet{ pixel_y = 18 @@ -2887,17 +2887,17 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "ie" = ( /obj/effect/mob_spawn/human/lavaland_syndicate/comms{ dir = 8 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "if" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ig" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -2933,7 +2933,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ij" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -2944,13 +2944,13 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ik" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "il" = ( /obj/machinery/door/airlock{ name = "Cabin 2" @@ -2958,7 +2958,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "im" = ( /obj/machinery/door/airlock{ name = "Unisex Restrooms" @@ -2975,7 +2975,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "in" = ( /obj/machinery/door/airlock{ name = "Cabin 4" @@ -2983,15 +2983,15 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "ip" = ( /obj/effect/turf_decal/stripes/red/corner, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iq" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ir" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/red/line{ @@ -3008,14 +3008,14 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "is" = ( /obj/machinery/light/small{ dir = 1 }, /obj/machinery/turretid{ ailock = 1; - control_area = "/area/ruin/unpowered/syndicate_lava_base/main"; + control_area = "/area/ruin/lavaland/unpowered/syndicate_lava_base/main"; dir = 1; icon_state = "control_kill"; lethal = 1; @@ -3025,7 +3025,7 @@ req_access_txt = "150" }, /turf/open/floor/circuit/red, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "it" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/red/line{ @@ -3044,7 +3044,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iu" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -3079,7 +3079,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ix" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -3088,20 +3088,20 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/space) "iy" = ( /obj/machinery/door/airlock/public/glass{ name = "Dormitories" }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iz" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -3113,7 +3113,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iB" = ( /obj/machinery/airalarm/syndicate{ pixel_y = 24 @@ -3124,11 +3124,11 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iC" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iD" = ( /obj/machinery/light/small{ dir = 1 @@ -3141,7 +3141,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -3152,7 +3152,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iF" = ( /obj/machinery/washing_machine, /obj/effect/decal/cleanable/dirt, @@ -3167,7 +3167,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iG" = ( /obj/machinery/firealarm{ dir = 8; @@ -3181,7 +3181,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iH" = ( /obj/effect/turf_decal/stripes/red/line{ dir = 4 @@ -3190,7 +3190,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iI" = ( /obj/effect/mapping_helpers/airlock/locked, /obj/machinery/door/airlock/vault{ @@ -3208,16 +3208,16 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iJ" = ( /turf/open/floor/circuit/red, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iK" = ( /obj/machinery/syndicatebomb/self_destruct{ anchored = 1 }, /turf/open/floor/circuit/red, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iM" = ( /obj/machinery/light/small{ dir = 4 @@ -3226,10 +3226,10 @@ baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "iN" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iO" = ( /obj/machinery/light/small{ dir = 8 @@ -3244,7 +3244,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iP" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -3254,7 +3254,7 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3267,7 +3267,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "iR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -3284,7 +3284,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -3301,7 +3301,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iT" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/manifold/supply/hidden, @@ -3315,7 +3315,7 @@ /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iU" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ @@ -3329,7 +3329,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -3346,7 +3346,7 @@ }, /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iW" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -3358,7 +3358,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -3373,7 +3373,7 @@ /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iY" = ( /obj/structure/table, /obj/structure/bedsheetbin, @@ -3391,7 +3391,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "iZ" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -27; @@ -3405,7 +3405,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ja" = ( /obj/effect/turf_decal/stripes/red/corner{ dir = 8 @@ -3420,7 +3420,7 @@ specialfunctions = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jb" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/red/line{ @@ -3437,11 +3437,11 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jc" = ( /obj/machinery/light/small, /turf/open/floor/circuit/red, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jd" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/red/line{ @@ -3458,7 +3458,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "je" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -3477,7 +3477,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jg" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3487,7 +3487,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jh" = ( /obj/machinery/door/airlock{ name = "Cabin 3" @@ -3495,7 +3495,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "ji" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -3512,10 +3512,10 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jj" = ( /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jk" = ( /obj/effect/mapping_helpers/no_lava, /turf/open/floor/plating{ @@ -3532,7 +3532,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jm" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red, @@ -3543,7 +3543,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jn" = ( /obj/effect/mob_spawn/human/lavaland_syndicate{ dir = 4 @@ -3552,14 +3552,14 @@ pixel_y = 24 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jo" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -3568,7 +3568,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jq" = ( /obj/effect/mob_spawn/human/lavaland_syndicate{ dir = 8 @@ -3577,7 +3577,7 @@ pixel_y = 24 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jr" = ( /obj/machinery/vending/snack/random{ extended_inventory = 1 @@ -3594,7 +3594,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "js" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -3604,7 +3604,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jt" = ( /obj/machinery/light/small{ dir = 4 @@ -3614,16 +3614,16 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ju" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jv" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, /obj/machinery/suit_storage_unit/radsuit, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jw" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, @@ -3633,7 +3633,7 @@ }, /obj/item/crowbar, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jx" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -3642,23 +3642,23 @@ id = "lavalandsyndi_bar" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jy" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jz" = ( /obj/machinery/door/airlock/public/glass{ name = "Bar" }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jA" = ( /obj/structure/table/wood, /obj/item/ammo_box/magazine/m10mm, /obj/item/ammo_box/magazine/sniper_rounds, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jB" = ( /obj/machinery/light/small{ dir = 4 @@ -3667,7 +3667,7 @@ dir = 1 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jC" = ( /obj/machinery/light/small{ dir = 8 @@ -3676,7 +3676,7 @@ dir = 1 }, /turf/open/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories) "jD" = ( /obj/machinery/vending/cola/random{ extended_inventory = 1 @@ -3689,7 +3689,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jE" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -3704,7 +3704,7 @@ dir = 6 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jF" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -3720,7 +3720,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jG" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, @@ -3738,7 +3738,7 @@ req_access_txt = "150" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jH" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -3753,7 +3753,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jI" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -3775,20 +3775,20 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3{ dir = 6 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jK" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/on/layer3{ dir = 8; volume_rate = 200 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jL" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -3811,7 +3811,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jM" = ( /obj/machinery/light/small{ dir = 1 @@ -3826,7 +3826,7 @@ req_access_txt = "150" }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -3839,16 +3839,16 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jO" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 25 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jP" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -3856,7 +3856,7 @@ icon_state = "1-2" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jR" = ( /obj/machinery/light/small{ dir = 8 @@ -3865,7 +3865,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jS" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -3873,7 +3873,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/firecloset/full{ @@ -3884,11 +3884,11 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "jU" = ( /obj/structure/sign/departments/engineering, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jV" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -3907,7 +3907,7 @@ pixel_y = -32 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jW" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -3919,22 +3919,22 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "jY" = ( /obj/structure/chair{ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "jZ" = ( /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ka" = ( /obj/structure/closet/crate/bin, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kb" = ( /obj/structure/rack{ dir = 8 @@ -3949,7 +3949,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -3962,7 +3962,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kd" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, @@ -3974,7 +3974,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ke" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -3990,7 +3990,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kf" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4002,7 +4002,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kg" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4015,7 +4015,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kh" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4028,7 +4028,7 @@ icon_state = "4-8" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ki" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -4038,7 +4038,7 @@ }, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 8 @@ -4047,7 +4047,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kk" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/firedoor, @@ -4061,11 +4061,11 @@ req_access_txt = "150" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "km" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -4075,7 +4075,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral{ @@ -4089,7 +4089,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ko" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -4106,13 +4106,13 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kq" = ( /obj/machinery/airalarm/syndicate{ dir = 8; @@ -4133,7 +4133,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kr" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "150" @@ -4145,13 +4145,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ks" = ( /obj/structure/reagent_dispensers/fueltank, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4161,14 +4161,14 @@ dir = 8 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "ku" = ( /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kv" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kw" = ( /obj/structure/table, /obj/effect/decal/cleanable/dirt, @@ -4184,7 +4184,7 @@ pixel_y = 4 }, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kx" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -4197,7 +4197,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ky" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -4213,7 +4213,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kz" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -4227,7 +4227,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kA" = ( /obj/machinery/light/small{ dir = 1 @@ -4247,7 +4247,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kB" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -4255,7 +4255,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kC" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; @@ -4271,26 +4271,26 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kD" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kE" = ( /obj/machinery/air_sensor{ frequency = 1442; id_tag = "syndie_lavaland_n2_sensor" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kF" = ( /obj/machinery/atmospherics/miner/nitrogen, /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kG" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/beer, @@ -4306,19 +4306,19 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kH" = ( /obj/structure/chair{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kI" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kJ" = ( /obj/structure/chair/stool/bar, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4336,14 +4336,14 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kK" = ( /obj/structure/chair/stool/bar, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -4361,7 +4361,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kM" = ( /obj/machinery/firealarm{ dir = 4; @@ -4373,7 +4373,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kN" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, @@ -4381,7 +4381,7 @@ pixel_y = 28 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -4390,7 +4390,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "kP" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, @@ -4398,17 +4398,17 @@ /obj/item/mop, /obj/item/reagent_containers/glass/bucket, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "kQ" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "kR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ name = "Medbay" }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "kS" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, @@ -4416,17 +4416,17 @@ name = "Medbay" }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "kT" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "kU" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 1 }, /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kV" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -4439,7 +4439,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kW" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -4448,7 +4448,7 @@ /obj/structure/cable/yellow, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kX" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible{ dir = 5 @@ -4459,7 +4459,7 @@ piping_layer = 3 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kY" = ( /obj/machinery/atmospherics/pipe/manifold4w/supply/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3, @@ -4467,7 +4467,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "kZ" = ( /obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{ dir = 4 @@ -4477,7 +4477,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "la" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 @@ -4493,7 +4493,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lb" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -4504,7 +4504,7 @@ dir = 10 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lc" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; @@ -4513,7 +4513,7 @@ name = "nitrogen out" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ld" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/layer3{ dir = 4; @@ -4521,7 +4521,7 @@ piping_layer = 3 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "le" = ( /obj/machinery/light/small{ dir = 4 @@ -4531,7 +4531,7 @@ baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "lf" = ( /obj/machinery/light/small{ dir = 8 @@ -4545,7 +4545,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lg" = ( /obj/structure/chair/stool/bar, /obj/effect/decal/cleanable/dirt, @@ -4560,11 +4560,11 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lh" = ( /obj/structure/table/wood, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "li" = ( /obj/structure/table/wood, /obj/item/toy/cards/deck/syndicate{ @@ -4574,7 +4574,7 @@ /turf/open/floor/wood{ icon_state = "wood-broken4" }, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lj" = ( /obj/machinery/door/window/southleft{ base_state = "right"; @@ -4585,7 +4585,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lk" = ( /obj/structure/table/wood, /obj/machinery/light/small{ @@ -4605,7 +4605,7 @@ /obj/item/book/manual/wiki/barman_recipes, /obj/item/reagent_containers/food/drinks/shaker, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ll" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -4614,7 +4614,7 @@ }, /obj/structure/reagent_dispensers/beerkeg, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lm" = ( /obj/structure/closet/secure_closet/medical1{ req_access = null; @@ -4625,12 +4625,12 @@ /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "ln" = ( /turf/open/floor/plasteel/white/side{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lo" = ( /obj/machinery/light/small{ dir = 1 @@ -4642,7 +4642,7 @@ /turf/open/floor/plasteel/white/side{ dir = 5 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lp" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -4655,7 +4655,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lq" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -4671,13 +4671,13 @@ icon_state = "2-8" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 10 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ls" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3, @@ -4685,14 +4685,14 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lt" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lu" = ( /obj/machinery/light/small{ dir = 4 @@ -4704,7 +4704,7 @@ dir = 10 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lv" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -4739,11 +4739,11 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ly" = ( /obj/structure/chair/stool/bar, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lz" = ( /obj/structure/table/wood, /obj/item/reagent_containers/rag{ @@ -4756,15 +4756,15 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lA" = ( /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lC" = ( /obj/structure/table/wood, /obj/machinery/reagentgrinder, @@ -4773,11 +4773,11 @@ pixel_x = 6 }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lE" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lF" = ( /obj/machinery/light/small{ dir = 4 @@ -4800,7 +4800,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lG" = ( /obj/structure/table, /obj/item/storage/box/syringes, @@ -4810,20 +4810,20 @@ /turf/open/floor/plasteel/white/side{ dir = 9 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lH" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/corner{ dir = 1 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lI" = ( /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lJ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lK" = ( /obj/structure/table, /obj/item/storage/firstaid/regular, @@ -4831,7 +4831,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "lL" = ( /obj/machinery/airalarm/syndicate{ dir = 4; @@ -4855,21 +4855,21 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lM" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/layer3{ id = "syndie_lavaland_tox_in"; piping_layer = 3 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lN" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/o2{ dir = 1; piping_layer = 3 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lO" = ( /obj/machinery/atmospherics/pipe/simple/supply/visible, /obj/effect/decal/cleanable/dirt, @@ -4878,7 +4878,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lP" = ( /obj/machinery/computer/atmos_control/tank{ dir = 8; @@ -4896,27 +4896,27 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lQ" = ( /obj/machinery/air_sensor{ frequency = 1442; id_tag = "syndie_lavaland_o2_sensor" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lR" = ( /obj/machinery/atmospherics/miner/oxygen, /obj/machinery/light/small{ dir = 4 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "lS" = ( /obj/machinery/porta_turret/syndicate{ dir = 9 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "lT" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ @@ -4924,7 +4924,7 @@ }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "lU" = ( /obj/machinery/airalarm/syndicate{ dir = 4; @@ -4942,7 +4942,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lV" = ( /obj/structure/chair/stool/bar, /obj/effect/turf_decal/tile/neutral{ @@ -4956,7 +4956,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lW" = ( /obj/structure/table/wood, /obj/structure/cable/yellow{ @@ -4964,13 +4964,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lX" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -4982,7 +4982,7 @@ icon_state = "4-8" }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "lZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -4994,7 +4994,7 @@ icon_state = "4-8" }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "ma" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5010,7 +5010,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mb" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5022,7 +5022,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mc" = ( /obj/item/storage/box/donkpockets{ pixel_x = -2; @@ -5048,7 +5048,7 @@ req_access = null }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "md" = ( /obj/machinery/sleeper/syndie{ dir = 4 @@ -5056,11 +5056,11 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "me" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mf" = ( /obj/structure/sink{ dir = 4; @@ -5072,7 +5072,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mg" = ( /obj/machinery/firealarm{ dir = 8; @@ -5087,13 +5087,13 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mh" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mi" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible{ dir = 6 @@ -5103,7 +5103,7 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mj" = ( /obj/machinery/atmospherics/components/binary/pump/on{ dir = 8; @@ -5116,13 +5116,13 @@ dir = 9 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mk" = ( /obj/machinery/atmospherics/pipe/manifold/supplymain/visible, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ml" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/visible{ dir = 4 @@ -5133,7 +5133,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mm" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 8; @@ -5142,13 +5142,13 @@ name = "oxygen out" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mn" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mo" = ( /turf/closed/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mp" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -5157,16 +5157,16 @@ id = "lavalandsyndi_telecomms" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mq" = ( /obj/structure/sign/warning/vacuum{ pixel_x = -32 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "mr" = ( /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "ms" = ( /obj/machinery/light/small{ dir = 4 @@ -5179,7 +5179,7 @@ /obj/item/flashlight/seclite, /obj/item/clothing/mask/gas, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "mu" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -5187,7 +5187,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mv" = ( /obj/structure/table/wood, /obj/machinery/light/small, @@ -5197,23 +5197,23 @@ pixel_y = -24 }, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mw" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mx" = ( /obj/structure/table/wood, /obj/machinery/microwave, /turf/open/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "my" = ( /obj/structure/closet/secure_closet/freezer/fridge, /obj/item/reagent_containers/food/condiment/enzyme, /obj/item/reagent_containers/food/snacks/chocolatebar, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mz" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -5223,7 +5223,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) +/area/ruin/lavaland/unpowered/syndicate_lava_base/main) "mA" = ( /obj/machinery/light/small{ dir = 8 @@ -5239,26 +5239,26 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mC" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mD" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mE" = ( /obj/structure/table/reinforced, /obj/item/scalpel, @@ -5273,7 +5273,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "mF" = ( /obj/structure/extinguisher_cabinet{ pixel_x = -27; @@ -5282,21 +5282,21 @@ /obj/structure/chair/stool, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mG" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mH" = ( /obj/machinery/atmospherics/pipe/manifold/orange/visible{ dir = 8 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mI" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/light/small, @@ -5310,7 +5310,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/visible, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mJ" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -5323,7 +5323,7 @@ dir = 5 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mK" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/computer/atmos_control/tank{ @@ -5340,21 +5340,21 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "mM" = ( /turf/open/floor/circuit/green, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mN" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mP" = ( /obj/structure/filingcabinet/security, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mQ" = ( /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mR" = ( /obj/structure/table, /obj/item/storage/toolbox/syndicate, @@ -5366,7 +5366,7 @@ req_access_txt = "150" }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "mS" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" @@ -5376,16 +5376,16 @@ dir = 1 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "mT" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "mU" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar) "mX" = ( /obj/structure/rack{ dir = 8 @@ -5404,7 +5404,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "mY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -5416,20 +5416,20 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "mZ" = ( /obj/machinery/sleeper/syndie{ dir = 4 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "na" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nb" = ( /obj/structure/table/optable, /obj/item/surgical_drapes, @@ -5437,7 +5437,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nc" = ( /obj/machinery/computer/turbine_computer{ dir = 1; @@ -5455,7 +5455,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nd" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5463,7 +5463,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ne" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /obj/machinery/embedded_controller/radio/airlock_controller/incinerator_syndicatelava{ @@ -5479,17 +5479,17 @@ /obj/machinery/portable_atmospherics/canister, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nf" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ng" = ( /obj/structure/grille, /obj/structure/window/plastitanium, /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nh" = ( /obj/machinery/telecomms/relay/preset/ruskie{ use_power = 0 @@ -5508,7 +5508,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "ni" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -5521,7 +5521,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nj" = ( /obj/machinery/door/airlock/hatch{ name = "Telecommunications Control"; @@ -5538,7 +5538,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nk" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 @@ -5554,7 +5554,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nl" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -5570,7 +5570,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nm" = ( /obj/machinery/light/small{ dir = 4 @@ -5594,14 +5594,14 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nn" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "no" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -5610,7 +5610,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "np" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ @@ -5620,7 +5620,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nq" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -5629,7 +5629,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red{ @@ -5640,7 +5640,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "ns" = ( /obj/structure/closet/emcloset/anchored, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5663,7 +5663,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nt" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5690,7 +5690,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5708,7 +5708,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nv" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -5726,7 +5726,7 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3, @@ -5739,7 +5739,7 @@ /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nx" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5755,7 +5755,7 @@ name = "Medbay" }, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "ny" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5769,7 +5769,7 @@ /turf/open/floor/plasteel/white/side{ dir = 8 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nz" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -5781,20 +5781,20 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nA" = ( /obj/structure/cable/yellow{ icon_state = "2-8" }, /turf/open/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nB" = ( /obj/structure/table/reinforced, /obj/item/surgicaldrill, /obj/item/cautery, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nC" = ( /obj/structure/table/reinforced, /obj/item/retractor, @@ -5803,7 +5803,7 @@ /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "nD" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5812,11 +5812,11 @@ /obj/machinery/door/airlock/glass/incinerator/syndicatelava_interior, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nE" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nF" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 1; @@ -5825,14 +5825,14 @@ name = "toxin out" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nG" = ( /obj/machinery/air_sensor{ frequency = 1442; id_tag = "syndie_lavaland_tox_sensor" }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "nH" = ( /obj/machinery/airalarm/syndicate{ dir = 4; @@ -5852,7 +5852,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nI" = ( /obj/machinery/computer/camera_advanced, /obj/effect/turf_decal/tile/neutral{ @@ -5866,7 +5866,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nJ" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/neutral{ @@ -5880,7 +5880,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -5902,7 +5902,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nL" = ( /obj/machinery/door/airlock/hatch{ name = "Telecommunications"; @@ -5928,7 +5928,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "nM" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5943,7 +5943,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -5955,7 +5955,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nO" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -5969,7 +5969,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nP" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/caution/stand_clear{ @@ -5985,7 +5985,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nQ" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -6001,7 +6001,7 @@ icon_state = "4-8" }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nR" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -6016,7 +6016,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nS" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -6037,7 +6037,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -6055,7 +6055,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nU" = ( /obj/machinery/light/small{ dir = 1 @@ -6080,7 +6080,7 @@ dir = 4 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -6095,14 +6095,14 @@ dir = 1 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nW" = ( /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nX" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, @@ -6111,22 +6111,22 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "nZ" = ( /obj/machinery/light/small, /turf/open/floor/plasteel/white/side{ dir = 4 }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oa" = ( /turf/open/floor/plasteel/white/side{ dir = 10 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "ob" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "oc" = ( /obj/machinery/light/small, /obj/structure/extinguisher_cabinet{ @@ -6142,7 +6142,7 @@ /turf/open/floor/plasteel/white/side{ dir = 6 }, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "od" = ( /obj/machinery/light/small{ dir = 8 @@ -6151,7 +6151,7 @@ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oe" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6160,7 +6160,7 @@ dir = 8 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "of" = ( /obj/machinery/light/small{ dir = 4 @@ -6175,12 +6175,12 @@ pixel_x = 22 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "og" = ( /obj/machinery/atmospherics/miner/toxins, /obj/machinery/light/small, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oh" = ( /obj/machinery/firealarm{ dir = 8; @@ -6197,7 +6197,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "oi" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -6213,7 +6213,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "oj" = ( /obj/structure/table/reinforced, /obj/item/radio/intercom{ @@ -6231,7 +6231,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "ok" = ( /obj/structure/chair{ dir = 8 @@ -6252,7 +6252,7 @@ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "ol" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -6266,7 +6266,7 @@ /obj/item/mining_scanner, /obj/item/pickaxe, /turf/open/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "om" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red, @@ -6274,7 +6274,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "on" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -6288,14 +6288,14 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oo" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "op" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 1 @@ -6305,7 +6305,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oq" = ( /obj/machinery/button/door{ id = "lavalandsyndi_arrivals"; @@ -6318,7 +6318,7 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "or" = ( /obj/structure/rack{ dir = 8 @@ -6329,7 +6329,7 @@ /obj/item/clothing/glasses/hud/health, /obj/item/clothing/neck/stethoscope, /turf/open/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay) "ot" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6340,20 +6340,20 @@ dir = 1 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "ou" = ( /obj/machinery/computer/message_monitor{ dir = 1 }, /obj/item/paper/monitorkey, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "ov" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen, /turf/open/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms) "ox" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -6362,17 +6362,17 @@ id = "lavalandsyndi_arrivals" }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oz" = ( /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oA" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/igniter/incinerator_syndicatelava, /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oB" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos{ dir = 1; @@ -6382,11 +6382,11 @@ pixel_y = -32 }, /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oC" = ( /obj/machinery/door/poddoor/incinerator_syndicatelava_aux, /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oD" = ( /obj/structure/sign/warning/xeno_mining{ pixel_x = -32 @@ -6395,7 +6395,7 @@ pixel_x = 32 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oE" = ( /obj/structure/cable, /obj/structure/cable{ @@ -6408,22 +6408,22 @@ luminosity = 2 }, /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oF" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oG" = ( /obj/structure/cable, /obj/machinery/power/turbine{ luminosity = 2 }, /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oH" = ( /obj/machinery/door/poddoor/incinerator_syndicatelava_main, /turf/open/floor/engine/vacuum, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "oI" = ( /obj/structure/sign/warning/vacuum{ pixel_x = -32 @@ -6432,11 +6432,11 @@ dir = 8 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "oP" = ( /obj/structure/sign/departments/chemistry, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "pC" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -6444,29 +6444,29 @@ dir = 10 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "qc" = ( /obj/machinery/atmospherics/pipe/simple/supplymain/visible, /obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer3{ dir = 10 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "tW" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "uB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "vu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "BF" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -6478,7 +6478,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "Cg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 @@ -6487,7 +6487,7 @@ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "CG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -6496,7 +6496,7 @@ dir = 10 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "EZ" = ( /obj/machinery/door/airlock/external{ req_access_txt = "150" @@ -6504,65 +6504,65 @@ /obj/structure/fans/tiny, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "Gm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "Go" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/plasma{ dir = 1; piping_layer = 3 }, /turf/open/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "IJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 1 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "KA" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "Lg" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "LQ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "MP" = ( /obj/effect/decal/cleanable/dirt, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "Ng" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 9 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "Pa" = ( /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/circuits) +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits) "RE" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "RV" = ( /obj/structure/sign/warning/fire, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "St" = ( /obj/structure/fans/tiny, /obj/machinery/door/airlock/external{ @@ -6572,7 +6572,7 @@ dir = 1 }, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals) "Tp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 4 @@ -6581,7 +6581,7 @@ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "Tt" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/layer3{ dir = 4; @@ -6589,7 +6589,7 @@ piping_layer = 3 }, /turf/open/floor/plating/airless, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "TC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{ dir = 4 @@ -6598,7 +6598,7 @@ dir = 4 }, /turf/open/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab) "Vw" = ( /obj/structure/grille, /obj/structure/window/plastitanium, @@ -6607,7 +6607,7 @@ }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3, /turf/open/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) "Wq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{ dir = 5 @@ -6616,7 +6616,7 @@ dir = 10 }, /turf/closed/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering) (1,1,1) = {" aa diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm index 7ac6d32b80..691ad183b2 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ufo_crash.dmm @@ -10,14 +10,14 @@ /area/lavaland/surface/outdoors) "d" = ( /turf/closed/wall/mineral/abductor, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "h" = ( /obj/structure/closet/abductor, /obj/item/tcg_card/special/abductor, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "j" = ( /obj/machinery/abductor/experiment{ team_number = 100 @@ -25,12 +25,12 @@ /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "k" = ( /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "l" = ( /obj/machinery/abductor/pad{ team_number = 100 @@ -38,59 +38,59 @@ /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "o" = ( /obj/item/hemostat/alien, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "p" = ( /obj/effect/mob_spawn/human/abductor, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "q" = ( /obj/structure/closet/abductor, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "s" = ( /obj/structure/table/optable/abductor, /obj/item/cautery/alien, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "t" = ( /obj/structure/table/abductor, /obj/item/storage/box/alienhandcuffs, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "v" = ( /obj/item/scalpel/alien, /obj/item/surgical_drapes, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "w" = ( /obj/item/retractor/alien, /obj/item/paper/guides/antag/abductor, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "y" = ( /obj/machinery/abductor/gland_dispenser, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "z" = ( /obj/structure/table/abductor, /obj/item/surgicaldrill/alien, @@ -98,13 +98,13 @@ /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) "A" = ( /obj/structure/bed/abductor, /turf/open/floor/plating/abductor{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered) +/area/ruin/lavaland/unpowered) (1,1,1) = {" a diff --git a/_maps/RandomRuins/SpaceRuins/skelter.dmm b/_maps/RandomRuins/SpaceRuins/skelter.dmm index 8dd0b3b5e1..694d093eeb 100644 --- a/_maps/RandomRuins/SpaceRuins/skelter.dmm +++ b/_maps/RandomRuins/SpaceRuins/skelter.dmm @@ -875,7 +875,8 @@ /area/service/cafeteria) "cj" = ( /obj/effect/decal/cleanable/blood/old, -/obj/item/clothing/suit/space/syndicate/orange, +/obj/item/clothing/suit/space/syndicate/green/dark, +/obj/item/clothing/head/helmet/space/syndicate/green/dark, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "ck" = ( @@ -1366,6 +1367,9 @@ dir = 1; icon_state = "trimline_fill" }, +/mob/living/simple_animal/hostile/syndicate/melee/sword/space{ + name = "Impostrous Commando" + }, /turf/open/floor/plasteel, /area/ruin/space/has_grav/skelter/nav) "ds" = ( @@ -1895,6 +1899,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/item/clothing/head/helmet/space/syndicate/blue, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/engine/powerstorage) "eC" = ( @@ -2483,6 +2488,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/item/clothing/head/helmet/space/syndicate, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/engine/powerstorage) "fR" = ( @@ -2581,6 +2587,7 @@ /obj/item/clothing/suit/space/syndicate/orange{ desc = "Wait, don't these normally come with a helmet?" }, +/obj/item/clothing/head/helmet/space/syndicate/orange, /turf/open/floor/plating, /area/ruin/space/has_grav/skelter/forehall) "gg" = ( @@ -2726,6 +2733,7 @@ dir = 1; pixel_y = -24 }, +/obj/item/clothing/head/helmet/space/syndicate/green, /turf/open/floor/carpet, /area/ruin/space/has_grav/skelter/admin) "gx" = ( @@ -2823,6 +2831,10 @@ /area/ruin/space/has_grav/skelter/engine/lower) "gH" = ( /obj/structure/rack, +/obj/item/dnainjector/tonguespike{ + desc = "It's a little suspicious."; + name = "suspicious serum" + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "gI" = ( @@ -2907,18 +2919,18 @@ /turf/open/floor/mineral/titanium/white, /area/ruin/space/has_grav/skelter/shields) "gT" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8; - icon_state = "scrub_map_on-2" - }, /obj/structure/cable/yellow{ icon_state = "0-8" }, /obj/machinery/power/apc{ + cell_type = null; dir = 1; name = "Shield Room APC"; pixel_y = 23 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber{ + dir = 8 + }, /turf/open/floor/mineral/titanium/white, /area/ruin/space/has_grav/skelter/shields) "gU" = ( @@ -3136,7 +3148,9 @@ /obj/structure/cable/yellow{ icon_state = "1-8" }, -/turf/open/floor/mineral/titanium/white, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg1" + }, /area/ruin/space/has_grav/skelter/shields) "hp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -3325,7 +3339,9 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/turf/open/floor/mineral/titanium/white, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, /area/ruin/space/has_grav/skelter/shields) "hO" = ( /obj/machinery/shieldgen, @@ -3523,18 +3539,20 @@ /turf/open/floor/circuit, /area/ruin/space/has_grav/skelter/shields) "il" = ( -/turf/open/floor/mineral/titanium/white, +/obj/structure/lattice, +/turf/open/space/basic, /area/ruin/space/has_grav/skelter/shields) "im" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/light, /obj/machinery/firealarm{ dir = 4; pixel_x = 24 }, -/turf/open/floor/mineral/titanium/white, +/obj/machinery/atmospherics/components/unary/vent_pump{ + dir = 1 + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, /area/ruin/space/has_grav/skelter/shields) "in" = ( /turf/open/floor/plasteel{ @@ -3722,10 +3740,6 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/item/uplink/old{ - pixel_x = -4; - pixel_y = 8 - }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4; icon_state = "scrub_map_on-2" @@ -3839,7 +3853,10 @@ /area/ruin/space/has_grav/skelter/comms) "iP" = ( /obj/structure/rack, -/obj/item/gun/ballistic/automatic/pistol, +/obj/item/book/granter/martial/cqc{ + name = "dusty manual"; + used = 1 + }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/sec) "iQ" = ( @@ -3874,20 +3891,6 @@ }, /turf/open/floor/plasteel/dark, /area/ruin/space/has_grav/skelter/storage) -"iU" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/telecomms/relay/preset/auto, -/turf/open/floor/plasteel/showroomfloor, -/area/ruin/space/has_grav/skelter/comms) "iV" = ( /obj/structure/chair/comfy/teal, /obj/effect/turf_decal/tile/blue, @@ -3917,6 +3920,7 @@ /obj/item/clothing/suit/space/syndicate/black{ desc = "Wait, don't these normally come with a helmet?" }, +/obj/item/clothing/head/helmet/space/syndicate/black, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "iX" = ( @@ -4078,7 +4082,9 @@ /obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/machinery/telecomms/allinone, +/mob/living/simple_animal/hostile/syndicate/melee/space{ + name = "Impostrous Commando" + }, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) "jo" = ( @@ -4146,12 +4152,6 @@ /obj/item/gun/ballistic/automatic/pistol/no_mag, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) -"jw" = ( -/turf/open/space/basic, -/area/space/nearstation) -"jx" = ( -/turf/open/space/basic, -/area/template_noop) "jy" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -4166,6 +4166,66 @@ /obj/item/ammo_casing/c10mm, /turf/open/floor/plasteel/showroomfloor, /area/ruin/space/has_grav/skelter/comms) +"sg" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless, +/area/ruin/space/has_grav/skelter/shields) +"vv" = ( +/mob/living/simple_animal/hostile/syndicate/melee/space{ + name = "Impostrous Commando" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/ruin/space/has_grav/skelter/engine/powerstorage) +"vz" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg3" + }, +/area/ruin/space/has_grav/skelter/shields) +"AJ" = ( +/turf/open/floor/plating/asteroid/airless, +/area/ruin/space/has_grav/skelter/shields) +"AR" = ( +/mob/living/simple_animal/hostile/syndicate/ranged/shotgun/space{ + name = "Impostrous Commando" + }, +/turf/open/floor/plasteel/dark, +/area/ruin/space/has_grav/skelter/sec) +"JR" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/ruin/space/has_grav/skelter/shields) +"Li" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/ruin/space/has_grav/skelter/shields) +"OA" = ( +/obj/structure/fluff/broken_flooring{ + icon_state = "singular" + }, +/turf/template_noop, +/area/template_noop) +"WM" = ( +/obj/effect/turf_decal/weather, +/turf/open/floor/plating/airless, +/area/ruin/unpowered/no_grav) +"Zs" = ( +/obj/item/shard{ + icon_state = "medium" + }, +/obj/structure/fluff/broken_flooring{ + dir = 8; + icon_state = "pile" + }, +/turf/template_noop, +/area/template_noop) (1,1,1) = {" ah @@ -4483,7 +4543,7 @@ cF cF ex eW -cF +AR fN gj hJ @@ -4525,7 +4585,7 @@ iI iQ iY ji -jx +ah "} (13,1,1) = {" ah @@ -4549,7 +4609,7 @@ gj iP gl hx -hx +vv is hx eA @@ -4705,7 +4765,7 @@ fV hX jb jj -jw +ah "} (19,1,1) = {" ah @@ -4885,7 +4945,7 @@ gO iT jf jk -jw +ah "} (25,1,1) = {" ay @@ -4942,7 +5002,7 @@ hH ih iG iN -iU +iO ii jl ah @@ -5091,10 +5151,10 @@ hn hM ik iH -gA -bx -ae -ah +gz +bL +bL +ak ah "} (32,1,1) = {" @@ -5118,13 +5178,13 @@ ga gx gR ho -hM +Li +vz il -il -gA -ae -ah -ah +sg +bL +ak +ak ah "} (33,1,1) = {" @@ -5150,12 +5210,12 @@ gS hp hN im -gA -gU -ah -ah -ah -ah +sg +JR +ac +ak +ak +bq "} (34,1,1) = {" ah @@ -5179,13 +5239,13 @@ gz gT hq hO -gA -gU -ah -ah -ah -ah -ah +gz +sg +WM +ac +ak +ak +cl "} (35,1,1) = {" aS @@ -5207,15 +5267,15 @@ dV gd gA gU -gU -gU -gU -ah -ah -ah -ah -ah -ah +gz +AJ +gz +ac +ac +ac +ac +ak +aZ "} (36,1,1) = {" ah @@ -5237,15 +5297,15 @@ fI ge gB gV -jw -ah -ah -ah -ah -ah -ah -ah -ah +aZ +ac +ak +ak +ac +ac +ac +ac +aZ "} (37,1,1) = {" ah @@ -5267,15 +5327,15 @@ cR gf ct cR -ah -ah -ah -ah -ah -ah -ah -ah -ah +aZ +ak +ak +ak +ak +ac +ac +ac +Zs "} (38,1,1) = {" ah @@ -5296,16 +5356,16 @@ bx dV ct ct -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +aZ +aZ +ac +ak +ak +ak +ak +ak +ac +aZ "} (39,1,1) = {" ah @@ -5326,16 +5386,16 @@ cu cb ae ah -ah -ah -ah -ah -ah -ah -ah -ah -ah -ah +OA +cl +do +ac +ak +ak +ak +ac +aZ +aS "} (40,1,1) = {" ah @@ -5356,15 +5416,15 @@ fr cc ah ah +do +aS +bq ah +aZ +aZ ah -ah -ah -ah -ah -ah -ah -ah +aZ +aS ah "} (41,1,1) = {" @@ -5387,13 +5447,13 @@ cc ah ah ah +aZ +do ah ah -ah -ah -ah -ah -ah +do +aZ +ba ah ah "} @@ -5419,12 +5479,12 @@ ah ah ah ah +bF ah ah ah ah -ah -ah +aZ ah "} (43,1,1) = {" @@ -5445,15 +5505,15 @@ ce ce ce ah +aZ +cl ah ah ah +aZ +aS ah -ah -ah -ah -ah -ah +cl ah ah "} @@ -5476,7 +5536,7 @@ ah ah ah ah -ah +bq ah ah ah diff --git a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm index 177a7af984..f342f8e36b 100644 --- a/_maps/RandomZLevels/away_mission/moonoutpost19.dmm +++ b/_maps/RandomZLevels/away_mission/moonoutpost19.dmm @@ -3664,7 +3664,8 @@ /area/awaymission/moonoutpost19/research) "hk" = ( /obj/structure/alien/weeds, -/obj/structure/alien/egg, +/obj/structure/bed/nest, +/obj/item/clothing/mask/facehugger/impregnated, /turf/open/floor/plating/asteroid{ heat_capacity = 1e+006; initial_gas_mix = "co2=48.7;n2=13.2;o2=32.4;TEMP=251" @@ -26666,7 +26667,7 @@ ac ad ad ad -hk +ag ag ad ad @@ -26925,7 +26926,7 @@ ai ag ag ai -hk +ag ai ad ad @@ -27178,10 +27179,10 @@ ac ac ad ad -hk +ag ai ai -hk +ag aM ai ag @@ -27437,7 +27438,7 @@ ad ai ai aD -aj +hk ai ai aD @@ -27693,7 +27694,7 @@ ac ad ai ai -aj +hk ai aT av diff --git a/_maps/RandomZLevels/away_mission/research.dmm b/_maps/RandomZLevels/away_mission/research.dmm index e73fa81501..6acf819cc4 100644 --- a/_maps/RandomZLevels/away_mission/research.dmm +++ b/_maps/RandomZLevels/away_mission/research.dmm @@ -6417,7 +6417,6 @@ /area/awaymission/research/interior/maint) "Hs" = ( /obj/structure/table/wood, -/obj/item/book/granter/crafting_recipe/bone_bow, /turf/open/floor/mineral/plasma, /area/space/nearstation) "Km" = ( diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index ea760cd55a..b0d1a1e15f 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -65,9 +65,6 @@ }, /turf/open/floor/plasteel, /area/security/office) -"aai" = ( -/turf/closed/wall/r_wall, -/area/security/prison) "aam" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -258,16 +255,6 @@ name = "Prison Cafeteria" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -393,16 +380,6 @@ /turf/open/space, /area/space/nearstation) "aaU" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -495,7 +472,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "abf" = ( /obj/effect/turf_decal/tile/neutral, @@ -1359,6 +1336,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, /turf/open/floor/plasteel/dark, /area/security/prison) "adb" = ( @@ -1571,7 +1551,7 @@ /area/security/office) "adD" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/security/prison/cells) "adF" = ( /obj/machinery/door/airlock/security/glass{ @@ -1580,16 +1560,6 @@ req_access_txt = "2" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -1606,16 +1576,6 @@ req_access_txt = "2" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -1628,7 +1588,7 @@ /area/security/prison/upper) "adJ" = ( /obj/machinery/door/airlock/security/glass{ - name = "Permabrig Visitation"; + name = "Prison Visitation"; req_access_txt = "2" }, /obj/effect/turf_decal/tile/neutral, @@ -1812,33 +1772,12 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/solars/starboard/fore) -"aeb" = ( -/obj/structure/table, -/obj/item/storage/box/handcuffs{ - pixel_y = 10 - }, -/obj/item/storage/box/prisoner{ - pixel_y = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "aed" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/delivery, -/obj/machinery/disposal/deliveryChute, +/obj/machinery/disposal/deliveryChute{ + name = "Prisoner Chute" + }, /obj/structure/plasticflaps/opaque{ name = "Prisoner Transfer" }, @@ -1881,6 +1820,9 @@ /obj/machinery/light{ dir = 1 }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, /turf/open/floor/plasteel, /area/security/prison) "aei" = ( @@ -1964,9 +1906,6 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 - }, /turf/open/floor/plasteel, /area/security/prison) "aep" = ( @@ -2785,14 +2724,6 @@ /obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/showroomfloor, /area/security/brig) -"afJ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 1; - pixel_y = -27 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) "afK" = ( /obj/structure/table/glass, /obj/machinery/computer/med_data/laptop, @@ -4653,6 +4584,9 @@ }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/bot, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, /turf/open/floor/plasteel/dark, /area/security/brig) "aiJ" = ( @@ -5702,6 +5636,7 @@ "akL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/meter, +/obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/fore) "akM" = ( @@ -7720,14 +7655,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/power/apc{ - areastring = "/area/commons/fitness"; - name = "Fitness Room APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, /turf/open/floor/plating, /area/maintenance/fore/secondary) "apv" = ( @@ -11800,6 +11727,14 @@ /area/commons/dorms) "aAo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/power/apc{ + areastring = "/area/commons/fitness"; + name = "Fitness Room APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, /turf/open/floor/plasteel/dark, /area/commons/dorms) "aAp" = ( @@ -11809,6 +11744,9 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/commons/dorms) "aAr" = ( @@ -13110,6 +13048,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/mineral/titanium/blue, /area/commons/toilet) +"aDW" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plasteel, +/area/cargo/warehouse) "aDZ" = ( /obj/structure/cable{ icon_state = "4-8" @@ -16686,10 +16628,10 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aOg" = ( -/obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line{ dir = 5 }, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "aOh" = ( @@ -21489,10 +21431,10 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "baF" = ( -/obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "baG" = ( @@ -23493,8 +23435,8 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bgg" = ( -/obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel, /area/hallway/secondary/exit) "bgh" = ( @@ -25139,11 +25081,11 @@ /turf/open/floor/plasteel/white, /area/science/research) "bkj" = ( -/obj/structure/closet/emcloset, /obj/machinery/airalarm{ pixel_y = 24 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel, /area/cargo/storage) "bkk" = ( @@ -25869,6 +25811,7 @@ /obj/machinery/light/small{ dir = 1 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/starboard/aft) "blR" = ( @@ -33322,11 +33265,7 @@ /turf/open/floor/engine, /area/science/storage) "bDg" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" - }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/starboard) "bDh" = ( @@ -35141,6 +35080,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/aft) "bHp" = ( @@ -46912,8 +46852,7 @@ /turf/open/floor/plating, /area/maintenance/aft) "cmo" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/starboard/aft) "cmq" = ( @@ -50983,6 +50922,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/aft) "cBE" = ( @@ -51975,6 +51915,13 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"cPO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/fore) "cQw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -52010,9 +51957,22 @@ /obj/item/folder/blue, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"cRq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "cSp" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall/r_wall, +/turf/closed/wall, /area/security/prison/upper) "cSA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -52472,7 +52432,6 @@ /turf/open/floor/plasteel, /area/engineering/atmos) "dbb" = ( -/obj/structure/lattice, /obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ dir = 1 }, @@ -52562,22 +52521,6 @@ }, /turf/open/floor/plasteel, /area/science/circuit) -"dfj" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) "dfL" = ( /obj/structure/reagent_dispensers/keg/gargle, /turf/open/floor/wood, @@ -52748,16 +52691,6 @@ name = "Prison Cafeteria" }, /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -52945,6 +52878,7 @@ /obj/machinery/light/small{ dir = 4 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/fore) "dPs" = ( @@ -53114,6 +53048,17 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"efs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/security/prison/upper) "efO" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -53366,7 +53311,7 @@ }, /obj/machinery/camera{ c_tag = "Prison Forestry"; - dir = 4; + dir = 8; network = list("ss13","prison") }, /turf/open/floor/plasteel, @@ -53990,24 +53935,33 @@ }, /turf/open/floor/wood, /area/service/bar) -"fgd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) "fgl" = ( /obj/structure/closet/crate/bin, /obj/item/coin/silver, /turf/open/floor/carpet/arcade, /area/commons/arcade) +"fgy" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "permacells3"; + name = "Privacy Shutters"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "fhu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -54996,16 +54950,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/cable{ icon_state = "1-2" }, @@ -55317,9 +55261,6 @@ }, /turf/open/floor/plating, /area/construction) -"gWo" = ( -/turf/closed/wall, -/area/security/range) "gXs" = ( /obj/structure/lattice, /turf/open/space/basic, @@ -55529,6 +55470,10 @@ }, /turf/closed/wall, /area/commons/dorms) +"hmT" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port) "hnc" = ( /obj/structure/chair/pew/left{ dir = 4 @@ -55631,6 +55576,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel/cafeteria, /area/security/prison/upper) +"hvJ" = ( +/obj/item/toy/plush/beeplushie, +/turf/open/floor/padded, +/area/security/execution/transfer) "hxg" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 1 @@ -55647,6 +55596,10 @@ /obj/machinery/atmospherics/pipe/simple/green/visible, /turf/open/floor/plating, /area/engineering/atmos) +"hyY" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/starboard/fore) "hzs" = ( /obj/effect/turf_decal/bot, /obj/machinery/plate_press, @@ -55729,6 +55682,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/security/prison/upper) +"hJP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) "hKo" = ( /obj/structure/cable{ icon_state = "0-2" @@ -56160,16 +56123,6 @@ /obj/machinery/door/airlock{ name = "Permabrig Showers" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/structure/cable{ icon_state = "4-8" }, @@ -56499,6 +56452,10 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/wood, /area/command/heads_quarters/captain) +"jge" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/space/nearstation) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -56612,8 +56569,6 @@ /area/commons/arcade) "jqK" = ( /obj/structure/rack, -/obj/item/tank/internals/emergency_oxygen, -/obj/item/clothing/mask/breath, /obj/effect/spawner/lootdrop/prison_contraband, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -56702,16 +56657,6 @@ "jxx" = ( /obj/machinery/door/firedoor, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, @@ -56801,6 +56746,10 @@ dir = 4 }, /area/service/theater) +"jCV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/dark/side, +/area/security/prison/upper) "jDr" = ( /obj/machinery/door/poddoor/preopen{ id = "atmos"; @@ -56956,13 +56905,6 @@ }, /turf/open/floor/wood, /area/maintenance/port/aft) -"jJP" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) "jKc" = ( /obj/structure/closet/secure_closet/injection, /obj/machinery/firealarm{ @@ -56980,6 +56922,27 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) +"jKj" = ( +/obj/structure/table, +/obj/item/razor, +/obj/item/toy/plush/borgplushie{ + desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy."; + force = 1; + name = "dogborg plushie"; + throwforce = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "jKm" = ( /obj/structure/chair/comfy/brown{ dir = 8 @@ -57046,17 +57009,14 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"jOB" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +"jNT" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/aft) +"jOB" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -57130,7 +57090,7 @@ /obj/structure/cable{ icon_state = "2-4" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/security/prison/upper) "jTy" = ( /obj/machinery/washing_machine, @@ -57239,6 +57199,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) +"kbO" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "kcx" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/dark/visible, @@ -57275,9 +57242,9 @@ dir = 4 }, /obj/machinery/button/door{ - id = "permacells4"; + id = "permacells3"; name = "Privacy Shutters"; - pixel_y = 25 + pixel_y = -25 }, /turf/open/floor/plasteel/dark, /area/security/prison/cells) @@ -57542,10 +57509,6 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -58450,16 +58413,6 @@ /area/hallway/secondary/entry) "lBk" = ( /obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -58778,6 +58731,9 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/prison/cells) "lZs" = ( @@ -58892,7 +58848,7 @@ /area/commons/fitness/pool) "mhv" = ( /obj/machinery/door/airlock/security/glass{ - name = "Visitation Observation"; + name = "Prison Visitation Observation"; req_access_txt = "2" }, /obj/effect/turf_decal/tile/neutral, @@ -59144,16 +59100,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Prison Common Room" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, @@ -59445,6 +59391,7 @@ /obj/structure/sign/poster/official/fruit_bowl{ pixel_y = 32 }, +/obj/structure/closet/firecloset, /turf/open/floor/plasteel/white/corner{ dir = 1 }, @@ -59729,11 +59676,7 @@ /turf/open/floor/plasteel/dark, /area/security/prison/cells) "nkP" = ( -/obj/structure/rack, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/port/aft) "nmZ" = ( @@ -59910,6 +59853,14 @@ }, /turf/closed/wall, /area/maintenance/disposal/incinerator) +"nzX" = ( +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/structure/rack, +/turf/open/floor/plating, +/area/maintenance/port/aft) "nBI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -60146,6 +60097,9 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space, /area/space/nearstation) +"nZh" = ( +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "nZs" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -60241,6 +60195,10 @@ /obj/machinery/vending/kink, /turf/open/floor/plating, /area/maintenance/bar) +"odV" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/fore/secondary) "ofj" = ( /obj/machinery/smartfridge/organ/preloaded, /turf/closed/wall, @@ -60439,6 +60397,9 @@ /obj/machinery/recharger, /obj/item/gun/energy/laser/practice, /obj/item/gun/energy/laser/practice, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, /turf/open/floor/plasteel, /area/security/range) "owa" = ( @@ -60701,7 +60662,7 @@ "oVL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/decal/cleanable/dirt, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/security/prison/upper) "oVN" = ( /obj/machinery/meter, @@ -60812,6 +60773,10 @@ "pgf" = ( /turf/open/floor/mineral/titanium/blue, /area/commons/dorms) +"pgl" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "pgn" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -60822,16 +60787,6 @@ /obj/machinery/door/airlock/public/glass{ name = "Prison Common Room" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/security/prison/upper) @@ -60995,6 +60950,10 @@ /obj/machinery/gateway/centerstation, /turf/open/floor/plasteel/dark, /area/command/gateway) +"pta" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/space/nearstation) "pub" = ( /obj/machinery/light_switch{ pixel_x = -20 @@ -61093,9 +61052,9 @@ "pBd" = ( /obj/machinery/power/apc{ areastring = "/area/maintenance/prison/starboard"; - dir = 8; - name = "Prison Starboard Maintenance APC"; - pixel_x = -25 + dir = 4; + name = "Prison Central Maintenance APC"; + pixel_x = 24 }, /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -61219,7 +61178,7 @@ network = list("ss13","prison") }, /obj/structure/chair/stool, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/corner, /area/security/prison/upper) "pHO" = ( /obj/effect/turf_decal/tile/blue, @@ -61229,7 +61188,13 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "pIR" = ( -/obj/structure/closet/secure_closet/brig, +/obj/structure/table, +/obj/item/storage/box/handcuffs{ + pixel_y = 10 + }, +/obj/item/storage/box/prisoner{ + pixel_y = 4 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -61243,7 +61208,6 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/effect/turf_decal/bot_white, /obj/machinery/camera{ c_tag = "Prison Hallway West"; network = list("ss13","prison") @@ -61328,21 +61292,37 @@ /area/hallway/primary/central) "pRi" = ( /obj/structure/table, -/obj/item/razor, -/obj/item/toy/plush/borgplushie{ - desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy."; - force = 1; - name = "dogborg plushie"; - throwforce = 1 +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/item/reagent_containers/glass/bottle/chloralhydrate, +/obj/item/reagent_containers/glass/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/facid{ + name = "fluorosulfuric acid bottle"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm/directional/west, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 }, -/obj/machinery/atmospherics/pipe/simple, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "pRj" = ( @@ -61555,9 +61535,6 @@ dir = 4 }, /obj/effect/turf_decal/tile/red, -/obj/machinery/light{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, @@ -62211,6 +62188,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/security/processing) +"rla" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "rmN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 @@ -62349,16 +62331,6 @@ /turf/open/floor/plasteel, /area/commons/dorms) "ruu" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -62664,11 +62636,6 @@ /obj/machinery/status_display/evac, /turf/closed/wall, /area/ai_monitored/command/storage/eva) -"rQy" = ( -/obj/structure/lattice, -/obj/structure/grille, -/turf/open/space/basic, -/area/space) "rQJ" = ( /obj/machinery/light/small{ dir = 8 @@ -63247,7 +63214,7 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "sKL" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -63287,11 +63254,28 @@ /obj/item/storage/secure/briefcase, /turf/open/floor/plasteel, /area/commons/locker) +"sNg" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/security/execution/transfer) "sNj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/security/prison/upper) "sOs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63628,7 +63612,7 @@ /area/commons/cryopod) "tqk" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "tqB" = ( /obj/effect/turf_decal/stripes/line{ @@ -63945,10 +63929,6 @@ /turf/open/floor/wood, /area/service/theater) "tJE" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell"; - req_access_txt = "2" - }, /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -63959,6 +63939,11 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/machinery/door/airlock/grunge{ + name = "Isolation Cell"; + req_access_txt = "2"; + wiretypepath = /datum/wires/airlock/security + }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "tJK" = ( @@ -64040,6 +64025,10 @@ /obj/structure/cable{ icon_state = "2-4" }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, /turf/open/floor/plasteel, /area/security/prison/cells) "tOq" = ( @@ -64150,6 +64139,18 @@ }, /turf/closed/wall/r_wall, /area/maintenance/disposal/incinerator) +"tYd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "tYg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -64450,6 +64451,9 @@ /obj/structure/disposalpipe/sorting/mail{ sortType = 26 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/commons/dorms) "uys" = ( @@ -64762,7 +64766,7 @@ /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side, /area/security/prison/upper) "uUP" = ( /obj/structure/cable/white, @@ -65234,19 +65238,12 @@ /turf/open/floor/plating, /area/maintenance/starboard/fore) "vCS" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /obj/structure/cable{ icon_state = "4-8" }, /obj/structure/cable{ icon_state = "1-4" }, -/obj/machinery/atmospherics/pipe/simple, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "vEi" = ( @@ -65446,6 +65443,10 @@ /obj/machinery/atmospherics/pipe/simple/dark/visible, /turf/open/space, /area/space/nearstation) +"vPd" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/fore) "vPs" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -65547,6 +65548,11 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) +"wbw" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/floor/plating, +/area/space/nearstation) "wbE" = ( /obj/effect/turf_decal/tile/blue{ alpha = 255 @@ -65631,6 +65637,13 @@ /obj/item/assembly/signaler, /turf/open/floor/plating, /area/maintenance/bar) +"wgo" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "wgu" = ( /obj/machinery/door/airlock/maintenance{ name = "Permabrig Maintenance"; @@ -65648,6 +65661,11 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/pool) +"wiR" = ( +/obj/effect/landmark/event_spawn, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/fore) "wjd" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table, @@ -65681,7 +65699,9 @@ dir = 8; light_color = "#e8eaff" }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, /area/security/prison/upper) "wlg" = ( /obj/structure/cable{ @@ -65920,10 +65940,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"wDq" = ( -/obj/structure/lattice, -/turf/open/space/basic, -/area/space) "wGc" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -66045,25 +66061,16 @@ }, /area/maintenance/starboard/aft) "wVq" = ( -/obj/machinery/door/airlock/security{ - name = "Prison Workshop" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/door/airlock/grunge{ + name = "Prison Workshop"; + wiretypepath = /datum/wires/airlock/security + }, /turf/open/floor/plasteel/dark, /area/security/prison/upper) "wVt" = ( @@ -66295,23 +66302,14 @@ /turf/open/floor/plating, /area/hallway/secondary/service) "xjU" = ( -/obj/machinery/door/airlock/security{ - name = "Permabrig Visitation" - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /obj/machinery/door/firedoor, +/obj/machinery/door/airlock/grunge{ + name = "Prison Visitation"; + wiretypepath = /datum/wires/airlock/security + }, /turf/open/floor/plasteel/dark, /area/security/prison/upper) "xkd" = ( @@ -66370,16 +66368,6 @@ req_access_txt = "2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "xpH" = ( @@ -66804,21 +66792,6 @@ /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/station_ruins) -"xUC" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) "xUL" = ( /obj/effect/turf_decal/bot_white/right, /obj/effect/turf_decal/tile/neutral{ @@ -66923,6 +66896,10 @@ /obj/item/seeds/ambrosia, /turf/open/floor/plating, /area/maintenance/starboard/aft) +"ybb" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison/upper) "ycd" = ( /obj/structure/toilet/secret/low_loot{ dir = 4 @@ -66993,33 +66970,11 @@ /obj/machinery/status_display/evac, /turf/closed/wall, /area/hallway/primary/central) -"yeU" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/landmark/start/prisoner, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "permacells5"; - name = "Privacy Shutters"; - pixel_y = 25 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison/cells) "yeZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, -/turf/closed/wall, +/turf/closed/wall/r_wall, /area/security/execution/transfer) "yfX" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, @@ -77210,7 +77165,7 @@ awW awZ aym azz -aAF +wgo awW aaa aaa @@ -77443,7 +77398,7 @@ apJ awZ aIK ayl -aAE +rla awW aaa aaa @@ -82046,8 +82001,8 @@ aaf aaf aaa aaa -gXs aaa +gXs aaa ktS aaa @@ -82303,8 +82258,8 @@ aaa aaf aaa aaa -gXs aaa +gXs aaa ktS aaa @@ -82580,7 +82535,7 @@ cCs ann ann hCn -arH +cwS ayh azi aAx @@ -82598,7 +82553,7 @@ aPz aPz aPz aPz -aSg +hmT aWj aXP aZr @@ -82820,7 +82775,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa ajV @@ -83602,7 +83557,7 @@ anH oCF amC anJ -aFJ +wiR alU axK azG @@ -83848,7 +83803,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa ajV @@ -84105,7 +84060,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa aaa @@ -84613,14 +84568,14 @@ acW pry adA aaf -aaf +aba aaa aaa aaa aaa aaa -ktS -wDq +aaa +quT aaa aaa alU @@ -84876,8 +84831,8 @@ aaa aaa aaa aaa -ktS -rQy +aaa +eRz aaa aaa alU @@ -84920,7 +84875,7 @@ aQN fRe qSo aPA -bgt +hmT bhS bjk aPz @@ -85132,7 +85087,7 @@ gXs gXs gXs gXs -gXs +quT eRz aaT aaf @@ -85390,7 +85345,7 @@ aaa aaa gXs aaa -ktS +aaa aaa aaa aaa @@ -85407,7 +85362,7 @@ alU alU alU alU -ntt +cPO amC avW gYo @@ -86155,7 +86110,7 @@ aaa aaa aaa aaa -gXs +quT aaa aaa aaa @@ -86406,7 +86361,7 @@ aaa eRz eRz eRz -gXs +quT gXs aaa aaa @@ -86416,7 +86371,7 @@ eRz aaa aaa aaa -gXs +quT aaa aaa aaa @@ -86673,7 +86628,7 @@ eRz aaa aaa aaa -gXs +eRz aaa aaa aaa @@ -87174,7 +87129,7 @@ eRz aaa aaa aaa -gXs +quT aaa aaa aaa @@ -87183,7 +87138,7 @@ aaa aaa aaa aaa -eRz +wbw aaa aaa aaa @@ -87440,7 +87395,7 @@ aaa aae aaa aaa -eRz +jge aaa aaa aaa @@ -87697,14 +87652,14 @@ aaa aaa aaa aaa -gXs +jge aaa aaa aaa ali aoo avY -amC +vPd gsM sCa aoX @@ -87950,11 +87905,11 @@ mbC mbC mbC mbC -gXs -jJP -gXs -gXs -gXs +mbC +hEL +mbC +mbC +jge gXs gXs gXs @@ -88204,18 +88159,18 @@ lJA mvV tso abc +hvJ dIZ -dIZ +abc +jvO +sNg +hJP mbC -abc -abc -hEL -abc +jge aaa aaa aaa -aaa -gXs +pta aaa aaa aaa @@ -88296,7 +88251,7 @@ bCq bVE bWz bHE -bHE +nkP bLu bCq bLu @@ -88455,24 +88410,24 @@ wnX mAT mAT lJA -yeU +giE rBK lJA -giE +fgy rBK abc obs rBY -mbC -jvO -dfj -fgd abc -aaa -aaa -aaa -aaa +rgu +fbr +mCm +mbC +mbC gXs +gXs +gXs +jge aaa aaa aaa @@ -88720,16 +88675,16 @@ ejr abc tJE hEL +abc +tYd +cRq +gcX +jKj mbC -rgu -fbr -mCm -abc -abc abu abu abu -abc +mbC aaa aaa aaa @@ -88978,9 +88933,9 @@ xnF pFj kcB gyy -xUC +mCo vCS -gcX +nZh pRi rsn qIW @@ -89026,7 +88981,7 @@ aTJ aPK aWA aWC -baS +aDW aZI baS cCn @@ -89234,7 +89189,7 @@ lAD lJA lJA lJA -szn +lJA ili waX mCo @@ -89491,7 +89446,7 @@ wVt gSj vYF txs -szn +lJA jKc mjJ eJu @@ -89748,7 +89703,7 @@ xNV gxK dJu fbY -szn +lJA abd khO enB @@ -90005,7 +89960,7 @@ cCr lJA lJA lJA -szn +lJA noJ uql afu @@ -90014,7 +89969,7 @@ wdr itQ pgn tmO -gWo +sXV xUe aiU aiT @@ -90047,7 +90002,7 @@ aKc aLp aMV aOy -aLE +pgl aPQ aRV aSW @@ -90262,7 +90217,7 @@ lHK nRO vYF txs -szn +lJA ksa dQS afu @@ -90271,7 +90226,7 @@ pDe dly mnC mcp -gWo +sXV oDm ibK akb @@ -90519,7 +90474,7 @@ xNV oTx nko vFZ -szn +lJA noJ uql afw @@ -90598,7 +90553,7 @@ bHD bJe bCq nkP -bHE +nzX bHE bHE bHE @@ -90759,7 +90714,7 @@ cTo ltm kkb xfW -aaN +ybb kMn rDc grd @@ -90776,8 +90731,8 @@ abt lJA lJA lJA -szn -aeb +lJA +noJ uql afv agf @@ -90785,7 +90740,7 @@ acd dly xxp mcp -gWo +sXV gDP lAH lNH @@ -91016,7 +90971,7 @@ kfG uJY vhC tLC -aaN +ybb uLB kGj acG @@ -91033,7 +90988,7 @@ wVt pZD vYF tCs -szn +lJA pIR aeL afy @@ -91547,7 +91502,7 @@ lJA lJA lJA lJA -szn +lJA aeg ryN afA @@ -92064,7 +92019,7 @@ aat adH aem ikv -afJ +adp sXV sXV sXV @@ -92080,7 +92035,7 @@ nbY aiX iRj anz -aov +kbO cCi apU ajd @@ -92303,7 +92258,7 @@ msp pHK wkU sNj -rDm +efs acG sAT rqq @@ -92318,7 +92273,7 @@ acd ozh abK acY -aai +acd aeh lJS ado @@ -92575,7 +92530,7 @@ abA jNN jRV hkA -aai +acd aek acp aav @@ -92814,7 +92769,7 @@ aaa aaa uKW tAS -tAS +jCV eoR tAS ooF @@ -92832,7 +92787,7 @@ aei fFR acE add -aai +acd aej aeQ adp @@ -93071,7 +93026,7 @@ gXs gXs uKW oIl -tAS +jCV eoR ecB dnX @@ -93089,7 +93044,7 @@ acG acG acG acG -adI +acG xKl omX afG @@ -93346,7 +93301,7 @@ etr tyb abL adb -adI +acG ael aeO afF @@ -93603,7 +93558,7 @@ oPY ncU lvc epG -adI +acG aen aeO afG @@ -93860,7 +93815,7 @@ eDf oXV acH adc -adI +acG aeo aev aeS @@ -94374,7 +94329,7 @@ xib acG acD cNi -adI +acG aeq aeV agj @@ -101839,7 +101794,7 @@ uhm ahn aiA ahn -grc +odV anE aod ahn @@ -108072,7 +108027,7 @@ bFH bHb bIw bBN -bKT +jNT bMb bNd bOt @@ -111106,7 +111061,7 @@ alP anf anf alP -anf +hyY anf apE anf @@ -115555,7 +115510,7 @@ clt cQw cCt cOe -cOe +cmo cNW aaa aaS @@ -116813,7 +116768,7 @@ bKc cNW bMB bNA -cOe +cmo bSl bUq flc diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index 904b8958af..3c522e5ee6 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -3715,6 +3715,7 @@ "alM" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/starboard/fore) "alN" = ( @@ -8243,6 +8244,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/port/fore) "aCE" = ( @@ -13713,8 +13715,8 @@ }, /turf/open/floor/plating{ initial_gas_mix = "o2=0.01;n2=0.01"; - luminosity = 2; - initial_temperature = 2.7 + initial_temperature = 2.7; + luminosity = 2 }, /area/security/prison) "ban" = ( @@ -14376,8 +14378,8 @@ }, /turf/open/floor/plating{ initial_gas_mix = "o2=0.01;n2=0.01"; - luminosity = 2; - initial_temperature = 2.7 + initial_temperature = 2.7; + luminosity = 2 }, /area/security/prison) "bdo" = ( @@ -31965,6 +31967,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/starboard) "clv" = ( @@ -35124,6 +35127,7 @@ "cuI" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/red, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/starboard) "cuJ" = ( @@ -36310,6 +36314,12 @@ }, /turf/open/floor/plasteel, /area/maintenance/port) +"cCK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/aft) "cCM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -38007,6 +38017,7 @@ /obj/machinery/light/small{ dir = 8 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/port) "cLM" = ( @@ -38752,6 +38763,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "cNJ" = ( @@ -57355,6 +57367,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/maintenance/port) "dAv" = ( @@ -59204,6 +59217,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -62652,6 +62666,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/aft) "dLj" = ( @@ -62702,6 +62717,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel, /area/maintenance/starboard/aft) "dLn" = ( @@ -63084,6 +63100,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/structure/loot_pile/maint, /turf/open/floor/plasteel{ heat_capacity = 1e+006 }, @@ -79161,6 +79178,10 @@ "gWu" = ( /turf/closed/wall, /area/cargo/warehouse) +"gWF" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/fore) "gXc" = ( /obj/structure/sign/painting/library{ pixel_y = 32 @@ -95240,6 +95261,11 @@ }, /turf/open/floor/plasteel, /area/service/library/abandoned) +"mpB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port) "mqb" = ( /obj/structure/cable{ icon_state = "1-2" @@ -97242,6 +97268,17 @@ }, /turf/closed/wall/r_wall, /area/science/circuit) +"mYR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/loot_pile/maint, +/turf/open/floor/plasteel, +/area/maintenance/starboard/aft) "mYT" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/cardboard, @@ -109909,6 +109946,7 @@ "rCr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/loot_pile/maint, /turf/open/floor/plating, /area/cargo/warehouse) "rCv" = ( @@ -109944,6 +109982,11 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"rCR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/aft) "rDp" = ( /obj/structure/table/glass, /obj/structure/cable/white{ @@ -114162,6 +114205,13 @@ }, /turf/open/floor/carpet, /area/commons/vacant_room/office) +"sWQ" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port/aft) "sWY" = ( /obj/machinery/door/firedoor, /obj/structure/cable/white{ @@ -119197,6 +119247,10 @@ }, /turf/open/floor/plasteel, /area/command/heads_quarters/hos) +"uIT" = ( +/obj/structure/loot_pile/maint, +/turf/open/floor/plating, +/area/maintenance/port) "uJd" = ( /obj/item/kirbyplants/random, /obj/item/radio/intercom{ @@ -128561,6 +128615,21 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"yia" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/loot_pile/maint, +/turf/open/floor/plasteel{ + heat_capacity = 1e+006 + }, +/area/maintenance/starboard/aft) "yiq" = ( /obj/structure/reflector/single/anchored{ dir = 6 @@ -150094,7 +150163,7 @@ opi xbs qjg qjg -ceb +mpB cLv cMQ cOq @@ -157015,7 +157084,7 @@ caE cdY cfR chI -ceb +mpB cfU cmi cnI @@ -158117,7 +158186,7 @@ dOl ean dLW dZg -dLW +rCR ecv edf edl @@ -158756,7 +158825,7 @@ lxH odN quN asF -alg +gWF avq awo axJ @@ -159295,7 +159364,7 @@ qOV ary aKj bbQ -alg +gWF beK bgj alf @@ -159345,7 +159414,7 @@ ojB roP uhj cCO -cea +uIT cJZ cLI cNg @@ -160932,7 +161001,7 @@ dPG dQz dRy dSx -dOS +cCK dUg dUX dVL @@ -164529,7 +164598,7 @@ dOY dPR dfm dRK -dOl +sWQ pPz sBt vSo @@ -180428,7 +180497,7 @@ hYQ jjL pzu fzU -cYj +yia cZV dbC ddr @@ -181206,7 +181275,7 @@ ddt ddt aaB dbD -diW +mYR aaR dbA dnU diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 9279c8f11b..5b5885aca6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -95,49 +95,161 @@ /turf/open/floor/plating, /area/security/prison) "aaA" = ( -/obj/machinery/seed_extractor, -/obj/machinery/light/small{ - dir = 8 +/obj/structure/table, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = -4; + pixel_y = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/item/reagent_containers/glass/bottle/chloralhydrate{ + name = "chloral hydrate bottle" + }, +/obj/item/reagent_containers/glass/bottle/toxin{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_x = 5; + pixel_y = 1 + }, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/facid{ + name = "fluorosulfuric acid bottle"; + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 5 + }, +/obj/item/reagent_containers/dropper, +/obj/machinery/airalarm/all_access{ + dir = 4; + pixel_x = -24 + }, +/obj/machinery/button/ignition{ + id = "executionburn"; + name = "Justice Ignition Switch"; + pixel_x = -25; + pixel_y = 36 + }, +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Justice Area Lockdown"; + pixel_x = -25; + pixel_y = 26; + req_access_txt = "2" + }, +/obj/item/assembly/signaler{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/machinery/button/flasher{ + id = "justiceflash"; + name = "Justice Flash Control"; + pixel_x = -36; + pixel_y = 36; + req_access_txt = "1" + }, +/obj/machinery/button/door{ + id = "SecJusticeChamber"; + layer = 4; + name = "Justice Vent Control"; + pixel_x = -36; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaB" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/table, +/obj/item/folder/red{ + pixel_x = 3 }, -/obj/item/kirbyplants{ - icon_state = "plant-03" +/obj/item/taperecorder{ + pixel_x = -3 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/item/storage/fancy/cigarettes, +/obj/item/assembly/flash/handheld, +/obj/item/reagent_containers/spray/pepper, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaC" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaD" = ( /obj/structure/sink/kitchen{ desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; name = "old sink"; pixel_y = 28 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/area/security/prison) -"aaD" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/kirbyplants, -/turf/open/floor/plasteel, -/area/security/prison) -"aaE" = ( -/obj/machinery/biogenerator, -/obj/machinery/light/small{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/camera{ - c_tag = "Prison Hydroponics"; - network = list("ss13","prison") +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaE" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/execution/education"; + dir = 1; + name = "Prisoner Education Chamber APC"; + pixel_y = 23 + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/structure/closet/secure_closet/injection{ + name = "educational injections"; + pixel_x = 2 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaF" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -146,82 +258,87 @@ /turf/open/floor/plating, /area/security/prison) "aaG" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/ambrosia, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = -29 + }, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/chair/office/dark{ + dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaI" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/prison) -"aaJ" = ( -/obj/item/reagent_containers/glass/bucket, +"aaK" = ( /obj/structure/cable/yellow{ - icon_state = "4-8" + icon_state = "1-2" }, +/obj/machinery/light_switch{ + pixel_x = 26 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaL" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/prison) -"aaK" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/seeds/glowshroom, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aaL" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ icon_state = "0-8" }, /turf/open/floor/plating, /area/security/prison) -"aaP" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/cultivator, -/obj/item/seeds/carrot, -/turf/open/floor/plasteel, -/area/security/prison) "aaQ" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/reagent_containers/glass/bucket, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaR" = ( /turf/open/floor/plasteel, /area/security/prison) "aaS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"aaT" = ( -/obj/machinery/hydroponics/constructable, -/obj/item/plant_analyzer, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"aaT" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "aaW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -242,30 +359,6 @@ "aaZ" = ( /turf/closed/wall/r_wall, /area/security/execution/education) -"aba" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/security/prison) -"abb" = ( -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Hydroponics Module" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"abc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) "abd" = ( /obj/machinery/vending/cola/random, /obj/structure/sign/poster/official/pda_ad600{ @@ -294,39 +387,22 @@ /turf/open/floor/plating, /area/security/execution/education) "abh" = ( -/obj/item/soap/nanotrasen, -/obj/item/bikehorn/rubberducky, -/obj/machinery/shower{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abi" = ( -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abj" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/easel, -/obj/item/canvas/twentythreeXtwentythree, -/obj/item/canvas/twentythreeXtwentythree, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/upper) +"abj" = ( +/obj/item/storage/bag/trash, +/obj/machinery/airalarm/directional/west, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/prison) "abk" = ( /obj/structure/kitchenspike_frame, /obj/effect/decal/cleanable/blood/gibs/old, @@ -336,73 +412,105 @@ /turf/open/floor/plating, /area/maintenance/port/aft) "abl" = ( -/obj/structure/table, -/obj/machinery/computer/libraryconsole/bookmanagement, -/turf/open/floor/plasteel, -/area/security/prison) -"abm" = ( -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/obj/machinery/vr_sleeper, -/turf/open/floor/plasteel, -/area/security/prison) -"abn" = ( -/obj/machinery/newscaster{ - pixel_y = 32 +/obj/effect/turf_decal/stripes/line, +/obj/machinery/camera{ + c_tag = "Prison Workshop"; + dir = 8; + network = list("ss13","prison") }, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/upper) "abo" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/item/tank/internals/oxygen/red{ + pixel_x = -4; + pixel_y = -1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/item/tank/internals/oxygen/red{ + pixel_x = 4; + pixel_y = -1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"abp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-8" +/obj/item/tank/internals/anesthetic{ + pixel_x = 2 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/item/storage/toolbox/mechanical, +/obj/item/clothing/mask/gas, +/obj/item/clothing/mask/gas, +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/machinery/atmospherics/pipe/manifold/general/visible, +/obj/item/wrench, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "abq" = ( -/obj/structure/holohoop{ - pixel_y = 29 +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_y = 6 }, -/obj/item/toy/beach_ball/holoball, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, /area/security/prison) "abr" = ( -/obj/machinery/status_display/evac{ - pixel_y = 32 +/obj/structure/table/glass, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/reagent_containers/glass/beaker{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/reagent_containers/dropper, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/firealarm{ + pixel_y = 24 }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abs" = ( -/obj/machinery/washing_machine, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe, +/obj/item/reagent_containers/glass/bottle/morphine{ + pixel_y = 6 + }, +/obj/machinery/camera{ + c_tag = "Prison Sanitarium"; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abt" = ( /obj/machinery/vending/hydroseeds{ @@ -459,52 +567,31 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "abA" = ( -/obj/machinery/shower{ +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"abB" = ( +/turf/closed/wall, +/area/maintenance/prison) +"abC" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side{ dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abB" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Unisex Showers" - }, -/obj/machinery/light/small, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abC" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "abD" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel, -/area/security/prison) -"abF" = ( -/obj/structure/table, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/reagent_containers/food/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/food/condiment/saltshaker{ - pixel_x = -3; - pixel_y = 5 +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 }, /turf/open/floor/plasteel, -/area/security/prison) -"abG" = ( -/obj/structure/table, -/obj/item/toy/cards/deck, -/obj/item/toy/cards/deck, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "abH" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -530,38 +617,36 @@ /turf/open/floor/plasteel/white, /area/medical/medbay/central) "abI" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/white, /area/security/prison) "abJ" = ( -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abK" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, +/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/white, /area/security/prison) "abL" = ( /turf/open/floor/plating, @@ -577,10 +662,10 @@ name = "Solar Maintenance"; req_access_txt = "10; 13" }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/structure/cable{ icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "abV" = ( @@ -618,40 +703,35 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "abY" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom" +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"abZ" = ( -/obj/structure/table, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/item/clothing/head/chefhat, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/security/prison) -"aca" = ( -/obj/structure/table, +/area/security/prison/cells) +"abZ" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/item/toy/cards/deck, -/obj/item/toy/cards/deck, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "acb" = ( -/obj/structure/table, -/obj/item/storage/dice, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 10 + }, /turf/open/floor/plasteel, -/area/security/prison) -"acc" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "acd" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ @@ -663,50 +743,63 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "ace" = ( -/obj/machinery/vending/sustenance{ - desc = "A vending machine normally reserved for work camps."; - name = "\improper sustenance vendor"; - product_slogans = "Enjoy your meal.;Enough calories to support any worker." +/obj/item/folder/red, +/obj/item/pen, +/obj/structure/table/glass, +/obj/item/folder/white{ + pixel_x = -4; + pixel_y = 2 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/white, /area/security/prison) "acf" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, +/obj/structure/table, +/obj/item/storage/box/prisoner{ + pixel_y = 8 + }, +/obj/item/storage/box/prisoner, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "acg" = ( -/obj/machinery/light/small, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/structure/cable/yellow{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, /area/security/prison) "ach" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "1" - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/security/prison) "acj" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "ack" = ( /obj/structure/lattice/catwalk, @@ -739,514 +832,375 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "acp" = ( -/obj/machinery/light/small{ +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/structure/toilet/secret/prison{ - dir = 4 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/prison/cells) "acq" = ( -/obj/structure/table, -/obj/item/storage/box/donkpockets{ - pixel_x = 2; - pixel_y = 1 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/prison/cells) "acr" = ( -/obj/structure/cable/yellow{ - icon_state = "1-4" +/turf/open/floor/plasteel/dark/side{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) -"acs" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "act" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/toy/beach_ball/holoball, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/holohoop{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/white/line{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Prison Yard"; + dir = 8; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acw" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison) +"acy" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/orange, +/obj/item/restraints/handcuffs, +/obj/item/reagent_containers/spray/pepper, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acD" = ( +/obj/structure/punching_bag, +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark/side{ + dir = 4 + }, +/area/security/prison/cells) +"acF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"acK" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison) +"acL" = ( +/obj/structure/table, +/obj/item/clothing/under/rank/prisoner/skirt{ + pixel_x = -13; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner/skirt{ + pixel_x = 9; + pixel_y = 5 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/prison) +"acN" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acO" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acR" = ( +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"acV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"acW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"acX" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 3"; + wiretypepath = /datum/wires/airlock/security + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"acY" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"ada" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adb" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel/dark/corner{ + dir = 4 + }, +/area/security/prison/cells) +"adc" = ( +/obj/structure/sign/warning/securearea, +/turf/closed/wall/r_wall, +/area/security/prison) +"add" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/prison/cells) +"ade" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adf" = ( /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"adg" = ( /obj/structure/cable/yellow{ - icon_state = "1-8" + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adh" = ( +/obj/structure/closet/secure_closet/brig, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"adi" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, /obj/structure/cable/yellow{ icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acu" = ( -/obj/machinery/holopad, /obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acv" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acw" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acx" = ( -/obj/machinery/cryopod{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acy" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod Two" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plating, -/area/security/prison) -"acA" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acB" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acC" = ( -/obj/machinery/door/window/brigdoor{ - name = "Justice Chamber"; - req_access_txt = "3" - }, -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Justice Chamber"; - req_access_txt = "3" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acD" = ( -/obj/structure/table, -/obj/machinery/microwave{ - pixel_x = -3; - pixel_y = 6 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/security/prison) -"acE" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/security/prison) -"acF" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/security/prison) -"acG" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/item/kirbyplants{ - icon_state = "plant-13" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acH" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = -28; - prison_radio = 1 - }, -/obj/machinery/camera{ - c_tag = "Prison Chamber"; - dir = 1; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acI" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acK" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"acL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/obj/machinery/light, -/turf/open/floor/plasteel, -/area/security/prison) -"acM" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/obj/machinery/computer/cryopod{ - dir = 8; - pixel_x = 26 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"acN" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_y = 6 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"acO" = ( -/obj/machinery/newscaster{ - pixel_y = 32 - }, -/obj/structure/table/glass, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/reagent_containers/glass/beaker{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/reagent_containers/dropper, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"acR" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_y = 6 - }, -/obj/machinery/camera{ - c_tag = "Prison Sanitarium"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"acV" = ( -/obj/structure/table, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = -4; - pixel_y = 1 - }, -/obj/item/reagent_containers/glass/bottle/chloralhydrate{ - name = "chloral hydrate bottle" - }, -/obj/item/reagent_containers/glass/bottle/toxin{ - pixel_x = 6; - pixel_y = 8 - }, -/obj/item/reagent_containers/glass/bottle/morphine{ - pixel_x = 5; - pixel_y = 1 - }, -/obj/item/reagent_containers/syringe, -/obj/item/reagent_containers/glass/bottle/facid{ - name = "fluorosulfuric acid bottle"; - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/reagent_containers/syringe{ - pixel_y = 5 - }, -/obj/item/reagent_containers/dropper, -/obj/machinery/airalarm/all_access{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/button/ignition{ - id = "executionburn"; - name = "Justice Ignition Switch"; - pixel_x = -25; - pixel_y = 36 - }, -/obj/machinery/button/door{ - id = "executionfireblast"; - name = "Justice Area Lockdown"; - pixel_x = -25; - pixel_y = 26; - req_access_txt = "2" - }, -/obj/item/assembly/signaler{ - pixel_x = -3; - pixel_y = 2 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/obj/machinery/button/flasher{ - id = "justiceflash"; - name = "Justice Flash Control"; - pixel_x = -36; - pixel_y = 36; - req_access_txt = "1" - }, -/obj/machinery/button/door{ - id = "SecJusticeChamber"; - layer = 4; - name = "Justice Vent Control"; - pixel_x = -36; - pixel_y = 26; - req_access_txt = "3" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acW" = ( -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 3 - }, -/obj/item/taperecorder{ - pixel_x = -3 - }, -/obj/item/storage/fancy/cigarettes, -/obj/item/assembly/flash/handheld, -/obj/item/reagent_containers/spray/pepper, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acX" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"acY" = ( -/obj/structure/sink/kitchen{ - desc = "A sink used for washing one's hands and face. It looks rusty and home-made"; - name = "old sink"; - pixel_y = 28 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"ada" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/closed/wall/r_wall, -/area/security/prison) -"adb" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell3"; - name = "Cell Shutters" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt3"; - name = "Cell 3" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"adc" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/prison) -"add" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell2"; - name = "Cell Shutters" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt2"; - name = "Cell 2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"ade" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell1"; - name = "Cell Shutters" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt1"; - name = "Cell 1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) -"adf" = ( -/obj/machinery/light/small{ - dir = 4 + icon_state = "0-8" }, /turf/open/floor/plating, /area/security/prison) -"adg" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adh" = ( -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adi" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, -/obj/item/clothing/glasses/sunglasses/blindfold, -/obj/item/clothing/mask/muzzle, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/white, -/area/security/prison) "adk" = ( /obj/structure/sign/poster/contraband/scum{ pixel_y = -32 @@ -1264,156 +1218,210 @@ /turf/open/floor/plating, /area/maintenance/fore) "adm" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = -29 +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adn" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/bed{ + dir = 8 + }, +/obj/item/bedsheet/red{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/security/execution/education) +/area/security/prison/cells) +"adn" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/button/door{ + id = "permacells3"; + name = "Privacy Shutters"; + pixel_y = -25 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "ado" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells3"; + name = "Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/cells) "adp" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, /area/security/execution/education) "adq" = ( /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/obj/machinery/light{ +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adr" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"ads" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adu" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adv" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adw" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adx" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ady" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/security/execution/education) -"ads" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 3"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adt" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt3"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adu" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 2"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adv" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel, -/area/security/prison) -"adw" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt2"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg2" - }, -/area/security/prison) -"adx" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Prison Cell 1"; - network = list("ss13","prison") - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ady" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt1"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/turf/open/floor/plasteel, /area/security/prison) "adz" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, +/turf/open/floor/plasteel, /area/security/prison) "adA" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/light{ +/obj/structure/table, +/obj/item/storage/box/bodybags{ + pixel_x = 4; + pixel_y = 2 + }, +/obj/item/pen, +/obj/item/storage/box/prisoner, +/obj/machinery/camera{ + c_tag = "Prison Hallway Aft"; + dir = 1; + network = list("ss13","prison") + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adB" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/machinery/computer/security/telescreen/prison{ + dir = 1; + pixel_y = -27 }, -/turf/open/floor/plasteel/white, +/obj/machinery/light, +/turf/open/floor/plasteel/dark, /area/security/prison) "adC" = ( -/obj/machinery/flasher{ - id = "insaneflash"; - pixel_x = 26 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/white, +/obj/structure/cable/yellow, +/turf/open/floor/plating, /area/security/prison) "adD" = ( /obj/structure/lattice, @@ -1435,12 +1443,11 @@ /turf/open/space/basic, /area/space) "adG" = ( -/obj/docking_port/stationary/random{ - id = "pod_lavaland2"; - name = "lavaland" +/obj/machinery/door/airlock/external{ + name = "Escape Pod Two" }, -/turf/open/space, -/area/space/nearstation) +/turf/open/floor/plating, +/area/security/prison) "adI" = ( /obj/structure/rack, /obj/item/hatchet, @@ -1469,150 +1476,82 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) -"adK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adL" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) "adM" = ( -/obj/machinery/button/door{ - id = "prisonereducation"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_y = -25; - specialfunctions = 4 +/obj/machinery/computer/arcade/orion_trail{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "adN" = ( -/obj/machinery/light_switch{ - pixel_x = 26 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, +/obj/structure/chair/stool, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) -"adO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/flasher{ - id = "PCell 3"; - pixel_x = -28 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/security/prison) -"adP" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adQ" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/prison) -"adR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/flasher{ - id = "PCell 2"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adS" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adT" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/security/prison) -"adU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/flasher{ - id = "PCell 1"; - pixel_x = -28 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"adV" = ( -/obj/item/folder/red, -/obj/item/pen, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/table/glass, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adO" = ( +/obj/structure/cable/yellow, +/obj/machinery/power/apc/highcap/five_k{ + areastring = "/area/security/prison/upper"; + damage_deflection = 21; + desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage."; + dir = 2; + name = "Armored Prison Wing Cells APC"; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adP" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adQ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adR" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adW" = ( /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"adS" = ( /obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/prison) -"adX" = ( -/obj/structure/bed/roller, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/iv_drip, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/prison/cells) "adY" = ( /turf/closed/wall/r_wall, /area/security/warden) @@ -1621,12 +1560,12 @@ /turf/open/floor/plating, /area/maintenance/solars/port/fore) "aef" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "aeg" = ( @@ -1664,84 +1603,72 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "aej" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - id_tag = "prisonereducation"; - name = "Prisoner Education Chamber"; - req_access_txt = "3" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells2"; + name = "Privacy Shutters" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/turf/open/floor/plating, +/area/security/prison/cells) +"aek" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/execution/education) -"aek" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 2"; + wiretypepath = /datum/wires/airlock/security + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall/r_wall, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "ael" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "aem" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 3"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aen" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 2"; - req_access_txt = "2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aeo" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 1"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aep" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Sanitarium"; - req_access_txt = "2" - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 1"; + wiretypepath = /datum/wires/airlock/security + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"aen" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Visitation" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "aeq" = ( /turf/closed/wall/r_wall, /area/ai_monitored/security/armory) @@ -1836,38 +1763,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/education) -"aeI" = ( -/obj/item/tank/internals/oxygen/red{ - pixel_x = -4; - pixel_y = -1 - }, -/obj/item/tank/internals/oxygen/red{ - pixel_x = 4; - pixel_y = -1 - }, -/obj/item/tank/internals/anesthetic{ - pixel_x = 2 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/structure/closet/crate{ - icon_state = "crateopen" - }, -/obj/machinery/atmospherics/pipe/manifold/general/visible, -/obj/item/wrench, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) "aeJ" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 9 @@ -1886,275 +1781,162 @@ /turf/open/floor/plasteel/dark, /area/security/execution/education) "aeK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-4" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeL" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'WARNING: Do Not Enter When Red Light Shows', detailing the penalties that any Nanotrasen employee or silicon will suffer if violating this rule."; - name = "WARNING: Do Not Enter When Red Light Shows"; - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeM" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeN" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/button/door{ + id = "permacells2"; + name = "Privacy Shutters"; + pixel_x = -25 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"aeL" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"aeN" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "aeO" = ( -/obj/machinery/button/door{ - id = "permacell3"; - name = "Cell 3 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/button/flasher{ - id = "PCell 3"; - pixel_x = 6; - pixel_y = 24 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeP" = ( +/obj/effect/landmark/start/prisoner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 - }, -/obj/machinery/camera{ - c_tag = "Prison Hallway Port"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeQ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeR" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"aeS" = ( /obj/machinery/button/door{ - id = "permacell2"; - name = "Cell 2 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" + id = "permacells1"; + name = "Privacy Shutters"; + pixel_x = 25 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id = "PCell 2"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "aeT" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = 30 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/light{ +/obj/machinery/camera{ + c_tag = "Security - EVA Storage"; dir = 1 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeW" = ( -/obj/machinery/button/door{ - id = "permacell1"; - name = "Cell 1 Lockdown"; - pixel_x = -4; - pixel_y = 25; - req_access_txt = "2" +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Security E.V.A. Storage"; + req_access_txt = "3" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id = "PCell 1"; - pixel_x = 6; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeY" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/security/prison) "aeZ" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light/small{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = 26; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/structure/sign/warning/pods{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"afa" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/button/flasher{ - id = "insaneflash"; - pixel_y = 26 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"afb" = ( -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/prison) -"afc" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/security/prison) -"afd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/item/kirbyplants{ - icon_state = "plant-16" - }, -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'WARNING: Criminally Insane Inmates', describing the possible hazards of those contained within."; - name = "WARNING: Criminally Insane Inmates"; - pixel_y = 32 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, /turf/open/floor/plasteel, /area/security/prison) "aff" = ( @@ -2208,9 +1990,6 @@ }, /area/holodeck/rec_center) "afE" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; req_access_txt = "10; 13" @@ -2218,133 +1997,95 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) "afF" = ( -/obj/item/kirbyplants{ - icon_state = "applebush" +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/bed, +/obj/item/bedsheet/red, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "afG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afH" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ +/obj/structure/toilet{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afI" = ( +/obj/structure/window/reinforced/tinted{ + dir = 8 + }, /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) +"afH" = ( +/turf/closed/wall, +/area/security/prison/cells) +"afI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afJ" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/structure/window/reinforced/tinted{ dir = 4 }, -/obj/machinery/newscaster/security_unit{ - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/toilet{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afK" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "afL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/effect/decal/cleanable/dirt, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /obj/effect/turf_decal/tile/red{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/prison) -"afM" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 + dir = 4; + pixel_x = -24 }, /turf/open/floor/plasteel, -/area/security/prison) -"afN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -30 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) "afQ" = ( /obj/machinery/door/airlock/external{ name = "Solar Maintenance"; @@ -2357,55 +2098,48 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) "afR" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, /area/security/prison) "afS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/prison) -"afT" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light, -/obj/effect/turf_decal/tile/red{ - dir = 1 +"afW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-8" }, -/turf/open/floor/plasteel, -/area/security/prison) -"afU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ dir = 8 }, /obj/effect/turf_decal/tile/red{ dir = 1 }, /turf/open/floor/plasteel, -/area/security/prison) -"afV" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"afW" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable/yellow, -/turf/open/floor/plating, -/area/security/prison) +/area/security/prison/cells) "afX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -2555,173 +2289,34 @@ icon_state = "platingdmg2" }, /area/maintenance/solars/port/fore) -"agE" = ( -/obj/structure/table, -/obj/item/folder/red{ - pixel_x = 3 - }, -/obj/item/folder/white{ - pixel_x = -4; - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agF" = ( -/obj/structure/rack, -/obj/item/restraints/handcuffs, -/obj/item/assembly/flash/handheld, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agG" = ( -/obj/structure/table, -/obj/item/storage/box/bodybags{ - pixel_x = 4; - pixel_y = 2 - }, -/obj/item/pen, -/obj/item/storage/box/prisoner, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "agH" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agI" = ( -/obj/structure/closet/secure_closet/brig, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agJ" = ( -/obj/structure/sign/warning/securearea, -/turf/closed/wall, -/area/security/prison) -"agK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/cells) +"agI" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "agL" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/prison) -"agM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/plasteel, -/area/security/prison) "agN" = ( -/obj/structure/sign/warning/securearea{ - desc = "A warning sign which reads 'WARNING: Dangerous Inmates'."; - name = "\improper WARNING: Dangerous Inmates" - }, /turf/closed/wall, -/area/security/prison) -"agO" = ( -/obj/structure/table, -/obj/machinery/recharger{ - pixel_y = 4 - }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = -30 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agP" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/area/space) "agQ" = ( /obj/machinery/holopad{ pixel_y = -15 @@ -2844,83 +2439,22 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) -"ahu" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "ahv" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ahw" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "ahx" = ( /turf/closed/wall, /area/security/brig) -"ahy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Security Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"ahz" = ( -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Security Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"ahA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "Security Blast Door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) "ahB" = ( /turf/closed/wall, /area/security/warden) @@ -3211,96 +2745,36 @@ /turf/open/floor/plating, /area/security/brig) "air" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/door/window/southright{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/security/brig) "ais" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/machinery/light/small, -/obj/machinery/camera{ - c_tag = "Security - EVA Storage"; +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/tile/blue{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "ait" = ( -/obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ - name = "Security E.V.A. Storage"; - req_access_txt = "1" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiv" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aiw" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = 26; + name = "Prison Visitation"; req_access_txt = "2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/brig) "aix" = ( /obj/structure/closet{ @@ -3532,45 +3006,10 @@ "ajm" = ( /turf/closed/wall/r_wall, /area/security/brig) -"ajn" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) "ajo" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/brig) -"ajp" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) "ajq" = ( /obj/structure/closet{ name = "Evidence Closet 2" @@ -8551,6 +7990,20 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"ayq" = ( +/obj/machinery/camera{ + c_tag = "Prison Central"; + dir = 8; + network = list("ss13","prison") + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "ayu" = ( /obj/machinery/door/window/northleft{ dir = 8; @@ -9615,6 +9068,16 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"aCJ" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "aCM" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -9634,6 +9097,13 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"aDg" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "aDu" = ( /turf/closed/wall, /area/hallway/primary/fore) @@ -9873,6 +9343,10 @@ icon_state = "platingdmg1" }, /area/maintenance/fore) +"aEv" = ( +/obj/structure/lattice, +/turf/open/space, +/area/space/station_ruins) "aEI" = ( /obj/machinery/airalarm{ dir = 4; @@ -11162,6 +10636,10 @@ /obj/structure/lattice, /turf/open/space, /area/space/nearstation) +"aME" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel, +/area/security/prison/cells) "aMG" = ( /obj/structure/table, /obj/item/aiModule/core/full/asimov, @@ -14111,6 +13589,13 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/engineering) +"aZO" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison) "aZQ" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom{ @@ -15574,6 +15059,9 @@ /obj/structure/cable/yellow, /turf/open/floor/plating, /area/security/checkpoint/engineering) +"bgb" = ( +/turf/closed/wall/r_wall, +/area/security/prison/cells) "bgh" = ( /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -19505,6 +18993,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) +"bvX" = ( +/obj/item/stack/sticky_tape, +/obj/item/stack/sheet/cardboard{ + amount = 14 + }, +/obj/item/stack/packageWrap, +/obj/machinery/light/small, +/turf/open/floor/plasteel, +/area/security/prison/upper) "bvY" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -21883,11 +21380,6 @@ /obj/item/clothing/suit/hooded/wintercoat, /turf/open/floor/plating, /area/maintenance/department/science/xenobiology) -"bID" = ( -/obj/structure/cable, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "bIE" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -22836,6 +22328,14 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, /area/maintenance/starboard) +"bQZ" = ( +/obj/structure/closet/crate, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/turf/open/floor/plating, +/area/security/prison/upper) "bRc" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -22892,6 +22392,13 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"bRR" = ( +/obj/item/soap/nanotrasen, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "bSc" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -23175,6 +22682,22 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port) +"bTB" = ( +/obj/machinery/airalarm/directional/west, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "bTD" = ( /obj/machinery/vending/snack/random, /obj/machinery/newscaster{ @@ -41765,6 +41288,12 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) +"cKy" = ( +/obj/machinery/flasher{ + id = "visitorflash" + }, +/turf/closed/wall, +/area/security/brig) "cKz" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -45098,9 +44627,36 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/plasteel/white, /area/science/xenobiology) -"cUU" = ( -/obj/effect/landmark/start/prisoner, +"cUT" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, +/area/security/prison/upper) +"cUU" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "cUZ" = ( /obj/docking_port/stationary{ @@ -45801,6 +45357,18 @@ }, /turf/open/floor/circuit/telecomms, /area/science/xenobiology) +"dbx" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "dbG" = ( /obj/machinery/power/apc{ areastring = "/area/science/circuit"; @@ -48018,30 +47586,16 @@ }, /area/maintenance/starboard/fore) "dpy" = ( -/obj/machinery/power/apc/highcap/five_k{ - areastring = "/area/security/prison"; - dir = 1; - name = "Prison Wing APC"; - pixel_x = 1; - pixel_y = 23 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/cable/yellow{ - icon_state = "0-8" - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, -/obj/machinery/camera{ - c_tag = "Prison Hallway Starboard"; - network = list("ss13","prison") - }, -/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/prison) "dpF" = ( @@ -48206,6 +47760,15 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/maintenance/port/fore) +"dsC" = ( +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "dsL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -48395,6 +47958,16 @@ }, /turf/open/floor/plasteel/freezer, /area/commons/fitness/recreation) +"dve" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "dvg" = ( /obj/structure/chair/office/light{ dir = 8 @@ -48495,6 +48068,29 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/aft) +"dwf" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "dwi" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -48601,6 +48197,17 @@ icon_state = "platingdmg3" }, /area/maintenance/port/aft) +"dxy" = ( +/obj/machinery/button/flasher{ + id = "IsolationFlash"; + pixel_x = -23; + pixel_y = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "dxQ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -49045,6 +48652,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"dCu" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/prison/upper) "dCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -49184,13 +48795,10 @@ /turf/open/floor/plasteel/cafeteria, /area/service/kitchen) "dDj" = ( -/obj/structure/cable, -/obj/machinery/power/solar{ - id = "foreport"; - name = "Fore-Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port/fore) +/obj/structure/lattice, +/obj/item/shard, +/turf/open/space/basic, +/area/space/nearstation) "dDo" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel/white, @@ -49773,11 +49381,6 @@ }, /turf/open/floor/wood, /area/service/library) -"dSe" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "dSm" = ( /obj/structure/table, /obj/machinery/microwave{ @@ -50112,6 +49715,15 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/service/chapel/main) +"eaE" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "eaK" = ( /obj/structure/chair/office/dark, /turf/open/floor/wood, @@ -50187,6 +49799,10 @@ }, /turf/open/floor/wood, /area/commons/vacant_room/office) +"edY" = ( +/obj/structure/window, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "eeb" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -50356,6 +49972,13 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/port) +"eiU" = ( +/obj/structure/table, +/obj/item/pen, +/obj/item/instrument/harmonica, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "ejd" = ( /obj/structure/bookcase{ name = "Holy Bookcase" @@ -50532,6 +50155,10 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"emo" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/security/prison/upper) "emB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -50779,6 +50406,22 @@ /obj/item/gps, /turf/open/floor/plating, /area/engineering/main) +"ewU" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "ewZ" = ( /obj/machinery/conveyor/inverted{ dir = 6; @@ -50792,6 +50435,19 @@ }, /turf/closed/wall/r_wall, /area/engineering/atmos) +"exz" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "exJ" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -51148,6 +50804,27 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"eEy" = ( +/obj/machinery/shower{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) +"eFk" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "eFn" = ( /obj/machinery/portable_atmospherics/canister/oxygen, /obj/machinery/atmospherics/miner/oxygen, @@ -51552,6 +51229,14 @@ /obj/machinery/vending/coffee, /turf/open/floor/wood, /area/service/library) +"eSb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "eSp" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -52041,6 +51726,15 @@ /obj/machinery/holopad/secure, /turf/open/floor/plasteel/cafeteria, /area/command/heads_quarters/cmo) +"fdl" = ( +/obj/machinery/door/airlock{ + name = "Prison Showers" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "fdE" = ( /obj/structure/chair/wood/wings{ dir = 1 @@ -52179,6 +51873,13 @@ }, /turf/open/floor/plasteel/cult, /area/service/chapel/main) +"fhs" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/space/basic, +/area/solars/port/fore) "fht" = ( /obj/structure/table/reinforced, /obj/item/flashlight/lamp, @@ -52189,6 +51890,18 @@ /obj/machinery/atmospherics/pipe/simple/cyan/visible, /turf/closed/wall/r_wall, /area/engineering/atmos) +"fhK" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "fhO" = ( /obj/structure/closet/secure_closet/personal, /obj/item/clothing/under/misc/assistantformal, @@ -52482,6 +52195,19 @@ "fvo" = ( /turf/closed/wall, /area/service/chapel/main) +"fvV" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "fwb" = ( /obj/item/soap/nanotrasen, /obj/machinery/light/small{ @@ -52669,6 +52395,12 @@ }, /turf/open/floor/plasteel, /area/service/hydroponics) +"fCR" = ( +/obj/machinery/shower{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "fCZ" = ( /obj/machinery/atmospherics/pipe/manifold/supply/visible{ dir = 1 @@ -52740,6 +52472,18 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) +"fEV" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "fEX" = ( /turf/open/floor/wood, /area/service/library) @@ -52910,6 +52654,16 @@ }, /turf/open/floor/plasteel, /area/engineering/break_room) +"fKj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "fKu" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -52918,6 +52672,15 @@ dir = 4 }, /area/service/chapel/main) +"fKv" = ( +/obj/machinery/door/airlock{ + name = "Cleaning Closet" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/prison) "fKG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -53056,6 +52819,22 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"fOe" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"fOG" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/airless, +/area/space/nearstation) "fOS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, @@ -53105,6 +52884,17 @@ /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engineering/main) +"fRj" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells4"; + name = "Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/cells) "fRo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -53174,6 +52964,11 @@ }, /turf/open/floor/plasteel, /area/engineering/gravity_generator) +"fUI" = ( +/obj/structure/bed, +/obj/machinery/airalarm/directional/east, +/turf/open/floor/padded, +/area/security/prison) "fVa" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -53407,6 +53202,13 @@ }, /turf/open/floor/plasteel/white, /area/command/heads_quarters/rd) +"gcB" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating/airless, +/area/solars/port/fore) "gcE" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -53486,6 +53288,13 @@ }, /turf/open/floor/carpet, /area/command/corporate_showroom) +"gec" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "geK" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -53496,6 +53305,12 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"geU" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "geY" = ( /obj/machinery/vending/cigarette, /turf/open/floor/wood, @@ -53635,6 +53450,17 @@ }, /turf/open/floor/wood, /area/service/bar) +"gjm" = ( +/obj/structure/table, +/obj/item/toy/cards/deck, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "gjo" = ( /obj/machinery/door/airlock{ name = "Unisex Showers" @@ -53699,6 +53525,15 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"gkG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "glc" = ( /turf/closed/wall, /area/service/library) @@ -53727,6 +53562,14 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"glz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "glJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/disposalpipe/segment{ @@ -53771,6 +53614,20 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/engineering/atmos) +"gmU" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/security/prison) "gnZ" = ( /obj/item/radio/intercom{ pixel_y = -30 @@ -53849,19 +53706,21 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"grC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, +"grh" = ( +/obj/structure/lattice, +/obj/item/stack/cable_coil/red, /turf/open/space, -/area/solars/port/fore) +/area/space/nearstation) +"grC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "grX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible{ dir = 6 @@ -54022,6 +53881,36 @@ /obj/effect/spawner/lootdrop/techstorage/engineering, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"gwC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison/upper) +"gwI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/door/airlock/grunge{ + name = "Permanent Cell 4"; + wiretypepath = /datum/wires/airlock/security + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "gwR" = ( /obj/machinery/camera{ c_tag = "Teleporter Room"; @@ -54102,6 +53991,15 @@ }, /turf/open/floor/plasteel, /area/cargo/office) +"gyf" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "gyh" = ( /turf/closed/wall, /area/cargo/warehouse) @@ -54160,6 +54058,10 @@ }, /turf/open/floor/plating, /area/service/chapel/main) +"gzW" = ( +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) "gzX" = ( /obj/effect/spawner/structure/window, /obj/machinery/door/poddoor/preopen{ @@ -54446,6 +54348,11 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/engine/air, /area/engineering/atmos) +"gIi" = ( +/obj/structure/lattice, +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "gJm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -54927,6 +54834,16 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/main) +"haD" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hbh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -55202,6 +55119,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/construction/storage_wing) +"hlO" = ( +/obj/structure/table/reinforced, +/obj/structure/reagent_dispensers/servingdish, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "hlQ" = ( /obj/item/folder/white{ pixel_x = 4; @@ -55225,6 +55147,22 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"hma" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hmh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -55454,6 +55392,20 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"hsr" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "hsv" = ( /obj/machinery/light/small{ dir = 1 @@ -55577,6 +55529,16 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/commons/dorms) +"hwd" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "hwv" = ( /obj/machinery/requests_console{ department = "Engineering"; @@ -55653,13 +55615,12 @@ /turf/closed/wall, /area/commons/toilet/auxiliary) "hyP" = ( -/obj/machinery/door/airlock/external{ - name = "Escape Pod Two" +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/security/prison) "hyV" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -55720,6 +55681,19 @@ }, /turf/open/floor/plasteel/grimy, /area/service/chapel/office) +"hzP" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hzS" = ( /obj/machinery/door/poddoor{ id = "Secure Storage"; @@ -55865,6 +55839,25 @@ }, /turf/open/floor/plasteel, /area/cargo/qm) +"hDB" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -24; + pixel_y = 24; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/prison) "hEm" = ( /obj/item/taperecorder, /obj/item/cartridge/lawyer, @@ -55973,6 +55966,9 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/engineering/gravity_generator) +"hGz" = ( +/turf/open/floor/padded, +/area/security/prison) "hGX" = ( /turf/open/floor/engine/co2, /area/engineering/atmos) @@ -56059,6 +56055,13 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"hKk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "hKm" = ( /obj/item/folder/white{ pixel_x = 4; @@ -56500,6 +56503,12 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/break_room) +"hXi" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hXr" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -56557,6 +56566,19 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"hXW" = ( +/obj/structure/chair/stool, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/brig) "hYa" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -56613,6 +56635,15 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"hZd" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "hZe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -56764,6 +56795,12 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) +"iei" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "ieA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -56839,6 +56876,10 @@ }, /turf/open/floor/plating/airless, /area/solars/starboard/aft) +"ihO" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/prison) "iiu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -56892,6 +56933,13 @@ dir = 5 }, /area/service/kitchen) +"ijq" = ( +/obj/machinery/cryopod{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "ijr" = ( /turf/closed/wall, /area/ai_monitored/command/storage/eva) @@ -56922,6 +56970,14 @@ }, /turf/open/floor/plasteel, /area/command/heads_quarters/ce) +"ikj" = ( +/obj/machinery/light/small{ + dir = 4; + light_color = "#d8b1b1" + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/security/execution/education) "ikm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -57165,6 +57221,21 @@ }, /turf/open/floor/carpet, /area/command/heads_quarters/hop) +"itk" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "itH" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/tile/blue{ @@ -57410,6 +57481,17 @@ /obj/machinery/space_heater, /turf/open/floor/plasteel/dark, /area/engineering/atmos) +"iyp" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "iyy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -57463,6 +57545,9 @@ }, /turf/open/floor/wood, /area/command/heads_quarters/captain/private) +"izT" = ( +/turf/closed/wall/r_wall, +/area/security/prison/upper) "izZ" = ( /turf/open/floor/engine/n2o, /area/engineering/atmos) @@ -57516,10 +57601,31 @@ }, /turf/open/floor/engine, /area/engineering/main) +"iBL" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "iCn" = ( -/obj/machinery/vr_sleeper, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/structure/rack, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/prison"; + dir = 4; + name = "Prison Central Maintenance APC"; + pixel_x = 24 + }, +/obj/effect/spawner/lootdrop/prison_contraband, +/turf/open/floor/plating, +/area/maintenance/prison) "iDz" = ( /obj/structure/window/reinforced{ dir = 1; @@ -57991,6 +58097,18 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/plasteel, /area/cargo/warehouse) +"iRC" = ( +/obj/machinery/door/airlock/medical/glass{ + name = "Prison Forestry" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "iSt" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -58104,6 +58222,13 @@ /obj/structure/barricade/wooden, /turf/open/floor/plating, /area/commons/fitness/pool) +"iUN" = ( +/obj/machinery/shower{ + dir = 8; + pixel_y = -4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "iUY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/effect/turf_decal/tile/bar, @@ -58282,6 +58407,18 @@ }, /turf/open/floor/wood, /area/service/theater) +"jbJ" = ( +/obj/structure/table/reinforced, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jbZ" = ( /obj/machinery/light_switch{ pixel_x = 27 @@ -58325,6 +58462,19 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"jde" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solars/port/fore) "jdJ" = ( /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ dir = 1 @@ -58446,15 +58596,12 @@ /turf/closed/wall/r_wall, /area/command/teleporter) "jhu" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permahydro"; - name = "Recreation Module" - }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/structure/closet/crate/trashcart, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/item/trash/chips, +/obj/item/trash/candy, +/turf/open/floor/plating, +/area/maintenance/prison) "jhw" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -58725,6 +58872,17 @@ }, /turf/open/floor/plasteel/dark, /area/commons/fitness/recreation) +"jpk" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jpq" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 10 @@ -58807,6 +58965,25 @@ /obj/item/clothing/mask/cigarette/cigar, /turf/open/floor/wood, /area/service/bar) +"jsO" = ( +/obj/structure/closet/crate, +/obj/item/reagent_containers/glass/bowl, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/reagent_containers/glass/bowl, +/obj/item/storage/box/drinkingglasses, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/bag/tray/cafeteria, +/obj/item/storage/box/drinkingglasses, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jtn" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/poddoor/preopen{ @@ -58853,6 +59030,19 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"jtG" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jtI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58968,6 +59158,11 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/main) +"jxe" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jxm" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, @@ -59334,6 +59529,11 @@ }, /turf/closed/wall, /area/commons/storage/art) +"jIF" = ( +/obj/machinery/plate_press, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jIS" = ( /obj/machinery/vending/autodrobe, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -59341,6 +59541,16 @@ }, /turf/open/floor/wood, /area/service/theater) +"jIU" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "jJw" = ( /obj/structure/sign/map/left{ desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; @@ -59870,6 +60080,39 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/engineering/main) +"jVo" = ( +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/obj/machinery/power/apc{ + areastring = "/area/security/prison/cells"; + damage_deflection = 21; + desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage."; + dir = 8; + name = "Armored Upper Prison APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"jVK" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "jVR" = ( /obj/structure/cable{ icon_state = "4-8" @@ -59955,6 +60198,13 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"kaM" = ( +/obj/structure/table, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/rice, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "kbg" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -60049,6 +60299,18 @@ "ker" = ( /turf/closed/wall, /area/service/chapel/office) +"keE" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "keY" = ( /obj/structure/table, /obj/item/folder/red, @@ -60109,11 +60371,6 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plasteel, /area/cargo/storage) -"kfT" = ( -/obj/item/stack/cable_coil, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "kgv" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "kitchen"; @@ -60278,6 +60535,19 @@ /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, /area/service/hydroponics/garden) +"kkC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solars/port/fore) "kkR" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock{ @@ -60326,6 +60596,21 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"kmQ" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green, +/obj/machinery/camera{ + c_tag = "Prison Forestry"; + dir = 8; + network = list("ss13","prison") + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "kmT" = ( /obj/structure/table/reinforced, /obj/machinery/computer/security/telescreen/rd, @@ -60555,6 +60840,16 @@ }, /turf/open/floor/carpet, /area/command/heads_quarters/hop) +"kwe" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison) "kwq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -60660,6 +60955,19 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"kyV" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/plating, +/area/security/prison) +"kze" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "kzn" = ( /obj/machinery/door/airlock/external{ name = "Departure Lounge Airlock" @@ -60836,6 +61144,16 @@ }, /turf/open/floor/wood, /area/service/theater) +"kCX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space, +/area/solars/port/fore) "kDc" = ( /obj/machinery/reagentgrinder, /obj/structure/table/wood, @@ -60992,6 +61310,11 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) +"kGI" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/drinkingglass, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "kGY" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -61132,6 +61455,11 @@ }, /turf/open/floor/carpet, /area/service/theater) +"kKH" = ( +/turf/open/floor/plating/airless{ + icon_state = "panelscorched" + }, +/area/space/nearstation) "kKR" = ( /obj/structure/window/reinforced, /obj/effect/turf_decal/tile/blue{ @@ -61309,6 +61637,30 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"kQr" = ( +/obj/machinery/camera{ + c_tag = "Prison Cell Block 2"; + dir = 4; + network = list("ss13","prison") + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "kQJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 @@ -61338,10 +61690,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/port) -"kQW" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "kRE" = ( /obj/machinery/power/apc{ areastring = "/area/ai_monitored/turret_protected/ai"; @@ -61511,6 +61859,30 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, /area/command/bridge) +"kUL" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"kUN" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "kUS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 @@ -61535,6 +61907,16 @@ }, /turf/open/floor/carpet, /area/service/chapel/main) +"kVM" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "kVZ" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -61555,13 +61937,6 @@ /obj/machinery/vending/snack/random, /turf/open/floor/plasteel/dark, /area/command/bridge) -"kWh" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "kWW" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -61939,6 +62314,14 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"lha" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/grass, +/area/security/prison/upper) "lhH" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -62100,6 +62483,28 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) +"llF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 6 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"llY" = ( +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "lmb" = ( /obj/machinery/power/port_gen/pacman, /obj/structure/cable/yellow, @@ -62414,6 +62819,47 @@ }, /turf/open/floor/plasteel, /area/cargo/sorting) +"lxV" = ( +/obj/structure/table, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 10 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_x = -6; + pixel_y = -8 + }, +/obj/item/clothing/under/rank/prisoner{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/prison) "lyF" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -62510,6 +62956,11 @@ }, /turf/open/floor/plasteel, /area/security/checkpoint/supply) +"lAA" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "lAF" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -62671,6 +63122,23 @@ /obj/machinery/vending/clothing, /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) +"lFW" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "lFY" = ( /obj/machinery/door/airlock/highsecurity{ name = "Gravity Generator Room"; @@ -62948,13 +63416,6 @@ }, /turf/open/floor/plating, /area/command/gateway) -"lPr" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/tracker, -/turf/open/floor/plating/airless, -/area/solars/port/fore) "lPE" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -62998,6 +63459,15 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"lQK" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/libraryconsole/bookmanagement, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "lQV" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -63063,6 +63533,13 @@ /obj/item/toy/poolnoodle/blue, /turf/open/floor/plating, /area/commons/fitness/pool) +"lSH" = ( +/obj/docking_port/stationary/random{ + id = "pod_2_lavaland"; + name = "lavaland" + }, +/turf/open/space, +/area/space) "lTr" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -63095,6 +63572,11 @@ }, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) +"lUk" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/security/prison/cells) "lUn" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63346,6 +63828,10 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/service/lawoffice) +"mak" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "maE" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 @@ -63647,6 +64133,26 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/engineering/gravity_generator) +"mgT" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) +"mhG" = ( +/obj/structure/sink{ + pixel_y = 29 + }, +/turf/open/floor/plating, +/area/maintenance/prison) +"mhW" = ( +/obj/item/stack/rods, +/turf/open/space/basic, +/area/space/nearstation) "mhX" = ( /obj/structure/table, /obj/item/weldingtool, @@ -63682,6 +64188,15 @@ icon_state = "wood-broken3" }, /area/command/corporate_showroom) +"mjl" = ( +/obj/machinery/vending/cola/red, +/obj/machinery/camera{ + c_tag = "Prison Cafeteria"; + dir = 8; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "mjp" = ( /obj/machinery/light, /obj/machinery/camera{ @@ -63780,6 +64295,15 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/commons/fitness/recreation) +"mlV" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mmy" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -63853,6 +64377,20 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"mpv" = ( +/obj/machinery/computer/security/telescreen/interrogation{ + name = "isolation room monitor"; + network = list("isolation"); + pixel_y = 31 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/prison) "mpx" = ( /obj/machinery/light{ dir = 4 @@ -64050,6 +64588,10 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"mud" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/solars/port/fore) "muJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -64069,9 +64611,22 @@ }, /turf/closed/wall, /area/hallway/secondary/service) +"mvI" = ( +/obj/machinery/computer/arcade/battle{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mvN" = ( /turf/closed/wall, /area/construction/storage_wing) +"mvS" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "mvY" = ( /obj/structure/window/reinforced{ dir = 4 @@ -64181,6 +64736,15 @@ }, /turf/open/floor/plasteel, /area/security/office) +"mxT" = ( +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/structure/closet/crate, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/obj/item/stack/license_plates/empty/fifty, +/turf/open/floor/plating, +/area/security/prison/upper) "myk" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -64312,6 +64876,19 @@ "mBW" = ( /turf/open/floor/plasteel, /area/commons/locker) +"mBZ" = ( +/obj/machinery/vr_sleeper{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mCa" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue, @@ -64432,6 +65009,11 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"mFa" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/security/prison) "mFr" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, @@ -64542,6 +65124,25 @@ }, /turf/open/space, /area/space/nearstation) +"mIR" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "mIW" = ( /obj/machinery/computer/arcade, /obj/machinery/airalarm{ @@ -64634,13 +65235,12 @@ "mLk" = ( /turf/closed/wall, /area/command/heads_quarters/captain/private) -"mLH" = ( -/obj/structure/cable{ - icon_state = "0-2" +"mMf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) +/turf/open/floor/plating, +/area/maintenance/port/fore) "mMn" = ( /turf/open/floor/plasteel, /area/engineering/atmos) @@ -64707,6 +65307,16 @@ }, /turf/open/floor/carpet, /area/service/chapel/main) +"mOH" = ( +/obj/structure/table, +/obj/item/storage/dice, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/item/instrument/piano_synth, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mPm" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -64742,6 +65352,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/cargo/storage) +"mQt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "mQW" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64855,6 +65472,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/service/library) +"mUE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "mUZ" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -65130,6 +65753,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/ai_monitored/command/storage/eva) +"ngt" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/space/nearstation) "ngZ" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -65158,6 +65785,14 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) +"nhI" = ( +/obj/machinery/light/small{ + brightness = 3; + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/security/execution/education) "nhL" = ( /obj/machinery/airalarm{ pixel_y = 28 @@ -65295,6 +65930,22 @@ }, /turf/open/space, /area/solars/starboard/aft) +"nlq" = ( +/obj/structure/closet/secure_closet/brig, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot_white, +/turf/open/floor/plasteel/dark, +/area/security/prison) "nlr" = ( /obj/structure/chair/office/dark{ dir = 4 @@ -65344,15 +65995,11 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) "nmO" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/solar{ - id = "foreport"; - name = "Fore-Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port/fore) +/obj/machinery/hydroponics/soil, +/obj/item/cultivator, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/security/prison/upper) "nnB" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -65379,6 +66026,19 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"nnO" = ( +/obj/structure/bed, +/obj/item/clothing/suit/straight_jacket, +/obj/item/clothing/mask/muzzle, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/prison) "noG" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -65417,6 +66077,12 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /turf/open/floor/plasteel, /area/engineering/atmos) +"npY" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "nqx" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/machinery/light_switch{ @@ -65478,6 +66144,16 @@ }, /turf/open/floor/plasteel, /area/commons/toilet/auxiliary) +"nsg" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port/fore) "nsA" = ( /mob/living/simple_animal/cow{ name = "Betsy"; @@ -65631,6 +66307,13 @@ }, /turf/open/floor/plating, /area/cargo/sorting) +"nAj" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "nAl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/lattice/catwalk, @@ -65702,6 +66385,22 @@ "nDn" = ( /turf/closed/wall/r_wall, /area/command/corporate_showroom) +"nEa" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "nEw" = ( /obj/machinery/power/terminal{ dir = 1 @@ -65724,6 +66423,10 @@ /obj/machinery/bookbinder, /turf/open/floor/wood, /area/service/library) +"nEC" = ( +/obj/effect/spawner/structure/window, +/turf/open/floor/plating, +/area/security/prison/upper) "nFz" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -65737,6 +66440,10 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"nFN" = ( +/obj/machinery/light, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "nFS" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/stripes/line{ @@ -65838,6 +66545,17 @@ }, /turf/open/floor/plasteel, /area/service/hydroponics/garden) +"nJo" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "nJr" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, @@ -65926,6 +66644,16 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"nLC" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "nLQ" = ( /obj/structure/cable{ icon_state = "1-8" @@ -65958,6 +66686,21 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/engineering/main) +"nNO" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "nOm" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -66018,6 +66761,14 @@ dir = 5 }, /area/service/kitchen) +"nPH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/structure/cable/yellow, +/turf/open/floor/plating, +/area/security/prison/upper) "nPJ" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -66267,6 +67018,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"nWG" = ( +/obj/machinery/hydroponics/soil, +/obj/item/shovel/spade, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/security/prison/upper) "nWX" = ( /obj/machinery/shower{ dir = 8 @@ -66508,6 +67265,13 @@ }, /turf/open/floor/plating, /area/construction/storage_wing) +"oaH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "oaZ" = ( /obj/effect/turf_decal/tile/green{ dir = 1 @@ -66780,12 +67544,35 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/cargo/storage) +"ofK" = ( +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) "ogf" = ( /obj/structure/table/wood, /obj/item/stamp/captain, /obj/machinery/computer/security/wooden_tv, /turf/open/floor/wood, /area/command/heads_quarters/captain/private) +"ohf" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "ohj" = ( /obj/item/integrated_electronics/analyzer, /obj/item/integrated_electronics/debugger, @@ -66825,6 +67612,17 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"ojh" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "ojs" = ( /obj/structure/table/wood, /obj/machinery/newscaster/security_unit{ @@ -67082,6 +67880,20 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel/white, /area/command/heads_quarters/rd) +"oqC" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/upper) +"oqD" = ( +/obj/machinery/cryopod{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "oqK" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -67229,10 +68041,29 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"ovd" = ( +/obj/machinery/light/small{ + dir = 1; + light_color = "#ffc1c1" + }, +/turf/open/floor/padded, +/area/security/prison) "ovB" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/commons/storage/primary) +"ovU" = ( +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/obj/machinery/power/apc{ + areastring = "/area/maintenance/prison/starboard"; + dir = 4; + name = "Prison Wing APC"; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison) "owz" = ( /obj/structure/chair{ dir = 1 @@ -67497,6 +68328,14 @@ }, /turf/open/floor/plating, /area/maintenance/starboard) +"oEN" = ( +/obj/machinery/camera{ + c_tag = "Prison Isolation Cell"; + dir = 8; + network = list("ss13","prison","isolation") + }, +/turf/open/floor/padded, +/area/security/prison) "oFv" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Gas to Cold Loop" @@ -67532,6 +68371,15 @@ }, /turf/open/floor/plasteel, /area/security/office) +"oGG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "permacells1"; + name = "Privacy Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/prison/cells) "oHW" = ( /obj/machinery/portable_atmospherics/canister/air, /obj/effect/turf_decal/bot, @@ -67585,6 +68433,22 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"oKe" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "oKf" = ( /obj/item/wrench, /obj/item/clothing/suit/apron, @@ -67601,6 +68465,25 @@ /obj/machinery/holopad/secure, /turf/open/floor/plasteel/dark, /area/ai_monitored/turret_protected/aisat/foyer) +"oKu" = ( +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"oKD" = ( +/obj/structure/lattice, +/obj/structure/sign/warning/electricshock{ + pixel_y = -32 + }, +/turf/open/space/basic, +/area/space/nearstation) "oKY" = ( /obj/machinery/light/small{ dir = 4 @@ -67984,6 +68867,25 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/cargo/storage) +"oUR" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/chair/stool, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"oVt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) "oVF" = ( /obj/structure/window/reinforced{ dir = 1 @@ -68313,6 +69215,11 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/freezer, /area/commons/toilet/restrooms) +"pdH" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/grass, +/area/security/prison/upper) "pdZ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -68692,6 +69599,16 @@ /obj/machinery/light/small, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"png" = ( +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "1" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "pnA" = ( /obj/machinery/light_switch{ pixel_x = 28 @@ -68730,6 +69647,16 @@ /obj/machinery/vending/cigarette, /turf/open/floor/carpet, /area/service/bar) +"poR" = ( +/obj/machinery/computer/cryopod{ + pixel_y = 26 + }, +/obj/effect/turf_decal/loading_area{ + dir = 4; + pixel_x = -3 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "poT" = ( /obj/structure/cable/yellow{ icon_state = "0-2" @@ -68783,6 +69710,33 @@ }, /turf/open/floor/plasteel, /area/commons/storage/primary) +"pqv" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/closet/crate/trashcart/laundry, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/item/clothing/under/rank/prisoner/skirt, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/obj/item/clothing/shoes/sneakers/orange{ + pixel_y = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "pqG" = ( /obj/structure/chair{ dir = 4 @@ -68934,6 +69888,14 @@ }, /turf/open/floor/wood, /area/command/heads_quarters/hop) +"pvy" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" + }, +/turf/open/floor/plating, +/area/security/brig) "pvA" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -69035,6 +69997,16 @@ dir = 1 }, /area/engineering/atmos) +"pxQ" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "pxS" = ( /obj/machinery/light/small, /obj/machinery/libraryscanner, @@ -69108,6 +70080,13 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"pzy" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "pzF" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -69149,6 +70128,19 @@ }, /turf/open/floor/engine/vacuum, /area/engineering/atmos) +"pAw" = ( +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "pAA" = ( /obj/item/flashlight/lamp, /obj/machinery/newscaster{ @@ -69215,6 +70207,19 @@ dir = 1 }, /area/command/gateway) +"pCQ" = ( +/obj/machinery/computer/arcade/minesweeper{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"pCS" = ( +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel, +/area/security/prison/upper) "pCV" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -69455,6 +70460,37 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"pJv" = ( +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/prison/cells) +"pJX" = ( +/obj/structure/table, +/obj/item/storage/box/hug{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/razor{ + pixel_x = -8; + pixel_y = 3 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"pKa" = ( +/obj/structure/lattice, +/obj/item/stack/rods{ + amount = 25 + }, +/turf/open/space/basic, +/area/space/nearstation) "pKe" = ( /obj/structure/cable{ icon_state = "0-2" @@ -69793,6 +70829,16 @@ }, /turf/open/floor/wood, /area/service/bar) +"pUL" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs, +/obj/item/assembly/flash/handheld, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "pUZ" = ( /obj/structure/window/reinforced, /obj/machinery/computer/atmos_control/tank/oxygen_tank{ @@ -70191,6 +71237,25 @@ }, /turf/open/floor/plasteel/dark, /area/commons/fitness/recreation) +"qhO" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/paper/guides/jobs/hydroponics, +/obj/item/seeds/onion, +/obj/item/seeds/garlic, +/obj/item/seeds/potato, +/obj/item/seeds/tomato, +/obj/item/seeds/carrot, +/obj/item/seeds/grass, +/obj/item/seeds/ambrosia, +/obj/item/seeds/wheat, +/obj/item/seeds/pumpkin, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "qin" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -70205,6 +71270,22 @@ }, /turf/open/floor/plating, /area/command/heads_quarters/hos) +"qiz" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Prison Laundry"; + dir = 8; + network = list("ss13","prison") + }, +/obj/structure/table, +/obj/structure/bedsheetbin, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "qiA" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -70311,6 +71392,12 @@ }, /turf/open/floor/plasteel, /area/construction/storage_wing) +"qle" = ( +/obj/structure/sign/warning/electricshock{ + pixel_x = 32 + }, +/turf/open/space/basic, +/area/space) "qlI" = ( /obj/structure/table/glass, /obj/item/lightreplacer{ @@ -70408,6 +71495,13 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"qmP" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/space/basic, +/area/solars/port/fore) "qnv" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable/yellow{ @@ -70559,6 +71653,19 @@ }, /turf/open/floor/plasteel, /area/science/mixing) +"qqj" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "qqK" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -70587,6 +71694,21 @@ "qrc" = ( /turf/open/floor/plasteel/chapel, /area/service/chapel/main) +"qrs" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green, +/turf/open/floor/plasteel, +/area/security/prison/upper) "qrH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -70999,6 +72121,32 @@ }, /turf/open/floor/plasteel/white, /area/command/heads_quarters/rd) +"qEk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 4; + name = "Prisoner Chute" + }, +/obj/structure/plasticflaps/opaque{ + name = "Prisoner Transfer" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"qES" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Visitation" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "qFr" = ( /obj/structure/toilet/secret/low_loot{ pixel_y = 13 @@ -71013,6 +72161,9 @@ }, /turf/open/floor/plasteel/white, /area/command/heads_quarters/captain/private) +"qFN" = ( +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "qGg" = ( /obj/structure/sink{ dir = 8; @@ -71121,6 +72272,11 @@ }, /turf/open/floor/plasteel, /area/engineering/gravity_generator) +"qIB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "qID" = ( /obj/structure/sign/warning/securearea, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -71196,6 +72352,21 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/cargo/storage) +"qKq" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "qKC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/white, @@ -71341,6 +72512,23 @@ }, /turf/open/space, /area/space/nearstation) +"qRZ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prison Sanitarium"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "qSc" = ( /obj/machinery/vr_sleeper, /obj/effect/turf_decal/tile/neutral{ @@ -71403,6 +72591,27 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/command/teleporter) +"qTc" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"qTq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "qTB" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -71447,6 +72656,14 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"qTV" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark/side{ + dir = 1 + }, +/area/security/prison/cells) "qTW" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, @@ -71461,6 +72678,20 @@ dir = 1 }, /area/engineering/atmos) +"qUm" = ( +/obj/structure/bed/roller, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/machinery/iv_drip, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/security/prison) "qUy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -71472,6 +72703,15 @@ /obj/structure/sign/warning/nosmoking, /turf/closed/wall/r_wall, /area/engineering/main) +"qUX" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "qUY" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law{ @@ -71548,6 +72788,13 @@ dir = 1 }, /area/command/gateway) +"qWm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/freezer, +/area/security/prison/upper) "qWu" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -71578,6 +72825,28 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) +"qXt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) +"qXS" = ( +/obj/effect/landmark/carpspawn, +/turf/open/space/basic, +/area/space/station_ruins) "qXX" = ( /obj/effect/landmark/start/lawyer, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -71690,12 +72959,6 @@ }, /turf/open/floor/plasteel/dark, /area/command/teleporter) -"ram" = ( -/obj/machinery/computer/arcade{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) "rbc" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/atmos/oxygen_input{ dir = 1 @@ -72015,6 +73278,13 @@ /obj/machinery/atmospherics/pipe/layer_manifold, /turf/open/floor/plating, /area/engineering/atmos) +"rif" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "rii" = ( /obj/machinery/vending/tool, /obj/effect/turf_decal/tile/brown{ @@ -72167,13 +73437,6 @@ }, /turf/open/floor/plasteel, /area/security/office) -"roa" = ( -/obj/structure/chair/stool, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) "rom" = ( /obj/structure/bed/roller, /obj/machinery/vending/wallmed{ @@ -72219,6 +73482,20 @@ "roz" = ( /turf/open/floor/plasteel/dark, /area/engineering/main) +"rpQ" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/open/space/basic, +/area/space/nearstation) +"rqn" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "rqx" = ( /obj/machinery/airalarm{ dir = 8; @@ -72301,6 +73578,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/carpet, /area/command/heads_quarters/hos) +"rub" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "ruc" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -72347,6 +73631,28 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"rvO" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/toilet{ + dir = 4 + }, +/obj/structure/window/reinforced/tinted{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "rvU" = ( /obj/machinery/power/apc/highcap/ten_k{ areastring = "/area/engineering/main"; @@ -72553,6 +73859,22 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"rCq" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "rCx" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ @@ -72561,6 +73883,16 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/wood, /area/service/lawoffice) +"rCF" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Prison Common Room" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "rCH" = ( /obj/machinery/door/airlock{ name = "Kitchen Cold Room"; @@ -72729,6 +74061,26 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"rIe" = ( +/obj/structure/table, +/obj/structure/window, +/obj/item/reagent_containers/food/condiment/saltshaker{ + layer = 3.1; + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table."; + pixel_x = -8; + pixel_y = 2 + }, +/obj/item/reagent_containers/food/condiment/enzyme{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/book/manual/chef_recipes, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "rIw" = ( /obj/machinery/hydroponics/constructable, /obj/machinery/firealarm{ @@ -72814,6 +74166,18 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/command/nuke_storage) +"rLx" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) "rLB" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -72863,16 +74227,10 @@ /turf/open/floor/plasteel, /area/commons/locker) "rLV" = ( -/obj/structure/table, -/obj/item/folder, -/obj/item/paper/guides/jobs/hydroponics, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/item/pen, -/obj/item/storage/crayons, +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/prison/upper) "rMx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/neutral{ @@ -73046,6 +74404,16 @@ }, /turf/open/floor/plasteel/white, /area/medical/virology) +"rRB" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison/cells) "rRZ" = ( /obj/item/folder, /obj/item/folder, @@ -73057,6 +74425,17 @@ /obj/item/tape, /turf/open/floor/wood, /area/service/library) +"rSi" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "rSx" = ( /obj/structure/cable{ icon_state = "1-2" @@ -73265,6 +74644,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall, /area/command/bridge) +"rYP" = ( +/obj/machinery/door/window/southleft{ + name = "Permabrig Kitchen" + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "rZb" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/tile/brown, @@ -73333,6 +74718,22 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"sbg" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "sbs" = ( /obj/structure/closet/secure_closet/personal/cabinet, /obj/machinery/airalarm{ @@ -73418,6 +74819,21 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/office) +"sck" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"scs" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/execution/education) "scx" = ( /obj/structure/plasticflaps, /obj/machinery/conveyor{ @@ -73661,6 +75077,13 @@ /obj/item/clothing/under/suit/burgundy, /turf/open/floor/carpet, /area/commons/dorms) +"sja" = ( +/obj/item/toy/plush/beeplushie{ + desc = "Maybe hugging this will make you feel better about yourself."; + name = "Therabee" + }, +/turf/open/floor/padded, +/area/security/prison) "sjK" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -73896,13 +75319,6 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) -"spA" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "spG" = ( /obj/structure/closet/crate/rcd{ pixel_y = 4 @@ -73972,6 +75388,16 @@ luminosity = 2 }, /area/ai_monitored/command/nuke_storage) +"ssE" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solars/port/fore) "stk" = ( /obj/machinery/camera{ c_tag = "Captain's Office"; @@ -74017,6 +75443,39 @@ }, /turf/open/floor/plasteel, /area/construction/storage_wing) +"suZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + id_tag = "prisonereducation"; + name = "Prisoner Education Chamber"; + req_access_txt = "3" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"svu" = ( +/obj/structure/table, +/obj/item/folder, +/obj/item/pen, +/obj/effect/decal/cleanable/dirt, +/obj/item/camera, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "swu" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -74049,6 +75508,28 @@ }, /turf/open/floor/plasteel, /area/command/heads_quarters/hop) +"swH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/landmark/start/prisoner, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "permacells4"; + name = "Privacy Shutters"; + pixel_y = 25 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "swK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/blue{ @@ -74096,6 +75577,48 @@ }, /turf/open/floor/wood, /area/service/bar) +"syL" = ( +/obj/machinery/door/window/brigdoor{ + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Justice Chamber"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) +"szt" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "szz" = ( /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, @@ -74273,15 +75796,14 @@ /turf/open/floor/plating, /area/maintenance/starboard/aft) "sFR" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/item/plant_analyzer, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) +/turf/open/floor/grass, +/area/security/prison/upper) "sGh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -74387,6 +75909,10 @@ "sIL" = ( /turf/open/floor/plasteel/dark, /area/command/bridge) +"sIN" = ( +/obj/structure/bookcase/random, +/turf/open/floor/plasteel, +/area/security/prison/upper) "sIP" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -74486,6 +76012,9 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"sMe" = ( +/turf/closed/wall, +/area/security/prison/upper) "sMk" = ( /obj/machinery/power/apc{ areastring = "/area/service/janitor"; @@ -74505,6 +76034,16 @@ "sMN" = ( /turf/closed/wall/r_wall, /area/commons/storage/primary) +"sMT" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "sNj" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -74711,6 +76250,12 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) +"sUd" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "sUI" = ( /obj/structure/table, /obj/machinery/chem_dispenser/drinks/beer, @@ -74869,13 +76414,6 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/port) -"sZQ" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "sZV" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, @@ -74924,16 +76462,6 @@ /obj/structure/table/wood, /turf/open/floor/wood, /area/commons/vacant_room/office) -"tbc" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "tbN" = ( /obj/machinery/status_display/ai{ pixel_y = 32 @@ -75769,6 +77297,19 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/aisat/exterior) +"tDM" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "tDZ" = ( /obj/machinery/computer/cryopod{ dir = 4; @@ -75974,6 +77515,22 @@ }, /turf/open/floor/plating, /area/maintenance/department/science/xenobiology) +"tJI" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" + }, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "tJQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 @@ -76300,6 +77857,13 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"tSe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/space/basic, +/area/solars/port/fore) "tTX" = ( /obj/structure/cable/yellow{ icon_state = "1-4" @@ -76545,6 +78109,15 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"uam" = ( +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "uar" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -76569,6 +78142,25 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"ubD" = ( +/obj/structure/bed/roller, +/obj/machinery/camera{ + c_tag = "Prison Hallway Fore"; + dir = 2; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel, +/area/security/prison) +"ubH" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "ubJ" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable/yellow{ @@ -76843,6 +78435,14 @@ }, /turf/open/floor/plasteel/dark, /area/commons/dorms) +"uiA" = ( +/obj/machinery/door/airlock/security{ + id_tag = "IsolationCell"; + name = "Isolation Cell"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "uiF" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -76899,12 +78499,29 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) +"ulp" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "ulG" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/table, /obj/item/flashlight, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"ulI" = ( +/obj/machinery/biogenerator, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) +"ulQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "umv" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -77013,6 +78630,15 @@ }, /turf/open/floor/plasteel/airless/solarpanel, /area/solars/starboard/fore) +"upD" = ( +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "upN" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -77033,6 +78659,32 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"upX" = ( +/obj/machinery/door/poddoor/shutters/preopen{ + id = "PermaLockdown"; + name = "Lockdown Shutters" + }, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/security/glass{ + id_tag = "permaouter"; + name = "Permabrig Transfer"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "uqh" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -77213,6 +78865,23 @@ }, /turf/open/floor/wood, /area/service/library) +"uvn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Prison Cafeteria" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) +"uvz" = ( +/obj/item/clothing/suit/straight_jacket, +/obj/item/electropack, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/prison) "uvH" = ( /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, @@ -77256,6 +78925,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/construction/storage_wing) +"uxR" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall, +/area/security/prison/upper) "uxT" = ( /obj/machinery/door/window/eastright{ base_state = "left"; @@ -77330,6 +79005,15 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood, /area/service/bar) +"uBA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) "uBW" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable/yellow{ @@ -77633,6 +79317,13 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"uNg" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "uOc" = ( /obj/effect/landmark/start/captain, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -77651,6 +79342,13 @@ }, /turf/open/floor/plasteel, /area/commons/fitness/recreation) +"uOr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "uOv" = ( /obj/structure/sign/directions/evac, /obj/structure/sign/directions/medical{ @@ -77661,6 +79359,10 @@ }, /turf/closed/wall, /area/service/library) +"uOH" = ( +/obj/structure/lattice, +/turf/open/space/basic, +/area/security/execution/education) "uPN" = ( /obj/machinery/light{ dir = 8 @@ -77746,6 +79448,14 @@ }, /turf/open/floor/plating, /area/engineering/gravity_generator) +"uTQ" = ( +/obj/structure/table/reinforced, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "uTS" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -77772,6 +79482,26 @@ }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/ce) +"uUK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison) +"uUN" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "uVj" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/navbeacon{ @@ -77992,6 +79722,18 @@ }, /turf/open/floor/plasteel, /area/command/gateway) +"vbH" = ( +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "vbR" = ( /obj/structure/cable{ icon_state = "4-8" @@ -78098,6 +79840,16 @@ /obj/machinery/suit_storage_unit/hos, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) +"ven" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) "veq" = ( /obj/structure/window/reinforced{ dir = 4 @@ -78309,6 +80061,12 @@ }, /turf/open/floor/plasteel, /area/cargo/miningoffice) +"viX" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "vjq" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -78319,13 +80077,6 @@ /obj/effect/landmark/xmastree, /turf/open/floor/carpet, /area/service/chapel/main) -"vjC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "vjL" = ( /obj/item/paper_bin{ pixel_y = 7 @@ -78347,6 +80098,16 @@ dir = 5 }, /area/command/heads_quarters/rd) +"vjV" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/prison/upper) "vkg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -78365,6 +80126,19 @@ }, /turf/open/floor/plasteel/grimy, /area/service/chapel/office) +"vkq" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "vkY" = ( /obj/machinery/requests_console{ announcementConsole = 1; @@ -78387,30 +80161,9 @@ /turf/open/floor/plasteel/dark, /area/command/bridge) "vla" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/execution/education"; - dir = 1; - name = "Prisoner Education Chamber APC"; - pixel_y = 23 - }, -/obj/structure/cable/yellow{ - icon_state = "0-2" - }, -/obj/structure/closet/secure_closet/injection{ - name = "educational injections"; - pixel_x = 2 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/education) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/cells) "vls" = ( /obj/machinery/door/airlock{ id_tag = "AuxToilet3"; @@ -78639,6 +80392,15 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/atmos) +"vtn" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "vtZ" = ( /obj/structure/cable/yellow{ icon_state = "2-4" @@ -78872,6 +80634,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/carpet, /area/command/heads_quarters/captain/private) +"vCh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space/basic, +/area/solars/port/fore) "vCi" = ( /obj/effect/landmark/start/botanist, /obj/effect/turf_decal/tile/green, @@ -79278,6 +81045,25 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"vRz" = ( +/obj/machinery/button/flasher{ + id = "visitorflash"; + pixel_x = -6; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "visitation"; + name = "Visitation Shutters"; + pixel_x = -6; + pixel_y = 36; + req_access_txt = "2" + }, +/obj/machinery/camera{ + c_tag = "Prison Visitation"; + network = list("ss13","prison") + }, +/turf/open/floor/plasteel, +/area/security/brig) "vSm" = ( /obj/machinery/power/emitter, /turf/open/floor/plating, @@ -79314,6 +81100,24 @@ dir = 5 }, /area/service/kitchen) +"vSH" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"vSL" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "Prison Gate"; + name = "Lockdown Shutters" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "vTo" = ( /obj/structure/cable/yellow{ icon_state = "1-8" @@ -79447,6 +81251,17 @@ }, /turf/open/floor/plating, /area/command/heads_quarters/rd) +"vXi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/stripes/white/line{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/cells) "vXk" = ( /obj/structure/chair{ dir = 4 @@ -79659,6 +81474,24 @@ }, /turf/open/floor/plasteel, /area/service/bar) +"wcj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 8; + name = "Prisoner Outlet" + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "wcl" = ( /obj/structure/chair{ dir = 1 @@ -79811,6 +81644,15 @@ }, /turf/open/floor/plasteel, /area/commons/toilet/auxiliary) +"wgf" = ( +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wgw" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, @@ -80075,6 +81917,13 @@ }, /turf/open/floor/plasteel, /area/command/teleporter) +"wol" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space/basic, +/area/solars/port/fore) "wox" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -80297,6 +82146,12 @@ }, /turf/open/floor/plating, /area/engineering/main) +"wtO" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel, +/area/security/prison) "wtU" = ( /obj/structure/chair/wood/wings{ dir = 8 @@ -80418,13 +82273,15 @@ }, /turf/open/floor/plasteel, /area/commons/dorms) -"wwD" = ( -/obj/structure/cable{ - icon_state = "0-8" +"wwa" = ( +/obj/machinery/door/airlock/grunge{ + name = "Prison Workshop" }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "wxd" = ( /obj/machinery/suit_storage_unit/standard_unit, /obj/structure/extinguisher_cabinet{ @@ -80474,6 +82331,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall, /area/service/chapel/main) +"wyf" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wyt" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue{ @@ -80494,6 +82358,18 @@ /obj/machinery/atmospherics/components/trinary/filter/flipped/critical, /turf/open/floor/engine, /area/engineering/main) +"wzi" = ( +/obj/machinery/camera{ + c_tag = "Prison Common Room"; + dir = 1; + network = list("ss13","prison") + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wzm" = ( /obj/machinery/holopad, /turf/open/floor/plasteel, @@ -80554,6 +82430,10 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/engineering/main) +"wBB" = ( +/obj/structure/chair/stool, +/turf/open/floor/plasteel/dark, +/area/security/prison/cells) "wBE" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /obj/machinery/camera{ @@ -80665,6 +82545,32 @@ }, /turf/open/floor/plasteel/chapel, /area/service/chapel/main) +"wDM" = ( +/obj/structure/closet/crate/bin, +/obj/effect/spawner/lootdrop/prison_contraband, +/obj/item/trash/sosjerky, +/obj/item/trash/boritos, +/obj/item/trash/can, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wDZ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/machinery/button/door{ @@ -80826,6 +82732,16 @@ /obj/structure/sign/warning/securearea, /turf/closed/wall/r_wall, /area/ai_monitored/command/nuke_storage) +"wHw" = ( +/obj/machinery/door/poddoor/shutters{ + id = "visitation"; + name = "Visitation Shutters" + }, +/obj/machinery/door/window/southleft{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "wIf" = ( /obj/effect/landmark/blobstart, /obj/machinery/power/apc{ @@ -80837,6 +82753,9 @@ /obj/structure/cable/yellow, /turf/open/floor/plating, /area/maintenance/central) +"wIu" = ( +/turf/open/floor/plasteel, +/area/security/prison/cells) "wIw" = ( /turf/open/floor/carpet, /area/command/heads_quarters/captain/private) @@ -80899,6 +82818,20 @@ }, /turf/open/floor/plasteel/grimy, /area/security/office) +"wKG" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/space/basic, +/area/solars/port/fore) +"wKX" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) "wKY" = ( /obj/machinery/light_switch{ pixel_y = 28 @@ -80965,6 +82898,19 @@ }, /turf/open/floor/plasteel, /area/cargo/storage) +"wNK" = ( +/obj/machinery/vr_sleeper{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wNL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/disposalpipe/segment, @@ -81279,6 +83225,12 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/carpet, /area/commons/dorms) +"wWN" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "wWO" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -81323,13 +83275,6 @@ }, /turf/open/floor/plating, /area/command/bridge) -"wXA" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel, -/area/security/prison) "wXC" = ( /obj/machinery/light_switch{ pixel_y = 28 @@ -81466,11 +83411,11 @@ /turf/open/floor/plasteel, /area/cargo/storage) "wZC" = ( +/obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/lattice/catwalk, -/turf/open/space, +/turf/open/space/basic, /area/solars/port/fore) "wZK" = ( /obj/structure/table, @@ -81494,6 +83439,13 @@ }, /turf/open/floor/plasteel, /area/commons/locker) +"wZR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/space/basic, +/area/solars/port/fore) "wZX" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -81736,6 +83688,15 @@ }, /turf/open/floor/wood, /area/commons/dorms) +"xhP" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison) "xiO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -81969,6 +83930,21 @@ }, /turf/open/floor/plasteel, /area/engineering/break_room) +"xpx" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "xpy" = ( /obj/effect/landmark/xeno_spawn, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -82141,6 +84117,15 @@ /obj/effect/landmark/carpspawn, /turf/open/space, /area/space/station_ruins) +"xuu" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison/upper) "xuF" = ( /obj/structure/chair/comfy/black, /obj/effect/landmark/start/assistant, @@ -82168,6 +84153,25 @@ }, /turf/open/floor/plating, /area/engineering/gravity_generator) +"xvj" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) +"xvm" = ( +/obj/structure/grille/broken, +/turf/open/floor/plating/airless{ + icon_state = "panelscorched" + }, +/area/space/nearstation) "xwg" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/engineering{ @@ -82190,6 +84194,11 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/storage/tech) +"xwj" = ( +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space/basic, +/area/space/nearstation) "xww" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -82312,6 +84321,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, /area/service/library) +"xAw" = ( +/obj/machinery/seed_extractor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) +"xAI" = ( +/obj/machinery/hydroponics/soil, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/grass, +/area/security/prison/upper) +"xAO" = ( +/turf/open/floor/plasteel, +/area/security/prison/upper) "xAR" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel/white, @@ -82389,6 +84415,15 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"xDA" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "xDD" = ( /obj/machinery/door/airlock{ id_tag = "AuxShower"; @@ -82517,6 +84552,11 @@ /obj/structure/table/wood, /turf/open/floor/carpet, /area/command/corporate_showroom) +"xGl" = ( +/turf/open/floor/plating/airless{ + icon_state = "platingdmg2" + }, +/area/space/nearstation) "xGp" = ( /obj/structure/rack, /obj/item/storage/toolbox/mechanical{ @@ -82650,14 +84690,14 @@ /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "xIi" = ( +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/item/reagent_containers/glass/bottle/ammonia, /obj/structure/cable/yellow{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plating, +/area/maintenance/prison) "xIv" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -82678,6 +84718,25 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/engine, /area/science/xenobiology) +"xJb" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/education) "xJf" = ( /obj/structure/window/reinforced{ dir = 8 @@ -82893,6 +84952,10 @@ /obj/structure/kitchenspike, /turf/open/floor/plasteel/showroomfloor, /area/service/kitchen) +"xOh" = ( +/obj/structure/table, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison/upper) "xOk" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -83124,6 +85187,16 @@ "xUO" = ( /turf/open/space, /area/space/nearstation) +"xUR" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/solar{ + id = "aftstarboard"; + name = "Aft-Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port/fore) "xVh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -83218,6 +85291,13 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) +"xXN" = ( +/obj/effect/spawner/structure/window, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/prison/upper) "xXR" = ( /obj/structure/cable/yellow{ icon_state = "1-2" @@ -83346,6 +85426,22 @@ }, /turf/open/floor/plasteel, /area/security/office) +"yaL" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) "yaS" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -83418,6 +85514,16 @@ }, /turf/open/floor/plating, /area/maintenance/port/aft) +"ydu" = ( +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "ydB" = ( /obj/structure/showcase/machinery/microwave{ dir = 1; @@ -83688,24 +85794,18 @@ }, /turf/open/floor/plasteel, /area/cargo/warehouse) +"ykn" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Prison Common Room" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison/upper) "yko" = ( /obj/structure/table/wood, /obj/item/paicard, /turf/open/floor/wood, /area/service/library) -"ykx" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port/fore) "ykE" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -83739,6 +85839,22 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"ylY" = ( +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison/upper) (1,1,1) = {" oRp @@ -87128,7 +89244,7 @@ oRp oRp oRp oRp -oRp +xyp oRp oRp oRp @@ -94593,17 +96709,17 @@ oRp oRp oRp oRp -xyp -oRp -oRp -oRp -oRp -oRp +aaa oRp oRp oRp oRp oRp +rpQ +xwj +rpQ +rpQ +rpQ oRp oRp oRp @@ -94856,11 +96972,11 @@ oRp oRp oRp oRp +rpQ oRp oRp oRp -oRp -oRp +xwj oRp oRp oRp @@ -95113,11 +97229,11 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp +rpQ +aaf +gcB +aaf +lMJ oRp oRp oRp @@ -95362,33 +97478,33 @@ oRp oRp oRp oRp +xwj +rpQ +xwj +rpQ +rpQ +xGl +xwj +rpQ +lMJ oRp +wKG oRp +rpQ +rpQ +xvm +rpQ +rpQ +rpQ +xvm +anT +xvm +anT oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa +anT +xvm +anT +anT anS anS anS @@ -95619,6 +97735,17 @@ oRp oRp oRp oRp +xvm +oRp +lMJ +oRp +oRp +oRp +oRp +oRp +oRp +qXS +wKG oRp oRp oRp @@ -95626,23 +97753,12 @@ oRp oRp oRp oRp +aaf oRp oRp +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -95876,30 +97992,30 @@ oRp oRp oRp oRp +rpQ +oRp +lMJ +oRp +xUR +xUR +xUR +xUR +xUR +lMJ +fhs +aaf +xUR +xUR +xUR +xUR +xUR +oRp +aaf oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -96122,41 +98238,41 @@ oRp oRp oRp oRp +aaa +aaa +aaa +aaa +aaa oRp oRp oRp oRp oRp oRp +lMJ +aaf +lMJ +aaf +kCX +kkC +kkC +kkC +kkC +vCh +mud +wol +jde +jde +jde +jde +ssE +aaf +aaf +aaf +aaf +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -96379,6 +98495,10 @@ oRp oRp oRp oRp +aaa +aaa +aaa +aaa oRp oRp oRp @@ -96386,34 +98506,30 @@ oRp oRp oRp oRp +rpQ +oRp +lMJ +oRp +nsg +nsg +nsg +nsg +nsg +lMJ +mud +lMJ +nsg +nsg +nsg +nsg +nsg +oRp +aaf oRp oRp +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -xtS -oRp -oRp -oRp -oRp -oRp -oRp +rpQ aaa aaa aaa @@ -96636,41 +98752,41 @@ oRp oRp oRp oRp +aaa +aaa +aaa +aaa +aaa oRp oRp oRp oRp oRp oRp +rpQ +oRp +lMJ +oRp +aEv +aEv +aEv oRp oRp oRp +mud +oRp +aEv oRp oRp +aEv oRp oRp +aaf +aaf +aaf +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp +lMJ aaa aaa aaa @@ -96893,45 +99009,45 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp aaa aaa aaa +aaa +aaa +oRp +oRp +oRp +oRp +oRp +oRp +rpQ +oRp +lMJ +oRp +xUR +xUR +xUR +xUR +xUR +lMJ +mud aaf +xUR +xUR +xUR +xUR +xUR +oRp +aaf +oRp +oRp +xwj +oRp +lMJ +aaa +aaa +aaa +xvm dne dne aip @@ -97150,45 +99266,45 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp aaa aaa aaa +aaa +aaa +oRp +oRp +oRp +oRp +oRp +oRp +rpQ aaf +lMJ +lMJ +kCX +kkC +kkC +kkC +kkC +vCh +mud +wol +jde +jde +jde +jde +ssE +xwj +rpQ +aqB +anT +anT +oRp +anT +aqB +anT +xvm +anT dne aqC arW @@ -97407,27 +99523,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -97437,11 +99532,32 @@ aaa aaa aaa aaa +lMJ +aaa +rpQ +aaa +lMJ +aaa +nsg +nsg +nsg +nsg +nsg +lMJ +mud +lMJ +nsg +nsg +nsg +nsg +nsg aaa aaa aaa aaa +xwj aaa +lMJ aaa aaa aaa @@ -97664,25 +99780,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -97694,11 +99791,30 @@ aaa aaa aaa aaa +xwj +aaa +lMJ +mhW +aaa +aaf +aaf +aaf +lMJ +aaa +mud +aaa +gIi +aaf +aaf +aaf +aaf aaa aaa aaa aaa +rpQ aaa +lMJ aaa aaa aaa @@ -97921,9 +100037,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa aaa aaa aaa @@ -97951,11 +100064,14 @@ aaa aaa aaa aaa +rpQ aaa aaa aaa aaa +rpQ aaa +lMJ aaa aaa aaa @@ -98178,11 +100294,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa aaa aaa aaa @@ -98202,6 +100313,7 @@ aaa aaa aaa aaa +lMJ aaa aaa aaa @@ -98214,10 +100326,14 @@ aaa aaa aaa aaa +lMJ +aaa +rpQ aaa aaa aaa aaa +aaf aqF doJ atq @@ -98435,7 +100551,6 @@ oRp oRp oRp oRp -oRp aaa aaa aaa @@ -98446,16 +100561,8 @@ aaa aaa aaa aaa -aaf aaa -aaa -aaa -aaa -aaf -aaa -aaa -aaa -aaf +lMJ aaa aaa aaa @@ -98469,11 +100576,20 @@ aaa aaa aaa aaa +geU aaa aaa aaa aaa aaa +aaa +lMJ +aaa +lMJ +lMJ +lMJ +lMJ +lMJ aaf aqF doJ @@ -98692,29 +100808,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaj -aag -aag -aag -aai -aag -aag -aag -aaj -aag -aag -aai -aag -aag -aaf aaa aaa aaa @@ -98730,7 +100823,30 @@ aaa aaa aaa aaa -aaf +aaa +aaa +aaa +aaa +mhW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +lMJ +aaa +xwj +aaa +aaa +aaa +aaa aaf aqF doJ @@ -98949,29 +101065,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aac -aaa -aaa -aai -aaa -aaf -aaf -aaf -aaa -aaf -aaf -aaf -aaa -aaf -aaf -aaa -aaa -aag -aaf aaa aaa aaa @@ -98988,6 +101081,29 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +lMJ +aaa +xwj +lMJ +lMJ +lMJ +lMJ aaf aqF doJ @@ -99206,32 +101322,6 @@ oRp oRp oRp oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaj -aaa -nmO -tbc -dDj -aaa -nmO -tbc -dDj -aaa -nmO -tbc -dDj -aaf -aag -aaf -aaa -aaa -aaf aaa aaa aaa @@ -99244,7 +101334,33 @@ aaa aaa aaa aaa -aaf +aaa +aaa +aaa +aaa +aaa +lMJ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +gIi +aaa +aaa +aaa +aaa +lMJ +aaa +lMJ +aaa +aaa +aaa +aaa aaf aqF doJ @@ -99463,42 +101579,42 @@ oRp oRp oRp oRp -oRp aaa aaa aaa aaa aaa aaa -aag -aaf -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaf -aaf -aaf -aaf -aaf -aaf aaa aaa aaa aaa aaa aaa -aaf aaa aaa aaa +mhW +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +xwj +aaa +lMJ +aaa aaa aaa aaa @@ -99720,41 +101836,41 @@ oRp oRp oRp oRp -oRp aaa aaa aaa aaa aaa -aaf -aag -aaf -nmO -ykx +aaa +aaa +aaa +lMJ +aaa +aaa +rpQ +aaa +lMJ +aaa +aaa +aaa +aaa +aaa dDj -aaf -nmO -ykx -dDj -aaf -nmO -ykx -dDj -aaf aaa -aaf +mud +aaa +geU aaa aaa -aaf +aaa +mhW aaa aaa aaa aaa +aqB aaf -aaf -aaf -aaa -aaf +anT aaf aaf aaf @@ -99977,44 +102093,44 @@ oRp oRp oRp oRp -oRp aaa aaa aaa aaa aaa -aaf aaa aaa -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaa -nmO -ykx -dDj -aaf -aaa -aaf aaa aaa -aaf -aaf -aaf aaa aaa -aaf +rpQ aaa -aaf +lMJ +aaa +xUR +xUR +xUR +xUR +xUR +pKa +mud +grh +xUR +xUR +xUR +xUR +xUR +aaa +aaa +aaa +aaa +anT +aaa +anT aaa -aaf aaa aaa -aaf aaa aip dnO @@ -100234,38 +102350,38 @@ oRp oRp oRp oRp -oRp aaa aaa aaa -aaj -aag -aaj aaa aaa -nmO -ykx -dDj aaa -nmO -ykx -dDj aaa -nmO -ykx -dDj -aaf -aaf -aaf -aaf -aaf -aaf aaa +aaa +aaa +aaa +rpQ aaf +lMJ +lMJ +kCX +kkC +kkC +kkC +kkC +vCh +mud +wol +jde +jde +jde +jde +ssE +rpQ +rpQ aaf -aaf -aaf -aaf +aqB ahp aif ahp @@ -100490,38 +102606,38 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aag aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +nsg +nsg +nsg +nsg +nsg aaf -aaa -aaa -aaf -wwD -aaf -aaf -aaf -wwD -aaf -aaa -aaf -wwD -aaf -aaa +wZR aaf +nsg +nsg +nsg +nsg +nsg aaa aaa aaa -aaf -aaa -aaa -aaa -aaa -aaf aaa ahp aig @@ -100747,38 +102863,38 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aai aaa -lPr -wZC -wZC -bID -kQW -kQW -kQW -kfT -kQW -kQW -dSe -kQW -kQW -kQW -mLH -wZC -wZC -wZC -wZC -sZQ +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ aaa aaa aaf +aaa +aaa +aaa +aaa +wKG +aaa aaf -aaf +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa ahq ahq @@ -101004,39 +103120,39 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aag aaa -aaf aaa -aaf -aaf -spA -aaf aaa -aaf -spA -aaf aaa -aaf -spA -aaf +aaa +aaa +aaa +aaa +aaa +xwj +aaa +lMJ +aaa aaa aaf aaa aaa +lMJ aaa -vjC +wKG +aaa +lMJ aaf -aaa aaf -aaa aaf -aaa +lMJ +lMJ +rpQ +rpQ +xwj ahq aih ajd @@ -101261,39 +103377,39 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aai -aaj -aaj -aaa -aaf -nmO -grC -dDj -aaa -nmO -grC -dDj -aaa -nmO -grC -dDj -aaa -aaf aaa aaa aaa -vjC aaa aaa aaa aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +aaa aaf aaa +aaa +lMJ +aaa +qmP +wZC +tSe +aaa +aaf +aaa +lMJ +aaa +lMJ +aaa +aaa ahq aii ajg @@ -101518,8 +103634,6 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa @@ -101528,28 +103642,30 @@ aaa aaa aaa aaa -nmO -grC -dDj -aaf -nmO -grC -dDj -aaa -nmO -grC -dDj -aaa -aaf aaa aaa aaa -vjC +aaa +lMJ +aaa +lMJ aaf aaf aaf aaf aaf +lMJ +aaa +lMJ +aaa +wKG +aaa +aaf +aaa +lMJ +aaa +lMJ +aaa aaa ahq aij @@ -101775,39 +103891,39 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa aaa aaa aaa -aag -aaf -nmO -grC -dDj -aaa -nmO -grC -dDj -aaf -nmO -grC -dDj -aaf -aaf -aaf -aaf -aaf -vjC aaa aaa aaa +aaa +aaa +aaa +xwj +aaa +lMJ +aaa +aaa +aaa +aaa +aaa +lMJ +qle +lMJ +aaa +wKG +aaa aaf -aaf -aaf +aaa +lMJ +aaa +lMJ +aaa +aaa ahq aik anZ @@ -102032,37 +104148,37 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa aaa aaa aaa -aai -aaf -nmO +aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +aaa +nLC grC -dDj -aaf -nmO grC -dDj +vjV +izT +izT aaa -nmO -grC -dDj -aaa -aaf -aaa -aaa -aaa -vjC +wKG aaa aaf aaf +lMJ aaf +lMJ aee bbo bbo @@ -102289,34 +104405,34 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa aaa aaa aaa -aaj aaa +aaa +aaa +aaa +aaa +aaa +rpQ +aaa +lMJ +aaa +nLC +gwC nmO sFR -dDj +lha +nWG +izT aaa -nmO -sFR -dDj -aaa -nmO -sFR -dDj +wKG aaa aaf aaa -aaa -aaa -vjC -aaa aee aee aee @@ -102546,33 +104662,33 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa +xvm +rpQ +rpQ +xwj +rpQ +xwj +rpQ +rpQ +aaf +xGl aaa +lMJ aaa -aaa -aaj +ubH +ulI +vbH +jVK +fOe +jpk +izT aaf -aaa -aaf -aaf -aaa -aaf -aaa -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -aaf -kWh +qmP +wZC +wZC wZC abN aef @@ -102803,31 +104919,31 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aaa -aaa -aaa -aaa -aaf -aai -aag -aai -aag -aaj -aag -aai -aaj +lMJ aaa aaa aaf aaa +lMJ aaa +aaa +aaa +lMJ aaf +lMJ aaa +gec +xAw +wgf +sUd +pCS +jtG +izT +izT +aaf aaa aaf aaa @@ -103060,37 +105176,37 @@ oRp oRp oRp oRp -oRp -oRp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaf -aaa -aaf -aaa -aaa -aaa -aaf +lMJ aaa aaa aaf aaa +lMJ aaa -aaf aaa +aaa +rpQ +aaa +lMJ aaf +izT +qhO +qrs +kmQ +qUX +xvj +pdH +izT +xwj +gzW +gzW +rpQ +lMJ aaf -aaf +lMJ aee bbo bbo @@ -103317,37 +105433,37 @@ oRp oRp oRp oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa aaa aaa aaa +rpQ aaa aaa aaf -aaf -aaf aaa -aaf +izT +hKk +izT +izT +izT +izT +izT +izT +izT +sMe +sMe +sMe +qTc +xvj +pdH +hKk +aaa +xwj aaa aaa +lMJ aaa -aaf -aaf -aaa -aaf -aaa -aaa -aaf -aaf -aaf -aaa -aaf +lMJ aaf aaf aaf @@ -103573,38 +105689,38 @@ oRp oRp oRp oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf +rpQ +xvm +rpQ +lMJ +xwj aaf aaf +nLC +vjV +izT +svu +sMe +lAA +jsO +edY +ulp +uTQ +hlO +hlO +jbJ +sMe +eFk +hma +xAI +nPH +aaa +gzW aaa aaa +rpQ aaa -aaa -aaf -aaa -aaf -aaa -aaa -aaf -aaa -aaf -aaa -aaa +lMJ aaf aaa aaf @@ -103830,39 +105946,39 @@ oRp oRp oRp oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +rpQ aaa aaa aaf aaa aaa aaa -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ -aaZ +gec +lQK +oUR +xDA +sMe +jIU +qFN +rYP +qFN +qFN +kze +rif +nFN +sMe +oqC +iRC +afH +bgb +bgb +bgb +bgb +bgb +bgb +lMJ +lMJ +aaa aaa aaf aio @@ -104087,39 +106203,39 @@ oRp oRp oRp oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaa -aaa -aaf -abg -abx -abV -acm -acA +rpQ +lMJ +oKD +izT +oaH +vjV +izT +izT +sIN +xAO +haD +sMe +jxe +kaM +rIe +mjl +qTq +iei +mvS +xOh +nEC +itk +ylY +afH +adm +rvO +afH acV adm -adJ -aeg -aeH -aaZ +bgb +aaf +aaa +aaa aaa aaf aio @@ -104344,39 +106460,39 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf -abg -aby -abW -acn -acB +izT +izT +wNK +rqn +nEC +pCQ +xAO +xAO +wzi +sMe +sMe +sMe +sMe +sMe +kGI +iei +mvS +xOh +nEC +cUT +xvj +afH +swH +lFW +afH acW adn -adK -aeh -aeI -aaZ +bgb +aaf +aaf +aaa aaf aaf aaf @@ -104601,40 +106717,40 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaa -aaa -aaa -aaf -abg -abz -abX -aco -acC +izT +oqD +mUE +sck +nEC +emo +xAO +hXi +viX +dCu +pAw +jVo +wDM +sMe +sMe +uvn +xXN +nEC +sMe +rCq +xvj +afH +fRj +gwI +afH acX ado -adL -aei -aeJ -aaZ -aaa +bgb +bgb +aaf +aaf +aaf aaa aaf aaf @@ -104858,40 +106974,40 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aai -aaa -aaf -aaa -aaa -aaa -aax -aax -aax -aax -aax -aax +rpQ +lMJ +izT +poR +mUE +oKu +rCF +wyf +mOH +gjm +fKj +gyf +hzP +nEa +oKe +bTB +hzP +sbg +vkq +hzP +nNO +qqj +xpx +upD +qXt acY -adp +kQr +acY +ofK adM -aax -aax -aax -aax +bgb +bgb +bgb +bgb aaa aaa aaf @@ -105115,41 +107231,41 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaj -aaf -aaf -aaa -aaa -aaf -aay +xwj +lMJ +izT +dsC +mUE +mlV +ykn +mak +eiU +dbx +mak +uam +ayq +abh +xuu +yaL +abh +xuu +fEV +abh +fhK +rSi abh abA abY acp -aax +uUN vla adq adN aej aeK afF -aax -aax +bgb +aaa aaa aaf aaa @@ -105372,41 +107488,41 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aai -aaa -aaf -aaf -aaf -aaf -aax -abi +izT +ijq +mUE +eaE +nEC +emo +xAO +wWN +xAO +pxQ +sMe +sMe +fdl +uxR +sMe +wwa +uxR +sMe +sMe abB -abe -abe -aax +abB +abB +exz +wIu +gkG ada -adr +ven adr aek aeL afG -agE -aax +bgb +aaa aaa aaf aaf @@ -105629,41 +107745,41 @@ oRp oRp oRp oRp +rpQ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaa -aax -aax -aaF -aax -aax +izT +izT +mBZ +hZd +nEC +mvI +pzy +xAO +xAO +wcj +sMe +fCR +npY +eEy +sMe +wWN +ulQ +jIF +sMe +mhG abj -aaR +fKv abZ acq acD -abe +szt ads adO -ael -aeM afH -agF -afW +afH +afH +bgb +aaf aaf aaf aaa @@ -105886,41 +108002,41 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaf -aay +kKH +lMJ +oKD +izT +oaH +gwC +izT +izT +izT +pqv +sMT +sMT +sMe +glz +bRR +qWm +sMe +mxT rLV -xIi -abC +bvX +sMe jhu xIi -abC +abB abC acr acE adb -cUU -aaR +ven +adr aem aeN afI -agG -aax +bgb +aaa aaa aaf aaa @@ -106144,40 +108260,40 @@ oRp oRp oRp oRp +lMJ oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa aaf -aaa -aax +oRp +oRp +aaf +oRp +izT +qiz +iBL +iBL +sMe +iUN +iUN +iUN +sMe +bQZ abl -roa -ram -aax +jIF +sMe +ihO iCn -aaR -aaR -aaI +abB +llF +uOr acF -abe -adt +qTV +adq adP -abe +oGG aeO -afJ -aax -aax +afF +bgb +aaa aaa aaf aaa @@ -106401,42 +108517,42 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aax -aax -aax -aax -aax -abm -aaR -aaR -aaI -acG -adc -adc -adQ -adc -aeP -afK -agH -aax -aaa aaf +rpQ +xwj +xGl +rpQ +xvm +rpQ +izT +izT +izT +izT +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ +vXi +aME +acG +qTV +vtn +adQ +afH +afH +afH +bgb +rRB +lUk +bgb dne dne dne @@ -106669,34 +108785,34 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaa -aax +nhI +abg +abx +abV +acm +xJb aaA aaG -aaP -aax -abn -aaR +adJ +aeg +aeH +aaZ abD -acs -acH -abe +aME +acG +qTV adu adR -abe -aeQ +qES +agI afL agI afW -aaf -aaf -dne +dve +bgb alL anb +mMf aok aox aqV @@ -106926,34 +109042,34 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaf -aay +uOH +abg +aby +abW +acn +mIR aaB aaH aaQ -aba +aeh abo -abF -aca +aaZ +abD act -acI +acG add adv adS aen -aeR -afG agH -aax -aaf -aaf -dne +agH +agH +hsr +ohf +bgb alL anc +aRG aol apD aqW @@ -107183,30 +109299,30 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaa -aax +ikj +abg +abz +abX +aco +syL aaC -aaI -aaR -abb -wXA -abG +uNg +kUL +aei +aeJ +aaZ acb acu acJ -abe +pJv adw -adT -adc -aeS -afM -abe aax -aiq +aax +aax +aax +wBB +cKy +qIB ajm ajm ajm @@ -107435,36 +109551,36 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaa -aaa -aay +rpQ +fOG +siF +siF +siF +aaZ +aaZ +aaZ +aaZ +aaZ +aaZ aaD -aaJ +adp aaS -abc -abp -acc -acc -acv +aaZ +aaZ +aaZ +aax +aax acK -abe -abe -abe -abe +dwf +upX +aax +llY aeT -afN -abe -ahu +aax +wHw +ajm air -ahx +ajm akt alM and @@ -107692,33 +109808,33 @@ oRp oRp oRp oRp -oRp -oRp -oRp -oRp -aaa -aaa -aaa -aaa -aaf -aaa +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ +lMJ aax +hGz +sja +aaZ aaE aaK aaT -aax +aaZ abq abI -abC +nnO acw acL -abe +kUN adx -adU +abe ael aeU -afO abe +hXW ahv ais ahx @@ -107954,30 +110070,30 @@ oRp oRp oRp aaa +vLD aaa -aaa -aaa -aaf -aaf -aax -aax -aaL -aax aax +ovd +hGz +aaZ +aaZ +scs +suZ +aaZ abr abJ -aaR -aaR -aaR +qUm +gmU +lxV ade cUU -aaR -aeo -aeV -afP abe -ahw -air +llY +aeV +abe +vRz +aws +aws ahx akv alO @@ -108211,29 +110327,29 @@ oRp oRp oRp aaa +vLD aaa -aaa -aaa -aaf -aaa -aaa -aaf -aaa -aaa -aay +aax +fUI +oEN +hGz +uiA +dxy +vSH +abe abs abK ace -acx +aax acM -abe +ewU ady -adT -adc +abe +abe aeW -afK -agJ -ahx +abe +pvy +pvy ait ahx akw @@ -108468,32 +110584,32 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaa +ack +lMJ urv aax aax +aZO +kwe +mpv +rLx +abe +aay +qRZ +eSb aax -aax -aax -abe -abe -abe -abe -abe +qEk +hDB +oVt +fvV +tJI dpy afR -agK -ahy -aiu -ajn akx +anh +anh +anh +anh alQ anh aor @@ -108729,28 +110845,28 @@ aaa aaa aaa aaa -aaa -aaf -aaa -aaa -aaa -aaa wOY abL +aax +uUK +uBA +nAj +nAj +nJo acf acy -abL +iyp adf adz -acf +agL hyP aeY -afG agL -ahz -aiv -ajo aky +azE +azE +azE +azE akg ani aos @@ -108982,32 +111098,32 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaa -aaa -aaa -adG +lSH aaa aaa aaa abu abM +adG +wtO +mgT +ydu +mQt +tDM acg -aax -abe -abe -abe -abe -abe +keE +ojh +qKq +rub +kVM +vSL aeZ afS -agM -ahA -aiw -ajp akz +wKX +wKX +wKX +wKX ajQ egm aot @@ -109243,23 +111359,23 @@ aaa aaa aaa aaa -aaf -aaf -aaa -aaa -aaa -aaa wOY -abe -ach +mFa aax +ubD +aaI +ovU +aaR +aDg +ach +pUL acN adg adA -adV +aax adc -afa -afT +aax +aax agN ahB ahB @@ -109496,29 +111612,29 @@ oRp oRp oRp aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaa -aaa +ngt +lMJ urv -abe -abe -abe -abL aax +aax +aax +aax +uvz +pJX +abe +png +abe +aCJ +hwd acO adh -adB -adW -aep -afb -afU -agO -ahB +aaF +aax +aaf +aaf +aaf +aaf +adY aNA ajq aix @@ -109755,27 +111871,27 @@ oRp aaa aaa aaa +vLD aaa aaa aaa -aaf -aaf -aaa -aaa -aaf -aaa +aax +aay +aaL +abe +kyV abe acj -aax +nlq acR adi adC -adX -ael -afd -afV -agP -ahB +aaa +aaa +aaa +aaa +aaf +adY aiy dBZ ajr @@ -110012,26 +112128,26 @@ oRp aaa aaa aaa +vLD +vLD +vLD +vLD +vLD aaa -aaa -aaa -aaa -aaf -aaf -aaf -aaf -aaf +vLD +aax +xhP abe -wiZ aax aax +aay aaL -aax -aax -aax -afc -afW -aax +aaa +aaa +aaa +aaa +aaa +aaf adY aiz ajt @@ -110269,22 +112385,22 @@ oRp aaa aaa aaa +vLD aaa aaa aaa +vLD aaa +vLD +aax +wiZ +aax aaf aaa aaa -aaf aaa aaa -ack aaa -aaa -aaf -aaa -aaf aaf aaf aaf @@ -110526,21 +112642,21 @@ oRp aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaf -aaf -aaf -ack +vLD +vLD +vLD +vLD +vLD +vLD +vLD +ngt +ngt +ngt aaf aaf aaf aaf +aaa aaf aaf aeq @@ -110797,7 +112913,7 @@ aaa aaa aaa aaf -aaa +aaf aaf aeq aeq @@ -112075,7 +114191,7 @@ oRp oRp oRp oRp -aav +oRp oRp aaa aaa @@ -112312,7 +114428,7 @@ oRp oRp oRp oRp -xtS +oRp oRp oRp oRp @@ -114387,7 +116503,7 @@ oRp oRp oRp oRp -aav +oRp oRp oRp aaa diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 1355aab9a6..84339218c3 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -77,35 +77,20 @@ "aA" = ( /turf/open/lava/smooth/lava_land_surface, /area/template_noop) +"aJ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "aQ" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 1 }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) -"aU" = ( -/obj/structure/stone_tile/block/cracked, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/item/t_scanner/adv_mining_scanner/lesser, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"cp" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) -"cu" = ( -/obj/item/pickaxe, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"cv" = ( -/obj/structure/ore_box, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"cw" = ( +"aV" = ( /obj/structure/stone_tile/block{ dir = 4 }, @@ -117,46 +102,104 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"dA" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"bb" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/item/storage/bag/plants/portaseeder, +/obj/item/storage/bag/plants, +/obj/item/seeds/cotton{ + yield = 5 + }, +/obj/item/seeds/cotton/durathread, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"bn" = ( +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"ci" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"cn" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/storage/toolbox/syndicate, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"cu" = ( +/obj/item/pickaxe, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cv" = ( +/obj/structure/ore_box, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) +"cO" = ( +/obj/structure/stone_tile, +/obj/item/shard, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"cQ" = ( +/obj/structure/stone_tile/surrounding/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"cU" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"cW" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"cZ" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "dD" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 4 }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) -"dF" = ( -/obj/structure/stone_tile/block/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"dM" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"eb" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/machinery/iv_drip, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"eh" = ( -/obj/structure/stone_tile/slab/cracked{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) "eo" = ( /obj/structure/stone_tile/cracked, /obj/structure/stone_tile/block{ @@ -176,25 +219,20 @@ }, /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"eQ" = ( -/obj/structure/closet/crate/radiation, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern, -/obj/item/flashlight/flare, +"fd" = ( +/obj/structure/stone_tile, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"fp" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"fx" = ( /obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ dir = 1 }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"ft" = ( -/obj/structure/stone_tile/block, -/obj/item/spear/bonespear, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "fN" = ( /obj/structure/stone_tile{ dir = 4 @@ -367,6 +405,18 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"gV" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "hd" = ( /obj/structure/mineral_door/sandstone, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -395,19 +445,13 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) -"hy" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 +"hG" = ( +/obj/item/storage/box/rxglasses, +/obj/structure/stone_tile{ + dir = 1 }, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, -/area/ruin/unpowered/ash_walkers) -"hD" = ( -/obj/effect/mob_spawn/human/corpse/damaged, -/obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "hH" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -491,47 +535,6 @@ /obj/structure/stone_tile/block/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"iG" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/item/stack/sheet/mineral/wood, -/obj/item/stack/sheet/mineral/wood, -/obj/item/stack/sheet/mineral/wood, -/obj/item/stack/sheet/mineral/wood, -/obj/item/seeds/ambrosia/deus{ - potency = 50; - yield = 5 - }, -/obj/item/seeds/ambrosia/deus{ - potency = 50; - yield = 5 - }, -/obj/item/seeds/tower, -/obj/item/seeds/tower, -/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"iJ" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/table/wood, -/obj/item/clothing/head/helmet/roman/legionnaire, -/obj/item/spear/bonespear, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) "iK" = ( /obj/structure/stone_tile/block, /obj/structure/stone_tile/cracked{ @@ -581,16 +584,15 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"jj" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile{ +"jh" = ( +/obj/structure/stone_tile/block{ dir = 4 }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "jk" = ( /obj/structure/stone_tile/center, /obj/structure/stone_tile/surrounding_tile, @@ -706,12 +708,17 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"ke" = ( -/obj/structure/stone_tile/block{ - dir = 4 +"jV" = ( +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/mob_spawn/human/corpse/damaged, +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 1 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "kg" = ( /obj/structure/fluff/drake_statue, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -739,6 +746,20 @@ /obj/structure/stone_tile, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"kw" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "ky" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -830,15 +851,13 @@ /obj/structure/stone_tile/slab/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"lb" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, +"kZ" = ( +/obj/item/shovel, /obj/structure/stone_tile/cracked{ dir = 8 }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "le" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ @@ -858,6 +877,19 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"li" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/regular, +/obj/item/storage/firstaid/ancient, +/obj/item/reagent_containers/blood/random, +/obj/item/reagent_containers/blood/lizard, +/obj/item/reagent_containers/blood/lizard, +/obj/item/stack/sheet/cloth/ten, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "lj" = ( /obj/structure/stone_tile/block{ dir = 1 @@ -990,6 +1022,16 @@ }, /turf/open/lava/smooth/lava_land_surface, /area/lavaland/surface/outdoors) +"lJ" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "lP" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -1085,6 +1127,20 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"mo" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "mq" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -1427,85 +1483,77 @@ }, /turf/open/indestructible/boss, /area/lavaland/surface/outdoors) -"nt" = ( -/obj/structure/stone_tile/block, +"nI" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) +"nR" = ( +/obj/structure/well_foundation, +/obj/item/reagent_containers/glass/bucket/wood, +/obj/item/reagent_containers/glass/bucket/wood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"nT" = ( +/obj/structure/stone_tile, /obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"nB" = ( -/obj/item/shovel, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"nJ" = ( -/turf/closed/wall/mineral/wood, -/area/ruin/unpowered/ash_walkers) -"nU" = ( -/obj/structure/stone_tile, -/obj/item/shard, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"nW" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, +/obj/item/spear/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"nV" = ( /obj/structure/stone_tile/cracked{ dir = 8 }, +/obj/structure/closet/crate, /obj/item/flashlight/lantern, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"nZ" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 8 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) "ol" = ( /obj/effect/landmark/stationroom/lavaland/station, /turf/open/lava/smooth/lava_land_surface, /area/template_noop) +"oo" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "ot" = ( /obj/structure/stone_tile/surrounding_tile, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"oB" = ( -/obj/item/stack/sheet/mineral/wood, -/obj/structure/stone_tile{ +"oQ" = ( +/obj/structure/stone_tile/block{ dir = 4 }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"oS" = ( -/obj/structure/stone_tile/cracked{ +/obj/structure/stone_tile/block/cracked{ dir = 8 }, -/obj/item/storage/firstaid/ancient, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"pc" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/stone_tile/block, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"pq" = ( -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "pt" = ( /obj/structure/stone_tile/block/cracked{ dir = 8 @@ -1546,20 +1594,6 @@ }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) -"qh" = ( -/obj/structure/stone_tile/surrounding/cracked{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"qi" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, -/area/ruin/unpowered/ash_walkers) "qA" = ( /obj/item/flashlight/lantern, /obj/structure/stone_tile/center, @@ -1579,49 +1613,28 @@ /obj/structure/stone_tile/slab, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) -"rz" = ( -/obj/item/storage/box/rxglasses, -/obj/structure/stone_tile{ - dir = 1 +"ri" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"ry" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "rO" = ( /obj/structure/stone_tile/surrounding_tile/cracked, /obj/structure/ore_box, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"rQ" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, -/area/ruin/unpowered/ash_walkers) -"sa" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"se" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/item/flashlight/lantern, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) "sk" = ( /obj/structure/stone_tile/block/cracked{ dir = 1 @@ -1632,109 +1645,43 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"sl" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) -"sx" = ( -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/obj/item/stack/sheet/mineral/coal, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"ty" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile{ +"sn" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/item/flashlight/lantern, +/obj/structure/stone_tile/center/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"sD" = ( +/obj/structure/lavaland/ash_walker, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) +"sI" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile{ + dir = 8 + }, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"tz" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"td" = ( /obj/structure/stone_tile/slab, /obj/structure/table/wood, /obj/item/toy/cards/deck/syndicate, /obj/item/construction/rcd/loaded/upgraded, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"ui" = ( -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"uk" = ( -/obj/structure/lavaland/ash_walker, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, -/area/ruin/unpowered/ash_walkers) -"uz" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/turf/closed/indestructible/riveted/boss, -/area/lavaland/surface/outdoors) -"vi" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"vu" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/center, -/obj/structure/stone_tile/surrounding_tile{ - dir = 8 - }, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, -/area/ruin/unpowered/ash_walkers) -"vR" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"wm" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"tG" = ( /obj/item/seeds/glowshroom{ potency = 50; yield = 5 @@ -1748,26 +1695,111 @@ }, /mob/living/simple_animal/hostile/asteroid/gutlunch/gubbuck, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"ww" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ +/area/ruin/lavaland/unpowered/ash_walkers) +"tL" = ( +/obj/structure/flora/rock/pile/largejungle{ + light_range = null + }, +/turf/open/water, +/area/ruin/lavaland/unpowered/ash_walkers) +"tN" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"ut" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"uz" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"uD" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"uT" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"vo" = ( +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, -/obj/structure/stone_tile/center/cracked, -/obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ dir = 1 }, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 }, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile/center, +/obj/effect/decal/cleanable/blood, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"vs" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/clothing/head/helmet/roman/legionnaire, +/obj/item/spear/bonespear, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"vR" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/block/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/lavaland/surface/outdoors) "wF" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 4 }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) +"wT" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) "xr" = ( /obj/structure/stone_tile/cracked{ dir = 4 @@ -1781,112 +1813,67 @@ /obj/item/pickaxe, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"xs" = ( -/obj/structure/stone_tile/block/cracked{ +"xJ" = ( +/obj/structure/stone_tile/cracked{ dir = 8 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"xX" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/item/pickaxe, +/obj/item/storage/firstaid/ancient, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"yf" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/stone_tile/surrounding_tile/cracked{ +/area/ruin/lavaland/unpowered/ash_walkers) +"yg" = ( +/obj/structure/stone_tile/cracked{ dir = 1 }, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"yZ" = ( +/turf/closed/wall/mineral/wood, +/area/ruin/lavaland/unpowered/ash_walkers) +"zE" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center/cracked, /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) +"Am" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile{ dir = 4 }, -/obj/structure/stone_tile/center, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"zf" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile{ - dir = 8 - }, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ay" = ( /obj/structure/stone_tile/cracked{ dir = 1 }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"zv" = ( -/obj/machinery/hydroponics/soil, -/obj/structure/stone_tile/block{ - dir = 8 - }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"An" = ( -/obj/structure/stone_tile/slab, -/obj/structure/table/wood, -/obj/item/spear/bonespear, -/obj/item/spear/bonespear, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"AH" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/item/spear/bonespear, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"AU" = ( -/obj/structure/stone_tile, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"AY" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/item/flashlight/lantern, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Bj" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, +/area/ruin/lavaland/unpowered/ash_walkers) +"AN" = ( /obj/effect/decal/cleanable/blood, -/obj/structure/necropolis_gate/ashwalker, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "Br" = ( /obj/structure/stone_tile/slab, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"Bs" = ( -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) "BF" = ( /obj/structure/flora/rock/jungle, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -1913,94 +1900,89 @@ /obj/structure/stone_tile/center/cracked, /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"BP" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/obj/structure/stone_tile{ - dir = 8 - }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"BU" = ( -/turf/closed/indestructible/riveted/boss/see_through, -/area/ruin/unpowered/ash_walkers) -"Ch" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 4 - }, -/obj/structure/stone_tile/center/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"CG" = ( -/obj/structure/stone_tile/cracked{ +"CI" = ( +/obj/structure/stone_tile/slab/cracked{ dir = 4 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"CL" = ( -/obj/structure/stone_tile/slab, -/obj/structure/table/wood, -/obj/item/clothing/head/helmet/skull, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Dn" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "Do" = ( /obj/structure/stone_tile/block{ dir = 8 }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) +"Dt" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/stack/sheet/mineral/wood, +/obj/item/seeds/ambrosia/deus{ + potency = 50; + yield = 5 + }, +/obj/item/seeds/ambrosia/deus{ + potency = 50; + yield = 5 + }, +/obj/item/seeds/tower, +/obj/item/seeds/tower, +/mob/living/simple_animal/hostile/asteroid/gutlunch/guthen, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "Dx" = ( /obj/structure/bonfire/dense, /obj/structure/stone_tile/center, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"Dz" = ( +"DT" = ( +/obj/structure/stone_tile/slab, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Eb" = ( +/obj/structure/closet/crate, /obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ dir = 1 }, -/obj/structure/stone_tile, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"DQ" = ( /obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ej" = ( +/obj/structure/stone_tile/block/cracked{ dir = 4 }, -/obj/item/book/granter/crafting_recipe/bone_bow, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"Ef" = ( -/obj/structure/stone_tile/block/cracked, /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) -"Ez" = ( -/obj/machinery/grill{ - name = "old rusty grill" +/area/ruin/lavaland/unpowered/ash_walkers) +"ER" = ( +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 8 }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"EQ" = ( -/obj/structure/stone_tile/surrounding/cracked, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile/center, +/obj/structure/stone_tile/surrounding_tile{ + dir = 1 + }, +/obj/structure/stone_tile/surrounding_tile{ + dir = 4 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) "Fn" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 @@ -2010,15 +1992,6 @@ }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) -"Fz" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 8 - }, -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) "FD" = ( /obj/structure/stone_tile/cracked{ dir = 8 @@ -2026,6 +1999,13 @@ /obj/structure/stone_tile/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) +"FG" = ( +/obj/item/stack/sheet/mineral/wood, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) "Gc" = ( /obj/structure/flora/junglebush/b, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, @@ -2043,20 +2023,73 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"GC" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/obj/structure/stone_tile/center, -/obj/structure/stone_tile/surrounding_tile{ +"GS" = ( +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Hw" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/machinery/the_singularitygen, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"HN" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"HV" = ( +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ig" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ih" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ir" = ( +/obj/structure/stone_tile/block/cracked, +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/item/t_scanner/adv_mining_scanner/lesser, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ji" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, +/obj/structure/stone_tile/surrounding_tile/cracked{ + dir = 4 + }, +/obj/structure/stone_tile/center, /obj/structure/stone_tile/surrounding_tile{ dir = 8 }, /turf/open/lava/smooth{ initial_gas_mix = "o2=14;n2=23;TEMP=300" }, -/area/ruin/unpowered/ash_walkers) -"Hq" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"JS" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ dir = 8 @@ -2071,60 +2104,63 @@ /obj/item/scythe, /obj/item/spear/bonespear, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"HX" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/obj/structure/stone_tile/block/cracked{ +/area/ruin/lavaland/unpowered/ash_walkers) +"JW" = ( +/obj/structure/stone_tile/surrounding/cracked{ dir = 1 }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Jq" = ( -/obj/structure/stone_tile/slab/cracked, -/obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"JP" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"KF" = ( /obj/structure/stone_tile, +/obj/structure/stone_tile{ + dir = 8 + }, /obj/structure/stone_tile{ dir = 1 }, /obj/structure/stone_tile/cracked{ dir = 4 }, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/effect/decal/cleanable/blood, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"KA" = ( -/obj/structure/stone_tile/slab, +/obj/item/flashlight/lantern, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"KJ" = ( -/obj/structure/stone_tile/block/cracked, -/obj/structure/stone_tile{ +/area/ruin/lavaland/unpowered/ash_walkers) +"KX" = ( +/obj/machinery/hydroponics/soil, +/obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 }, -/obj/structure/stone_tile{ +/obj/structure/stone_tile/surrounding_tile, +/obj/structure/stone_tile/surrounding_tile{ dir = 4 }, +/obj/structure/stone_tile/center, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"KV" = ( -/obj/structure/stone_tile/cracked{ +/area/ruin/lavaland/unpowered/ash_walkers) +"Lu" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/open/lava/smooth{ + initial_gas_mix = "o2=14;n2=23;TEMP=300" + }, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ly" = ( +/obj/structure/stone_tile/block{ dir = 8 }, -/obj/effect/mob_spawn/human/corpse/damaged, -/obj/effect/decal/cleanable/blood, /obj/structure/stone_tile/cracked{ dir = 1 }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"LF" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "LJ" = ( /turf/open/water, /area/lavaland/surface/outdoors) @@ -2135,17 +2171,24 @@ }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) +"Ms" = ( +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/obj/structure/stone_tile, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "Mx" = ( /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"MQ" = ( -/obj/structure/table/optable, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/item/surgical_drapes, +"ML" = ( +/obj/structure/stone_tile/block, +/obj/item/spear/bonespear, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) "MS" = ( /obj/structure/stone_tile/cracked{ dir = 1 @@ -2153,31 +2196,29 @@ /obj/structure/stone_tile/cracked, /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"MX" = ( -/obj/structure/stone_tile/slab/cracked, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Ou" = ( -/obj/structure/stone_tile/slab, -/obj/structure/table/wood, -/obj/item/storage/toolbox/syndicate, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Oy" = ( -/obj/structure/stone_tile/surrounding_tile{ - dir = 4 - }, -/obj/structure/stone_tile/surrounding_tile{ +"Nl" = ( +/obj/structure/stone_tile/block/cracked, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Ny" = ( +/obj/structure/table/optable, +/obj/structure/stone_tile{ dir = 1 }, -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/center, -/obj/effect/decal/cleanable/blood, +/obj/item/surgical_drapes, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Pj" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"NJ" = ( +/obj/machinery/grill{ + name = "old rusty grill" + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Pa" = ( +/obj/structure/stone_tile/block/cracked, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Pc" = ( /obj/structure/stone_tile/surrounding_tile/cracked, /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 1 @@ -2187,21 +2228,112 @@ }, /obj/structure/stone_tile/center, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Qd" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"Qc" = ( /obj/structure/stone_tile/block{ dir = 8 }, +/obj/structure/stone_tile/block/cracked{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Qv" = ( +/obj/structure/stone_tile/block{ + dir = 8 + }, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/glass/beaker/waterbottle/large, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Rk" = ( /obj/structure/stone_tile, +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"Rs" = ( +/obj/structure/stone_tile{ + dir = 4 + }, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/item/spear/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Sh" = ( +/obj/structure/stone_tile/block, +/turf/closed/mineral/volcanic/lava_land_surface, +/area/lavaland/surface/outdoors) +"Sn" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/spear/bonespear, +/obj/item/spear/bonespear, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"SG" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/turf/closed/indestructible/riveted/boss, +/area/lavaland/surface/outdoors) +"SJ" = ( +/obj/structure/closet/crate/radiation, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/lantern, +/obj/item/flashlight/flare, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"ST" = ( /obj/structure/stone_tile{ dir = 1 }, -/obj/structure/table/wood, -/obj/item/storage/belt, -/obj/item/spear/bonespear, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"SW" = ( +/obj/structure/stone_tile/block{ + dir = 4 + }, +/obj/structure/stone_tile/block/cracked{ + dir = 8 + }, +/obj/effect/decal/cleanable/blood, +/obj/structure/necropolis_gate/ashwalker, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Qk" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"Tc" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Tj" = ( +/obj/structure/stone_tile{ + dir = 1 + }, +/obj/structure/stone_tile, +/obj/structure/stone_tile/cracked{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 4 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"TA" = ( /obj/structure/stone_tile{ dir = 4 }, @@ -2214,122 +2346,21 @@ }, /obj/item/stack/marker_beacon/ten, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"QC" = ( -/obj/structure/stone_tile/block, -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile{ - dir = 4 - }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"QG" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ - dir = 1 - }, -/obj/structure/stone_tile, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"QM" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Rb" = ( -/obj/structure/closet/crate, -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile/cracked, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern, -/obj/item/flashlight/lantern, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Rk" = ( -/obj/structure/stone_tile, -/obj/structure/stone_tile/block{ - dir = 1 - }, -/turf/closed/indestructible/riveted/boss, -/area/lavaland/surface/outdoors) -"Rr" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) -"RF" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 8 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"RX" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 1 - }, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile, +/area/ruin/lavaland/unpowered/ash_walkers) +"TF" = ( +/obj/effect/mob_spawn/human/corpse/damaged, /obj/effect/decal/cleanable/blood, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Sh" = ( -/obj/structure/stone_tile/block, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/lavaland/surface/outdoors) -"Si" = ( -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) -"SG" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/closed/indestructible/riveted/boss, -/area/lavaland/surface/outdoors) -"Tn" = ( -/obj/structure/stone_tile/block{ - dir = 1 - }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/table/wood, -/obj/item/kitchen/knife/combat/bone, -/obj/item/book/granter/crafting_recipe/bone_bow, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"TN" = ( -/obj/structure/stone_tile/surrounding_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/center, -/obj/structure/stone_tile/surrounding_tile{ - dir = 1 - }, -/obj/structure/stone_tile/surrounding_tile{ - dir = 4 - }, -/turf/open/lava/smooth{ - initial_gas_mix = "o2=14;n2=23;TEMP=300" - }, -/area/ruin/unpowered/ash_walkers) -"Uh" = ( +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"TP" = ( /obj/structure/stone_tile/slab, /obj/structure/table/wood, /obj/item/weldingtool/experimental, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/area/ruin/lavaland/unpowered/ash_walkers) +"Ug" = ( +/turf/closed/indestructible/riveted/boss/see_through, +/area/ruin/lavaland/unpowered/ash_walkers) "Uq" = ( /obj/docking_port/stationary{ area_type = /area/lavaland/surface/outdoors; @@ -2350,96 +2381,65 @@ /obj/effect/decal/cleanable/blood, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"Vb" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 +"VG" = ( +/obj/structure/stone_tile/block, +/obj/structure/stone_tile{ + dir = 1 }, /obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ dir = 4 }, -/obj/item/storage/bag/plants/portaseeder, -/obj/item/storage/bag/plants, -/obj/item/seeds/cotton{ - yield = 5 - }, -/obj/item/seeds/cotton/durathread, +/obj/effect/decal/cleanable/blood, /turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Vj" = ( -/obj/structure/stone_tile/cracked{ +/area/ruin/lavaland/unpowered/ash_walkers) +"VT" = ( +/obj/structure/stone_tile/block{ dir = 1 }, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"VI" = ( -/obj/structure/well_foundation, -/obj/item/reagent_containers/glass/bucket/wood, -/obj/item/reagent_containers/glass/bucket/wood, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/kitchen/knife/combat/bone, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"We" = ( +/obj/structure/stone_tile/surrounding_tile/cracked, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Wb" = ( +/area/ruin/lavaland/unpowered/ash_walkers) +"WH" = ( +/obj/structure/stone_tile/slab/cracked, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"WR" = ( /obj/structure/stone_tile/block{ dir = 8 }, -/obj/structure/stone_tile/block{ - dir = 4 - }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) -"Wh" = ( -/obj/structure/stone_tile{ - dir = 1 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Wj" = ( -/obj/structure/stone_tile/surrounding_tile/cracked, -/turf/closed/mineral/volcanic/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"WA" = ( -/obj/structure/stone_tile/block/cracked, -/obj/item/book/granter/crafting_recipe/bone_bow, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"WL" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/regular, -/obj/item/storage/firstaid/ancient, -/obj/item/reagent_containers/blood/random, -/obj/item/reagent_containers/blood/lizard, -/obj/item/reagent_containers/blood/lizard, -/obj/item/stack/sheet/cloth/ten, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"WN" = ( /obj/structure/stone_tile, /obj/structure/stone_tile{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ dir = 1 }, +/obj/structure/table/wood, +/obj/item/storage/belt, /obj/item/spear/bonespear, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"WT" = ( -/obj/structure/stone_tile/block{ - dir = 4 - }, -/obj/structure/stone_tile{ +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Xb" = ( +/obj/structure/stone_tile/cracked{ dir = 8 }, /obj/structure/stone_tile{ dir = 4 }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) +"Xd" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) "Xe" = ( /obj/structure/stone_tile/surrounding_tile, /obj/structure/stone_tile/center/cracked, @@ -2451,87 +2451,78 @@ }, /turf/open/floor/plating/asteroid/basalt/lava_land_surface, /area/lavaland/surface/outdoors) -"Xf" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/structure/stone_tile, -/obj/structure/stone_tile{ - dir = 1 - }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) "Xo" = ( /obj/structure/stone_tile/block/cracked{ dir = 4 }, /turf/closed/indestructible/riveted/boss, /area/lavaland/surface/outdoors) -"Xw" = ( -/obj/structure/stone_tile{ - dir = 1 - }, -/obj/structure/stone_tile, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) "Xz" = ( /obj/structure/stone_tile/surrounding_tile/cracked{ dir = 8 }, /turf/closed/mineral/volcanic/lava_land_surface, /area/lavaland/surface/outdoors) -"XG" = ( -/obj/effect/decal/cleanable/blood, -/obj/structure/stone_tile/cracked{ - dir = 8 - }, -/obj/structure/stone_tile/cracked{ - dir = 4 - }, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Yg" = ( -/obj/structure/flora/rock/pile/largejungle{ - light_range = null - }, -/turf/open/water, -/area/ruin/unpowered/ash_walkers) -"Yy" = ( -/obj/structure/stone_tile/block/cracked{ - dir = 4 - }, -/obj/item/flashlight/lantern, -/turf/open/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/ash_walkers) -"Zc" = ( -/obj/structure/stone_tile{ - dir = 4 - }, -/obj/structure/stone_tile/cracked, -/obj/structure/stone_tile/cracked{ +"XS" = ( +/obj/structure/stone_tile/block{ dir = 1 }, /obj/structure/stone_tile/cracked{ dir = 8 }, -/obj/machinery/the_singularitygen, -/turf/open/indestructible/boss, -/area/ruin/unpowered/ash_walkers) -"Zs" = ( -/obj/structure/stone_tile/block{ - dir = 8 - }, -/obj/structure/stone_tile/block/cracked{ +/turf/closed/indestructible/riveted/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Yc" = ( +/obj/structure/stone_tile, +/obj/structure/stone_tile{ dir = 4 }, -/turf/closed/indestructible/riveted/boss, -/area/ruin/unpowered/ash_walkers) +/obj/structure/stone_tile{ + dir = 8 + }, +/obj/structure/stone_tile/cracked{ + dir = 1 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Yd" = ( +/obj/structure/stone_tile/slab/cracked, +/obj/effect/decal/cleanable/blood, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"YQ" = ( +/obj/structure/stone_tile/block{ + dir = 1 + }, +/obj/structure/stone_tile/cracked, +/obj/structure/stone_tile{ + dir = 8 + }, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Zh" = ( +/obj/structure/stone_tile/slab, +/obj/structure/table/wood, +/obj/item/clothing/head/helmet/skull, +/turf/open/indestructible/boss, +/area/ruin/lavaland/unpowered/ash_walkers) +"Zk" = ( +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/obj/item/stack/sheet/mineral/coal, +/turf/open/floor/plating/asteroid/basalt/lava_land_surface, +/area/ruin/lavaland/unpowered/ash_walkers) (1,1,1) = {" aa @@ -55489,11 +55480,11 @@ aa aa ab ab -Ez +NJ ab LJ LJ -Yg +tL LJ ai ai @@ -55746,7 +55737,7 @@ aa aa ab ab -sx +Zk ab LJ LJ @@ -56771,9 +56762,9 @@ Do Mh aa aa -Rr +Ig Mx -xs +tN eq ab ab @@ -57024,13 +57015,13 @@ aa aa aa aa -Si -Si -Si -Si -Si -Si -Si +GS +GS +GS +GS +GS +GS +GS it ab ab @@ -57281,22 +57272,22 @@ aa aa aa aa -Si -oS -CG -wm -Vb -Bs -Si +GS +xJ +HV +tG +bb +nV +GS it jq jR -AH +Rs jS jS -KV +jV ab -DQ +jx aa aa ab @@ -57538,18 +57529,18 @@ aa aa aa Gw -Si -aU -Wh -zf -Qk -iG -Si +GS +Ir +ST +Yc +TA +Dt +GS jQ ll Xe iu -Ch +sn ja jx jQ @@ -57795,13 +57786,13 @@ aa aa aa Rk -Si -WA -rz -qh -pq -Jq -ke +GS +Nl +hG +JW +Ay +Yd +oo gP ma ix @@ -58052,13 +58043,13 @@ aa aa aa uz -Si -MQ -nU -ui -Xw -Rb -Si +GS +Ny +cO +ci +Tj +Eb +GS ix jQ gt @@ -58309,21 +58300,21 @@ aa aa aa uz -Si -WL -eb -dM -eQ -Zc -Si +GS +li +Qv +Xb +SJ +Hw +GS jQ -XG +ry kN mn iy -oB +FG ll -nB +kZ ab aa aa @@ -58566,21 +58557,21 @@ aa aa aa aa -Si -Si -Si -Si -Si -Si -Si +GS +GS +GS +GS +GS +GS +GS jR jQ jR ae jx -Pj +Pc ia -yf +KX jS aa aj @@ -58823,17 +58814,17 @@ aa aa dD pt -Wb -Dn -Zs -Zs -xX +uD +LF +Qc +Qc +aJ jb -Fz -QM +bn +We jR jQ -pc +AN lg it qA @@ -59079,13 +59070,13 @@ aa aa wF qS -Si -Si -Si -Si -Si -Si -Si +GS +GS +GS +GS +GS +GS +GS Br pD jQ @@ -59093,7 +59084,7 @@ jx mn jQ hr -zv +cZ BH jq Mx @@ -59334,24 +59325,24 @@ aj aa aa aa -cp -Si -KA -KA -KA -KA -KA -Si -Si -Si -ft +Xd +GS +DT +DT +DT +DT +DT +GS +GS +GS +ML jx kN mn -VI -Vj +nR +yg MS -AU +fd Mx Mx ab @@ -59591,19 +59582,19 @@ aj aa aa aa -lb -tz -KA -AY -BP -cw -WT -ty -Si -Si +XS +td +DT +mo +sI +aV +gV +uT +GS +GS qN ab -hD +TF gR Mx Mx @@ -59848,25 +59839,25 @@ aj aa aa aa -dA -Ou -KA -QC -GC -hy -ww -vi -Si -BU +fx +cn +DT +cW +nZ +Ej +zE +YQ +GS +Ug kP iY jR lG js Mx -xs -xs -xs +tN +tN +tN Xz Mx ab @@ -60105,25 +60096,25 @@ aj aa aa aa -cp -An -KA -nt -Ef -uk -rQ -MX -sa -Bj +Xd +Sn +DT +VG +wT +sD +Lu +WH +oQ +SW gP kj lg sk -Si -Si -nJ -Si -Si +GS +GS +yZ +GS +GS Mx Mx ab @@ -60362,25 +60353,25 @@ aj aa aa aa -cp -Uh -KA -jj -vu -qi -TN -RX -Si -BU -Oy +Xd +TP +DT +Ih +Ji +nI +ER +cU +GS +Ug +vo iY kN gR -nJ -WN -Yy -Hq -nJ +yZ +nT +ri +JS +yZ Mx Mx ab @@ -60619,25 +60610,25 @@ aj aa aa aa -sl -CL -KA -nW -Dz -Xf -QG -se -Si -Si -KJ +Tc +Zh +DT +kw +Ms +lJ +Ly +KF +GS +GS +Am jR fN gP -RF -eh -EQ -Tn -nJ +HN +CI +cQ +VT +yZ Mx Mx aj @@ -60876,25 +60867,25 @@ aj aa aa aa -cp -Si -KA -KA -KA -KA -KA -Si -Si -Si +Xd +GS +DT +DT +DT +DT +DT +GS +GS +GS ix kN jq ab -nJ -JP -Qd -iJ -Si +yZ +ut +WR +vs +GS Sh Mx ab @@ -61135,24 +61126,24 @@ aa aa pH qS -Si -Si -Si -Si -Si -Si -Si +GS +GS +GS +GS +GS +GS +GS kR rO xr ab eo -nJ -nJ -nJ -Si -Si -dF +yZ +yZ +yZ +GS +GS +Pa Mx ab aj @@ -61409,7 +61400,7 @@ Mx eP Mx Mx -Wj +fp Mx ab aj @@ -61660,7 +61651,7 @@ Mx ab ab ab -HX +jh Mx Mx Mx diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index d3c8c90947..17f21e98f5 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -1734,6 +1734,16 @@ /turf/open/floor/plating, /area/security/prison) "aeo" = ( +/obj/machinery/washing_machine, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) +"aep" = ( /obj/machinery/hydroponics/constructable, /obj/item/seeds/potato, /obj/item/seeds/carrot, @@ -1743,14 +1753,14 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aep" = ( +"aeq" = ( /obj/item/cultivator, /obj/structure/cable{ icon_state = "1-4" }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aeq" = ( +"aer" = ( /obj/machinery/hydroponics/constructable, /obj/structure/cable{ icon_state = "4-8" @@ -1765,7 +1775,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aer" = ( +"aes" = ( /obj/item/reagent_containers/glass/bucket, /obj/structure/cable{ icon_state = "1-4" @@ -1775,7 +1785,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aes" = ( +"aet" = ( /obj/structure/easel, /obj/item/canvas/nineteenXnineteen, /obj/structure/cable{ @@ -1786,7 +1796,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aet" = ( +"aeu" = ( /obj/structure/cable{ icon_state = "2-8" }, @@ -1795,19 +1805,6 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"aeu" = ( -/obj/machinery/biogenerator, -/obj/structure/sign/poster/official/random{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "aev" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -1862,35 +1859,61 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "aeC" = ( +/obj/structure/table, +/obj/structure/bedsheetbin, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/window/reinforced, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) +"aeD" = ( +/obj/machinery/biogenerator, +/obj/structure/sign/poster/official/random{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"aeE" = ( +/obj/structure/sink{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) +"aeF" = ( /obj/machinery/hydroponics/constructable, /obj/item/seeds/grass, /turf/open/floor/plasteel/dark, /area/security/prison) -"aeD" = ( +"aeG" = ( /obj/item/plant_analyzer, /obj/item/shovel/spade, /turf/open/floor/plasteel/dark, /area/security/prison) -"aeE" = ( +"aeH" = ( /obj/machinery/hydroponics/constructable, /obj/item/seeds/sunflower, /obj/item/seeds/poppy, /turf/open/floor/plasteel/dark, /area/security/prison) -"aeF" = ( -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aeG" = ( -/obj/item/storage/crayons, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aeH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) "aeJ" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -1961,38 +1984,32 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) -"aeT" = ( -/obj/structure/bookcase, -/turf/open/floor/plasteel/dark, -/area/security/prison) "aeU" = ( +/obj/machinery/holopad, /turf/open/floor/plasteel/dark, /area/security/prison) "aeV" = ( -/obj/effect/landmark/xeno_spawn, +/obj/item/storage/crayons, /turf/open/floor/plasteel/dark, /area/security/prison) "aeW" = ( -/obj/structure/sink{ - pixel_y = 30 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel/cafeteria, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeX" = ( -/obj/machinery/washing_machine, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/seed_extractor, +/obj/effect/turf_decal/tile/green{ + dir = 1 }, -/obj/effect/turf_decal/tile/blue{ +/obj/effect/turf_decal/tile/green{ dir = 8 }, -/turf/open/floor/plasteel/cafeteria, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "aeY" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -2193,37 +2210,40 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "afn" = ( -/obj/machinery/computer/libraryconsole/bookmanagement, -/obj/structure/table, -/obj/machinery/newscaster{ - pixel_x = -32 +/obj/machinery/vr_sleeper{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"afo" = ( -/obj/structure/chair/stool, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"afp" = ( -/obj/item/storage/dice, -/obj/structure/table, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"afq" = ( -/obj/structure/table, -/obj/item/instrument/harmonica, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"afr" = ( /obj/effect/turf_decal/tile/blue{ dir = 8 }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/light/small, /turf/open/floor/plasteel/cafeteria, /area/security/prison) +"afo" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) +"afp" = ( +/obj/structure/bookcase, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"afq" = ( +/obj/effect/landmark/xeno_spawn, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"afr" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "aft" = ( /obj/machinery/light/small{ dir = 8 @@ -2295,60 +2315,46 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) "afC" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" }, /turf/open/floor/plasteel/dark, /area/security/prison) "afD" = ( -/obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, +/obj/structure/weightmachine/weightlifter, /turf/open/floor/plasteel/dark, /area/security/prison) "afE" = ( -/obj/item/toy/cards/deck, -/obj/structure/table, -/turf/open/floor/plasteel/dark, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/cafeteria, /area/security/prison) "afF" = ( -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, +/obj/machinery/computer/libraryconsole/bookmanagement, /obj/structure/table, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 +/obj/machinery/newscaster{ + pixel_x = -32 }, /turf/open/floor/plasteel/dark, /area/security/prison) "afG" = ( /obj/structure/chair/stool, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, /turf/open/floor/plasteel/dark, /area/security/prison) "afH" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, +/obj/item/storage/dice, +/obj/structure/table, /turf/open/floor/plasteel/dark, /area/security/prison) "afI" = ( -/obj/machinery/computer/arcade{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/obj/structure/grille, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "afJ" = ( /obj/effect/turf_decal/tile/neutral, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -2418,43 +2424,44 @@ }, /turf/open/floor/plating, /area/ai_monitored/turret_protected/AIsatextAS) -"afU" = ( -/turf/closed/wall, -/area/security/execution/transfer) -"afX" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) "afZ" = ( -/obj/machinery/vending/sustenance, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aga" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agb" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agc" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door/window/westleft{ - base_state = "right"; - icon_state = "right"; - name = "Unisex Showers" - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"agd" = ( /obj/machinery/shower{ dir = 8 }, /obj/item/bikehorn/rubberducky, /turf/open/floor/plasteel/freezer, /area/security/prison) +"aga" = ( +/obj/structure/table, +/obj/item/instrument/harmonica, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agb" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/light/small, +/turf/open/floor/plasteel/cafeteria, +/area/security/prison) +"agc" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agd" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "age" = ( /obj/machinery/teleport/station, /obj/effect/turf_decal/stripes/line{ @@ -2487,41 +2494,23 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "agi" = ( -/obj/machinery/door/poddoor{ - id = "executionspaceblast" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "agj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/machinery/computer/cryopod{ + dir = 1; + pixel_y = -26 }, -/obj/machinery/light/small{ +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agl" = ( +/obj/machinery/cryopod{ dir = 1 }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"agl" = ( -/obj/structure/table/glass, -/obj/item/restraints/handcuffs, -/obj/item/razor, -/obj/machinery/light/small{ - dir = 4 - }, /turf/open/floor/plasteel/dark, -/area/security/execution/transfer) +/area/security/prison) "agn" = ( -/obj/machinery/vending/cola, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"ago" = ( -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"agp" = ( /obj/item/soap/nanotrasen, /turf/open/floor/plasteel/freezer, /area/security/prison) @@ -2558,54 +2547,11 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "agv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/item/toy/cards/deck, +/obj/structure/table, +/turf/open/floor/plasteel/dark, +/area/security/prison) "agw" = ( -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - name = "Solutions Room"; - req_access_txt = "2" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agx" = ( -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agy" = ( -/turf/closed/wall, -/area/security/prison) -"agz" = ( -/obj/machinery/door/poddoor/preopen{ - id = "permacell2"; - name = "cell blast door" - }, -/obj/machinery/door/airlock/public/glass{ - id_tag = "permabolt2"; - name = "Cell 2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agA" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/wall, -/area/security/prison) -"agB" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -2630,11 +2576,42 @@ }, /turf/open/floor/plasteel/dark, /area/security/prison) -"agC" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restroom" +"agx" = ( +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 }, -/turf/open/floor/plasteel/freezer, +/obj/item/pen, +/obj/structure/table, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agy" = ( +/turf/closed/wall, +/area/security/prison) +"agz" = ( +/obj/structure/chair/stool, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agB" = ( +/obj/machinery/computer/arcade{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/security/prison) "agD" = ( /obj/machinery/light/small{ @@ -2651,52 +2628,6 @@ /turf/open/floor/plating, /area/ai_monitored/turret_protected/aisat_interior) "agF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plating, -/area/security/execution/transfer) -"agH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agI" = ( -/obj/structure/bed, -/obj/machinery/camera{ - c_tag = "Permabrig Cell 2"; - network = list("ss13","prison") - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_y = 24; - prison_radio = 1 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/item/toy/plush/slimeplushie, -/turf/open/floor/plasteel, -/area/security/prison) -"agK" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/button/door{ - id = "permabolt2"; - name = "Cell Bolt Control"; - normaldoorcontrol = 1; - pixel_y = 25; - specialfunctions = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/chair, -/turf/open/floor/plasteel, -/area/security/prison) -"agL" = ( /obj/structure/bed, /obj/machinery/camera{ c_tag = "Permabrig Cell 1"; @@ -2714,17 +2645,7 @@ /obj/item/toy/plush/lizardplushie, /turf/open/floor/plasteel, /area/security/prison) -"agM" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel, -/area/security/prison) -"agN" = ( +"agH" = ( /obj/machinery/light/small{ dir = 1 }, @@ -2741,24 +2662,27 @@ /obj/structure/chair, /turf/open/floor/plasteel, /area/security/prison) -"agO" = ( -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"agP" = ( +"agI" = ( /turf/closed/wall, -/area/security/office) -"agQ" = ( +/area/security/execution/transfer) +"agK" = ( /obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"agL" = ( +/obj/machinery/vending/sustenance, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"agM" = ( +/obj/machinery/door/poddoor{ + id = "executionspaceblast" + }, /turf/open/floor/plating, +/area/security/execution/transfer) +"agP" = ( +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, /area/security/office) "agR" = ( /obj/structure/sign/warning/vacuum/external{ @@ -2772,41 +2696,6 @@ /turf/open/space/basic, /area/space/nearstation) "agT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/security/execution/transfer) -"agV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - name = "Solutions Room"; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"agW" = ( -/obj/machinery/flasher{ - id = "PCell 2"; - pixel_x = -28 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel, -/area/security/prison) -"agY" = ( -/obj/structure/table, -/obj/item/paper, -/obj/item/pen, -/turf/open/floor/plasteel, -/area/security/prison) -"agZ" = ( /obj/machinery/flasher{ id = "PCell 1"; pixel_x = -28 @@ -2814,24 +2703,37 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/prison) +"agW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"agZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/flasher{ + id = "executionflash"; + pixel_y = 25 + }, +/obj/machinery/igniter{ + id = "secigniter" + }, +/turf/open/floor/plating, +/area/security/execution/transfer) "aha" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/stripes/line{ + dir = 5 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"ahb" = ( -/obj/structure/toilet/secret/prison{ - dir = 8 +/obj/machinery/light/small{ + dir = 1 }, -/turf/open/floor/plasteel/freezer, -/area/security/prison) -"ahd" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/turf/open/floor/plating, +/area/security/execution/transfer) "ahh" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -2847,84 +2749,12 @@ /turf/open/space, /area/space/nearstation) "ahj" = ( -/obj/structure/rack, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/item/clothing/suit/straight_jacket, -/obj/item/tank/internals/anesthetic, -/obj/item/clothing/mask/breath/medical, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahk" = ( -/obj/machinery/button/flasher{ - id = "executionflash"; - pixel_x = 6; - pixel_y = 27 - }, -/obj/machinery/button/door{ - id = "executionspaceblast"; - name = "Vent to Space"; - pixel_x = -6; - pixel_y = 32; - req_access_txt = "7" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/button/ignition{ - id = "secigniter"; - pixel_x = 6; - pixel_y = 36 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahl" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahm" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Long-Term Cell 2"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ahn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 - }, -/turf/closed/wall, -/area/security/prison) -"aho" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 4 }, /turf/closed/wall, /area/security/prison) -"ahp" = ( +"ahk" = ( /obj/machinery/door/airlock/security/glass{ name = "Long-Term Cell 1"; req_access_txt = "2" @@ -2938,19 +2768,45 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ahq" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) -"ahr" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +"ahl" = ( +/obj/structure/table/glass, +/obj/item/restraints/handcuffs, +/obj/item/razor, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"ahm" = ( +/obj/machinery/vending/cola, +/turf/open/floor/plasteel/dark, +/area/security/prison) +"ahn" = ( +/obj/structure/lattice, +/obj/machinery/camera/motion{ + c_tag = "Armory External"; + dir = 1 + }, +/turf/open/space, +/area/space/nearstation) +"aho" = ( +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"ahp" = ( +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/door/airlock/external{ - name = "Security External Airlock"; - req_access_txt = "63" - }, /turf/open/floor/plating, -/area/maintenance/fore) +/area/security/execution/transfer) +"ahr" = ( +/obj/structure/chair, +/obj/machinery/atmospherics/components/unary/outlet_injector/on, +/turf/open/floor/plating, +/area/security/execution/transfer) "ahs" = ( /obj/structure/lattice/catwalk, /obj/structure/transit_tube, @@ -2961,128 +2817,16 @@ /turf/open/space/basic, /area/space/nearstation) "ahu" = ( -/obj/structure/table/glass, -/obj/item/flashlight/lamp, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/execution/transfer) +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/prison) "ahv" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/security/execution/transfer) +/turf/open/floor/plasteel, +/area/security/prison) "ahw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"ahx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahy" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahz" = ( -/obj/machinery/button/door{ - id = "executionfireblast"; - name = "Transfer Area Lockdown"; - pixel_x = 25; - pixel_y = -5; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = 24; - pixel_y = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/execution/transfer) -"ahB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ahC" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/button/flasher{ - id = "PCell 2"; - pixel_x = 5; - pixel_y = 24 - }, -/obj/machinery/button/door{ - id = "permacell2"; - name = "Cell 2 Lockdown"; - pixel_x = 4; - pixel_y = 34; - req_access_txt = "2" - }, -/turf/open/floor/plasteel, -/area/security/prison) -"ahD" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/prison) -"ahF" = ( /obj/machinery/camera{ c_tag = "Brig Prison Hallway"; network = list("ss13","prison") @@ -3095,7 +2839,7 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ahG" = ( +"ahx" = ( /obj/structure/cable{ icon_state = "2-4" }, @@ -3117,7 +2861,7 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ahH" = ( +"ahy" = ( /obj/structure/cable{ icon_state = "1-8" }, @@ -3129,7 +2873,7 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ahI" = ( +"ahz" = ( /obj/machinery/light{ dir = 1 }, @@ -3138,7 +2882,7 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ahJ" = ( +"ahA" = ( /obj/machinery/power/apc/highcap/five_k{ dir = 1; name = "Prison Wing APC"; @@ -3150,165 +2894,75 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ahK" = ( +"ahB" = ( /obj/structure/table, /obj/item/melee/chainofcommand, /obj/item/melee/baton, /turf/open/floor/plasteel, /area/security/prison) +"ahJ" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"ahK" = ( +/obj/structure/closet/l3closet, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) "ahL" = ( -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) -"ahM" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -27 - }, +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/delivery, /turf/open/floor/plasteel/showroomfloor, /area/security/office) "ahN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) "ahO" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/structure/closet/secure_closet/hos, +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_y = 30 }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) -"ahP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 +/obj/machinery/button/door{ + id = "hos_spess_shutters"; + name = "Space shutters"; + pixel_x = 24; + req_access_txt = "1" }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) "ahQ" = ( -/obj/machinery/light{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/turf/open/floor/plating, +/area/security/execution/transfer) "ahR" = ( /obj/structure/lattice/catwalk, /obj/structure/transit_tube/crossing, /turf/open/space/basic, /area/space/nearstation) "ahS" = ( -/obj/structure/table/optable, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/execution/transfer) -"ahT" = ( -/turf/open/floor/plasteel/white, -/area/security/execution/transfer) -"ahU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) -"ahV" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahW" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahX" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahY" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - name = "Prisoner Transfer Centre"; - req_access_txt = "2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"ahZ" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aia" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aib" = ( /obj/structure/cable{ icon_state = "4-8" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/prison) -"aic" = ( +"ahU" = ( /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/prison) -"aid" = ( +"ahV" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -3318,22 +2972,22 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/prison) -"aie" = ( +"ahW" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, /turf/open/floor/plasteel, /area/security/prison) -"aif" = ( +"ahX" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, /turf/open/floor/plasteel, /area/security/prison) -"aig" = ( +"ahY" = ( /turf/open/floor/plasteel, /area/security/prison) -"aih" = ( +"ahZ" = ( /obj/structure/table, /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -3342,7 +2996,7 @@ /obj/item/razor, /turf/open/floor/plasteel, /area/security/prison) -"aii" = ( +"aib" = ( /obj/structure/table, /obj/item/storage/box/chemimp{ pixel_x = 6 @@ -3352,25 +3006,18 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aij" = ( +"aic" = ( /obj/structure/closet/secure_closet/contraband/armory, /obj/item/poster/random_contraband, /obj/item/clothing/suit/armor/navyblue/russian, /obj/item/grenade/plastic/c4, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aik" = ( -/obj/structure/closet/secure_closet/lethalshots, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor" - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ail" = ( +"aid" = ( /obj/vehicle/ridden/secway, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aim" = ( +"aie" = ( /obj/item/grenade/barrier{ pixel_x = 4 }, @@ -3381,43 +3028,62 @@ /obj/structure/table, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"ain" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 +"aig" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Equipment Room"; + req_access_txt = "1" }, -/turf/open/floor/plasteel/showroomfloor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/office) +"ail" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Equipment Room"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, /area/security/office) "aio" = ( -/obj/structure/closet/l3closet, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) -"aip" = ( -/obj/structure/closet/bombcloset/security, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) -"aiq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) -"air" = ( -/obj/vehicle/ridden/secway, -/obj/item/key/security, -/obj/effect/turf_decal/bot, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red, +/obj/item/storage/secure/safe{ + pixel_x = -22; + pixel_y = 32 }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) +"aiq" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) +"air" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "hos_spess_shutters"; + name = "Space shutters" + }, +/turf/open/floor/plating, +/area/command/heads_quarters/hos) "ais" = ( -/obj/structure/tank_dispenser/oxygen, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + name = "Solutions Room"; + req_access_txt = "2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "ait" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -3426,100 +3092,22 @@ /turf/closed/wall, /area/maintenance/department/security/brig) "aiv" = ( -/obj/structure/table/glass, -/obj/item/storage/backpack/duffelbag/sec/surgery{ - pixel_y = 5 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/execution/transfer) +/turf/open/floor/plasteel, +/area/security/prison) "aiw" = ( -/obj/machinery/power/emitter/anchored{ - dir = 1; - state = 2 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/execution/transfer) -"aix" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aiy" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aiz" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/execution/transfer) -"aiA" = ( -/turf/closed/wall/r_wall, -/area/security/execution/transfer) -"aiB" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aiC" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aiD" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aiE" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aiF" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, /turf/open/floor/plasteel, /area/security/prison) -"aiG" = ( +"aix" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -3528,22 +3116,29 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"aiH" = ( +"aiy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/prison) -"aiJ" = ( -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 - }, +"aiz" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel, /area/security/prison) -"aiK" = ( +"aiA" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/door/window/westleft{ + base_state = "right"; + icon_state = "right"; + name = "Unisex Showers" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"aiB" = ( /obj/structure/table, /obj/item/assembly/signaler, /obj/item/electropack, @@ -3553,7 +3148,7 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"aiL" = ( +"aiD" = ( /obj/structure/table, /obj/item/storage/box/flashbangs{ pixel_x = 6; @@ -3568,16 +3163,16 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aiM" = ( +"aiF" = ( /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aiN" = ( +"aiG" = ( /obj/structure/cable{ icon_state = "2-4" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aiO" = ( +"aiH" = ( /obj/structure/table, /obj/item/storage/box/firingpins, /obj/item/storage/box/firingpins, @@ -3591,28 +3186,95 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aiP" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Equipment Room"; - req_access_txt = "1" - }, +"aiJ" = ( +/obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /turf/open/floor/plasteel, /area/security/office) +"aiK" = ( +/obj/structure/filingcabinet, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/office) +"aiL" = ( +/obj/structure/table, +/obj/structure/sign/plaques/golden{ + pixel_y = 32 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = 1; + pixel_y = 3 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/office) +"aiM" = ( +/obj/machinery/vending/coffee, +/obj/machinery/status_display/evac{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/office) +"aiN" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/office) +"aiO" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) "aiQ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Equipment Room"; - req_access_txt = "1" +/obj/machinery/computer/secure_data{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/office) -"aiR" = ( -/turf/closed/wall, +/turf/open/floor/carpet, /area/command/heads_quarters/hos) "aiS" = ( /turf/closed/wall, @@ -3628,28 +3290,6 @@ /area/maintenance/department/crew_quarters/dorms) "aiV" = ( /obj/structure/table, -/obj/machinery/microwave, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aiW" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aiX" = ( -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/obj/item/reagent_containers/glass/beaker, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aiY" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aiZ" = ( -/obj/structure/table, /obj/item/storage/box/bodybags, /obj/item/pen, /obj/machinery/firealarm{ @@ -3666,7 +3306,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) -"aja" = ( +"aiW" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -3679,7 +3319,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) -"ajb" = ( +"aiX" = ( /obj/structure/closet/secure_closet/injection, /obj/machinery/power/apc{ dir = 4; @@ -3695,30 +3335,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/execution/transfer) -"ajc" = ( -/obj/structure/closet/secure_closet/brig, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"ajd" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing"; - req_access_txt = "1" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/prison) -"aje" = ( +"aiZ" = ( /obj/structure/cable{ icon_state = "0-2" }, @@ -3726,7 +3343,7 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/prison) -"ajf" = ( +"aja" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ name = "Prison Wing"; @@ -3745,22 +3362,10 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"ajg" = ( -/obj/structure/rack, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof, -/obj/machinery/light{ - dir = 8; - light_color = "#e8eaff" - }, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 - }, +"ajb" = ( /turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ajh" = ( +/area/security/execution/transfer) +"ajd" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/riot{ pixel_x = -3; @@ -3782,13 +3387,13 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"aji" = ( +"aje" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"ajj" = ( +"ajf" = ( /obj/structure/rack, /obj/item/storage/box/rubbershot{ pixel_x = -3; @@ -3813,123 +3418,143 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) +"ajg" = ( +/obj/structure/chair/stool, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/office) +"ajh" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/office) +"aji" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/office) +"ajj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/office) "ajk" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/door/airlock/command/glass{ + name = "Head of Security"; + req_access_txt = "58" }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/office) +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) "ajl" = ( -/obj/structure/filingcabinet, -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_y = 30 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 }, -/turf/open/floor/plasteel, -/area/security/office) +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) "ajm" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box{ - pixel_y = 2 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/structure/noticeboard{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/office) +/obj/effect/landmark/start/head_of_security, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "ajn" = ( -/obj/structure/table, -/obj/structure/sign/plaques/golden{ - pixel_y = 32 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/light{ - dir = 1 - }, -/obj/item/storage/box/handcuffs{ - pixel_x = 1; - pixel_y = 3 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/chair/office/dark{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/office) +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "ajo" = ( -/obj/machinery/vending/coffee, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/office) +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "ajp" = ( -/obj/machinery/photocopier, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/office) -"ajq" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/chair/comfy/black{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/office) +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) +"ajq" = ( +/obj/machinery/computer/security/hos{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "ajr" = ( -/obj/item/reagent_containers/food/snacks/donut/chaos, -/turf/open/floor/plating, -/area/command/heads_quarters/hos) +/obj/machinery/door/poddoor/preopen{ + id = "permacell2"; + name = "cell blast door" + }, +/obj/machinery/door/airlock/public/glass{ + id_tag = "permabolt2"; + name = "Cell 2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/prison) "ajs" = ( -/turf/closed/wall/r_wall, -/area/command/heads_quarters/hos) +/obj/machinery/door/airlock{ + name = "Unisex Restroom" + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) "ajt" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ @@ -3986,37 +3611,7 @@ }, /turf/open/space, /area/space/nearstation) -"ajB" = ( -/obj/item/storage/box/mousetraps, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) "ajC" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ajD" = ( -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ajE" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/structure/sign/poster/contraband/random{ - pixel_x = 32 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ajF" = ( -/obj/machinery/atmospherics/components/unary/tank/oxygen, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ajG" = ( -/obj/machinery/atmospherics/components/unary/tank/nitrogen, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ajH" = ( -/turf/closed/wall, -/area/security/processing/cremation) -"ajI" = ( /obj/machinery/door/airlock/security{ aiControlDisabled = 1; name = "Crematorium"; @@ -4027,7 +3622,30 @@ }, /turf/open/floor/plasteel/dark, /area/security/processing/cremation) -"ajJ" = ( +"ajD" = ( +/turf/closed/wall, +/area/security/processing/cremation) +"ajE" = ( +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"ajF" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/vending/wardrobe/sec_wardrobe, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"ajG" = ( +/obj/structure/closet/secure_closet/security/sec, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room" + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 29 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"ajH" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ id = "Prison Gate"; @@ -4037,19 +3655,7 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/brig) -"ajK" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "Prison Gate"; - name = "prison blast door" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"ajL" = ( +"ajI" = ( /obj/machinery/door/firedoor, /obj/machinery/door/poddoor/preopen{ id = "Prison Gate"; @@ -4059,60 +3665,7 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/security/brig) -"ajM" = ( -/turf/closed/wall, -/area/security/brig) -"ajN" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajO" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/obj/structure/sign/poster/official/safety_report{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajP" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -27 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ajQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"ajR" = ( +"ajJ" = ( /obj/structure/rack, /obj/item/clothing/suit/armor/bulletproof{ pixel_x = -3; @@ -4129,14 +3682,14 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"ajS" = ( +"ajK" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"ajT" = ( +"ajL" = ( /obj/structure/rack, /obj/item/gun/energy/laser{ pixel_x = -3; @@ -4148,118 +3701,112 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"ajU" = ( +"ajM" = ( +/turf/closed/wall, +/area/security/brig) +"ajN" = ( /obj/structure/cable{ - icon_state = "0-2" + icon_state = "1-2" }, -/obj/machinery/power/apc{ - dir = 8; - name = "Security Office APC"; - pixel_x = -25 +/obj/machinery/newscaster{ + pixel_x = -32 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel, /area/security/office) -"ajV" = ( +"ajQ" = ( /obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel, /area/security/office) -"ajW" = ( -/obj/structure/chair/stool, +"ajR" = ( /obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/security/office) -"ajX" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/office) -"ajY" = ( -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/office) -"ajZ" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +"ajS" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/office) +"ajT" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/office) +"ajU" = ( +/turf/closed/wall, +/area/command/heads_quarters/hos) +"ajV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) +"ajW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) +"ajX" = ( +/obj/structure/table/wood, +/obj/item/phone, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) +"ajY" = ( +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) +"ajZ" = ( +/obj/machinery/computer/card/minor/hos{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "aka" = ( -/obj/machinery/suit_storage_unit/hos, -/obj/machinery/airalarm{ - pixel_y = 22 - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/machinery/vending/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) "akb" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/obj/structure/sign/plaques/kiddie{ - desc = "An embossed piece of paper from the University of Nanotrasen at Portpoint."; - name = "\improper 'Diploma' frame"; - pixel_y = 32 +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plating, +/area/security/execution/transfer) "akc" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/obj/machinery/status_display/evac{ - pixel_y = 32 - }, -/obj/machinery/light{ - dir = 1; - light_color = "#706891" - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/security/execution/transfer) "akd" = ( -/obj/structure/table/wood, -/obj/item/storage/box/seccarts{ - pixel_x = 3; - pixel_y = 2 +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, -/obj/item/storage/box/deputy, -/obj/machinery/newscaster/security_unit{ - pixel_y = 32 - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plating, +/area/security/execution/transfer) "ake" = ( -/obj/structure/closet/secure_closet/hos, -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Security's Desk"; - departmentType = 5; - name = "Head of Security RC"; - pixel_y = 30 - }, -/obj/machinery/button/door{ - id = "hos_spess_shutters"; - name = "Space shutters"; - pixel_x = 24; - req_access_txt = "1" - }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/area/security/execution/transfer) "akf" = ( /turf/open/floor/carpet, /area/maintenance/department/crew_quarters/dorms) @@ -4367,54 +3914,6 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "akr" = ( -/obj/machinery/washing_machine, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = -31 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aks" = ( -/obj/machinery/light/small, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"akt" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/button/door{ - id = "mainthideout"; - name = "Door Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 25; - specialfunctions = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aku" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped{ - dir = 1; - node1_concentration = 0.2; - node2_concentration = 0.8; - on = 1 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"akv" = ( -/obj/machinery/atmospherics/pipe/manifold/general/hidden, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"akw" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 9 - }, -/obj/machinery/meter, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"akx" = ( /obj/structure/bodycontainer/crematorium, /obj/item/radio/intercom{ name = "Station Intercom (General)"; @@ -4422,16 +3921,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/processing/cremation) -"aky" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"akz" = ( +"aks" = ( /obj/machinery/button/crematorium{ pixel_x = 25 }, @@ -4446,26 +3936,7 @@ }, /turf/open/floor/plasteel/dark, /area/security/processing/cremation) -"akA" = ( -/turf/closed/wall/r_wall, -/area/security/brig) -"akB" = ( -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"akC" = ( +"aku" = ( /obj/item/storage/firstaid/regular{ pixel_x = 3; pixel_y = 3 @@ -4483,7 +3954,7 @@ }, /turf/open/floor/plasteel/white, /area/security/brig) -"akD" = ( +"akv" = ( /obj/item/radio/intercom{ name = "Station Intercom (General)"; pixel_y = 24 @@ -4498,7 +3969,7 @@ }, /turf/open/floor/plasteel/white, /area/security/brig) -"akE" = ( +"akw" = ( /obj/structure/window/reinforced{ dir = 4 }, @@ -4512,19 +3983,7 @@ }, /turf/open/floor/plasteel/white, /area/security/brig) -"akF" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akG" = ( +"akx" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -4533,14 +3992,14 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"akH" = ( +"aky" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) -"akI" = ( +"akz" = ( /obj/machinery/door/airlock/security{ name = "Evidence Room"; req_access_txt = "63" @@ -4560,13 +4019,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"akJ" = ( +"akA" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, /turf/open/floor/plasteel, /area/security/brig) -"akK" = ( +"akB" = ( /obj/structure/closet{ name = "Evidence Closet" }, @@ -4580,7 +4039,7 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"akL" = ( +"akD" = ( /obj/structure/rack, /obj/item/gun/energy/e_gun/advtaser{ pixel_x = -3; @@ -4595,24 +4054,24 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"akM" = ( +"akE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"akN" = ( +"akF" = ( /obj/effect/landmark/event_spawn, /obj/structure/rack, /obj/item/key/security, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"akO" = ( +"akG" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"akP" = ( +"akH" = ( /obj/structure/rack, /obj/item/gun/ballistic/shotgun/riot, /obj/item/gun/ballistic/shotgun/riot{ @@ -4621,88 +4080,144 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"akQ" = ( +"akJ" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/newscaster{ - pixel_x = -32 - }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -27 + }, /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, /obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel, /area/security/office) -"akR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +"akN" = ( +/obj/machinery/computer/security, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/office) +"akO" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plasteel, /area/security/office) -"akT" = ( +"akP" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/office) +"akQ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/command/heads_quarters/hos) -"akU" = ( +"akR" = ( /obj/structure/cable{ - icon_state = "2-8" + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) +"akT" = ( +/obj/structure/bed, +/obj/machinery/camera{ + c_tag = "Permabrig Cell 2"; + network = list("ss13","prison") + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_y = 24; + prison_radio = 1 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/toy/plush/slimeplushie, +/turf/open/floor/plasteel, +/area/security/prison) +"akU" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plasteel, +/area/security/prison) "akV" = ( -/obj/item/storage/secure/safe{ - pixel_x = -22; - pixel_y = 32 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/effect/landmark/start/prisoner, +/turf/open/floor/plasteel, +/area/security/prison) "akW" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/structure/sink{ + dir = 8; + pixel_x = -12; + pixel_y = 2 }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/machinery/light/small{ + dir = 4 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) "akX" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) -"akZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-4" }, /obj/machinery/door/poddoor/preopen{ - id = "hos_spess_shutters"; - name = "Space shutters" + id = "executionfireblast" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/execution/transfer) +"akZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/general/visible, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" }, /turf/open/floor/plating, -/area/command/heads_quarters/hos) +/area/security/execution/transfer) "ala" = ( /obj/structure/transit_tube/curved{ dir = 1 @@ -4756,92 +4271,12 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "ali" = ( -/obj/machinery/door/airlock/abandoned{ - id_tag = "mainthideout"; - name = "Hideout" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"alj" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/obj/item/wrench, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"alk" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"all" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/obj/machinery/portable_atmospherics/canister/nitrous_oxide, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"alm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -22 - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"aln" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plasteel/dark, /area/security/processing/cremation) -"alo" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Brig Crematorium"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"alp" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"alq" = ( -/obj/item/storage/box/bodybags, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/glass, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/item/reagent_containers/syringe{ - name = "steel point" - }, -/obj/item/reagent_containers/glass/bottle/charcoal, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"alr" = ( +"alj" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, @@ -4850,13 +4285,13 @@ }, /turf/open/floor/plasteel/white, /area/security/brig) -"als" = ( +"alk" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, /turf/open/floor/plasteel/white, /area/security/brig) -"alt" = ( +"all" = ( /obj/machinery/door/window/westleft{ dir = 4; name = "Brig Infirmary" @@ -4870,19 +4305,7 @@ }, /turf/open/floor/plasteel/white, /area/security/brig) -"alu" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alv" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alw" = ( +"aln" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 }, @@ -4892,13 +4315,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"alx" = ( +"alo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/closed/wall, /area/security/brig) -"aly" = ( +"alp" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, @@ -4916,7 +4339,7 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"alz" = ( +"alq" = ( /obj/structure/closet{ name = "Evidence Closet" }, @@ -4929,7 +4352,54 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"alA" = ( +"als" = ( +/obj/machinery/flasher/portable, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"alt" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"alu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"alv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"alw" = ( /obj/machinery/flasher/portable, /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -4943,334 +4413,10 @@ }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) -"alB" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/firealarm{ - dir = 4; - pixel_x = -27 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/office) -"alC" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = -4; - pixel_y = 12 - }, -/obj/item/pen, -/obj/item/folder/red{ - layer = 2.9; - pixel_x = 8 - }, -/turf/open/floor/plasteel, -/area/security/office) -"alD" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel, -/area/security/office) -"alE" = ( -/turf/open/floor/plasteel, -/area/security/office) -"alF" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel, -/area/security/office) -"alG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/office) -"alH" = ( -/turf/open/floor/plasteel/dark, -/area/security/office) -"alI" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) -"alJ" = ( -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"alK" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"alL" = ( -/obj/structure/table/wood, -/obj/item/folder/red, -/obj/item/stamp/hos, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"alM" = ( -/obj/machinery/computer/secure_data{ - dir = 8 - }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"alN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "hos_spess_shutters"; - name = "Space shutters" - }, -/turf/open/floor/plating, -/area/command/heads_quarters/hos) -"alO" = ( -/obj/structure/transit_tube/diagonal, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"alP" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/crew_quarters/dorms) -"alQ" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/wood{ - icon_state = "wood-broken7" - }, -/area/maintenance/department/crew_quarters/dorms) -"alR" = ( -/obj/effect/landmark/blobstart, -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, -/area/maintenance/department/crew_quarters/dorms) -"alS" = ( -/obj/structure/chair/stool/bar, -/turf/open/floor/wood, -/area/maintenance/department/crew_quarters/dorms) -"alT" = ( -/obj/machinery/meter, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"alU" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 8; - name = "Supply to Security" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"alV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"alW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"alX" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"alY" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"alZ" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/camera{ - c_tag = "Brig Infirmary"; - dir = 4 - }, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ama" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"amb" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"amc" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Brig Infirmary" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"amd" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"ame" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amf" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc/highcap/ten_k{ - dir = 4; - name = "Brig APC"; - pixel_x = 24 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amg" = ( +"alx" = ( /turf/closed/wall/r_wall, -/area/security/warden) -"amh" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"ami" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"amj" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"amk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/warden) -"aml" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/warden) -"amm" = ( +/area/ai_monitored/security/armory) +"aly" = ( /obj/structure/cable{ icon_state = "1-2" }, @@ -5297,52 +4443,282 @@ }, /turf/open/floor/plasteel, /area/security/office) -"amn" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +"alA" = ( +/obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/office) -"amo" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/security_officer, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 + dir = 9 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/office) -"amp" = ( -/obj/machinery/holopad, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 1 +"alI" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, +/obj/machinery/door/poddoor/preopen{ + id = "executionfireblast" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/execution/transfer) +"alJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + name = "Solutions Room"; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"alK" = ( +/obj/machinery/flasher{ + id = "PCell 2"; + pixel_x = -28 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, -/area/security/office) -"amq" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/landmark/start/security_officer, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +/area/security/prison) +"alL" = ( +/obj/structure/cable{ + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, +/area/security/prison) +"alM" = ( +/obj/structure/toilet/secret/prison{ + dir = 8 + }, +/turf/open/floor/plasteel/freezer, +/area/security/prison) +"alN" = ( +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/plasteel/showroomfloor, /area/security/office) -"amr" = ( +"alO" = ( +/obj/structure/transit_tube/diagonal, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) +"alP" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/crew_quarters/dorms) +"alQ" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood{ + icon_state = "wood-broken7" + }, +/area/maintenance/department/crew_quarters/dorms) +"alR" = ( +/obj/effect/landmark/blobstart, +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/department/crew_quarters/dorms) +"alS" = ( +/obj/structure/chair/stool/bar, +/turf/open/floor/wood, +/area/maintenance/department/crew_quarters/dorms) +"alT" = ( /obj/structure/cable{ icon_state = "2-4" }, -/obj/structure/disposalpipe/segment{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"alU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"alV" = ( +/obj/machinery/door/window/westleft{ + base_state = "right"; + dir = 4; + icon_state = "right"; + name = "Brig Infirmary" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/turf/open/floor/plasteel/white, +/area/security/brig) +"alW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, +/turf/open/floor/plasteel, +/area/security/brig) +"alX" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/highcap/ten_k{ + dir = 4; + name = "Brig APC"; + pixel_x = 24 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alY" = ( +/obj/structure/punching_bag, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"alZ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/structure/window/reinforced, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/open/floor/plating, +/area/security/execution/transfer) +"ama" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 4; + layer = 2.4 + }, +/obj/item/wrench, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/execution/transfer) +"amb" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"amc" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Armory"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"amd" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/warden) +"ame" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/window/southleft{ + base_state = "right"; + icon_state = "right"; + name = "Armory"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"amf" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/warden) +"amg" = ( +/turf/closed/wall/r_wall, +/area/security/warden) +"ami" = ( +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_x = -4; + pixel_y = 12 + }, +/obj/item/pen, +/obj/item/folder/red{ + layer = 2.9; + pixel_x = 8 + }, +/turf/open/floor/plasteel, +/area/security/office) +"amj" = ( +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/office) +"amk" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -5350,89 +4726,150 @@ }, /turf/open/floor/plasteel, /area/security/office) -"ams" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +"aml" = ( +/obj/machinery/computer/security/telescreen/interrogation{ + dir = 8; + pixel_x = 30 }, /turf/open/floor/plasteel/dark, /area/security/office) +"amm" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/security/office) +"amn" = ( +/turf/open/floor/plasteel/dark, +/area/security/office) +"amo" = ( +/obj/machinery/status_display/ai{ + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) +"amp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/office) +"amq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/general/visible{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"amr" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/item/clothing/suit/straight_jacket, +/obj/item/tank/internals/anesthetic, +/obj/item/clothing/mask/breath/medical, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"ams" = ( +/obj/machinery/button/flasher{ + id = "executionflash"; + pixel_x = 6; + pixel_y = 27 + }, +/obj/machinery/button/door{ + id = "executionspaceblast"; + name = "Vent to Space"; + pixel_x = -6; + pixel_y = 32; + req_access_txt = "7" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/button/ignition{ + id = "secigniter"; + pixel_x = 6; + pixel_y = 36 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "amt" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Head of Security"; - req_access_txt = "58" +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 28 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/area/security/execution/transfer) "amu" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/light{ + dir = 8 }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 9 + dir = 6 }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -27 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) "amv" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 8 }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/landmark/start/head_of_security, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) "amw" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 }, -/obj/structure/chair/office/dark{ +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"amx" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"amy" = ( +/obj/machinery/light{ dir = 4 }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"amx" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"amy" = ( -/obj/structure/chair/comfy/black{ - dir = 8 +/obj/structure/extinguisher_cabinet{ + pixel_x = 27 }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) "amz" = ( -/obj/machinery/computer/security/hos{ - dir = 8 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/execution/transfer) "amA" = ( /obj/structure/transit_tube/curved/flipped{ dir = 4 @@ -5471,134 +4908,25 @@ }, /area/maintenance/department/crew_quarters/dorms) "amH" = ( -/obj/machinery/door/airlock/atmos/abandoned{ - name = "Atmospherics Maintenance"; - req_access_txt = "12;24" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) "amI" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Crematorium Maintenance"; - req_one_access_txt = "2;27" - }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "amJ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 6 - }, -/turf/closed/wall, -/area/security/processing/cremation) -"amK" = ( -/obj/machinery/door/window/eastright{ - base_state = "left"; - dir = 1; - icon_state = "left"; - name = "Security Delivery"; - req_access_txt = "1" - }, -/obj/machinery/navbeacon{ - codes_txt = "delivery;dir=4"; - dir = 1; - freq = 1400; - location = "Security" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"amL" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"amM" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"amN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"amO" = ( -/obj/structure/closet/crate/freezer, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/obj/item/reagent_containers/blood/OMinus, -/obj/item/reagent_containers/blood/OMinus, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"amP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amQ" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 4 }, @@ -5608,30 +4936,31 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"amS" = ( -/obj/structure/closet/secure_closet/warden, -/obj/item/clothing/mask/gas/sechailer, -/obj/machinery/power/apc{ - dir = 8; - name = "Brig Control APC"; - pixel_x = -25 - }, +"amK" = ( +/obj/structure/table/glass, +/obj/item/flashlight/lamp, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 30 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amT" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/execution/transfer) +"amL" = ( /obj/machinery/computer/prisoner/management, /obj/machinery/airalarm{ pixel_y = 22 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"amU" = ( +"amM" = ( /obj/machinery/computer/security, /obj/machinery/light{ dir = 1 @@ -5646,22 +4975,15 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"amV" = ( +"amN" = ( /obj/machinery/computer/secure_data, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"amW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amX" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"amY" = ( +"amQ" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"amZ" = ( +"amR" = ( /obj/structure/table, /obj/machinery/recharger, /obj/machinery/light/small{ @@ -5676,92 +4998,168 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"ana" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, +"amS" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"anb" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/light_switch{ - dir = 9; - pixel_x = -22 - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/office) -"anc" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/turf/open/floor/plasteel, -/area/security/office) -"and" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /turf/open/floor/plasteel, /area/security/office) -"ane" = ( -/obj/structure/table/wood, -/obj/machinery/recharger, -/obj/structure/disposalpipe/segment, +"amU" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel, /area/security/office) -"anf" = ( +"amV" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/office) +"amX" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/office) +"amY" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/plasteel, /area/security/office) -"ang" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) -"anh" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"ani" = ( -/obj/structure/chair/office/dark{ +"amZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"anj" = ( -/obj/structure/table/wood, -/obj/item/phone, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) -"ank" = ( -/obj/machinery/computer/card/minor/hos{ +/turf/open/floor/plasteel/dark, +/area/security/office) +"ana" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light_switch{ + pixel_y = -22 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) +"anc" = ( +/obj/item/flashlight/lamp, +/obj/structure/table/glass, +/turf/open/floor/plasteel/dark, +/area/security/office) +"and" = ( +/obj/structure/chair{ dir = 8 }, -/turf/open/floor/carpet, -/area/command/heads_quarters/hos) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 8; + network = list("interrogation") + }, +/turf/open/floor/plasteel/dark, +/area/security/office) +"ane" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/white, +/area/security/execution/transfer) +"anf" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/execution/transfer) +"ang" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"anh" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"ani" = ( +/obj/machinery/button/door{ + id = "executionfireblast"; + name = "Transfer Area Lockdown"; + pixel_x = 25; + pixel_y = -5; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = 24; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"anj" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/execution/transfer) +"ank" = ( +/obj/structure/closet/bombcloset/security, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) "anl" = ( /obj/structure/transit_tube/diagonal, /turf/open/space/basic, @@ -5773,83 +5171,16 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "anq" = ( -/obj/structure/grille/broken, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"anr" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ans" = ( -/obj/item/wirecutters, -/obj/effect/spawner/lootdrop/maintenance, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ant" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"anu" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"anv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, /turf/closed/wall, /area/security/processing/cremation) -"anw" = ( -/obj/structure/plasticflaps/opaque, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/processing/cremation) -"anx" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Brig Infirmary Maintenance"; - req_access_txt = "63" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, +"ans" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"any" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"ant" = ( /obj/machinery/light{ dir = 8 }, @@ -5866,13 +5197,13 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"anz" = ( +"anu" = ( /obj/structure/cable{ icon_state = "1-4" }, /turf/open/floor/plasteel, /area/security/brig) -"anA" = ( +"anv" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -5886,7 +5217,7 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"anB" = ( +"anw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-8" @@ -5896,47 +5227,23 @@ }, /turf/open/floor/plating, /area/security/warden) -"anC" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"anD" = ( +"anx" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"anE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"anF" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"anG" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"anH" = ( +"any" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 6 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"anI" = ( +"anz" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"anJ" = ( +"anA" = ( /obj/structure/table, /obj/machinery/recharger, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ @@ -5947,7 +5254,7 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"anK" = ( +"anB" = ( /obj/structure/cable{ icon_state = "0-2" }, @@ -5960,166 +5267,171 @@ }, /turf/open/floor/plating, /area/security/warden) -"anL" = ( +"anC" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, /obj/structure/cable{ icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/turf/open/floor/plasteel, +/area/security/office) +"anE" = ( +/turf/open/floor/plasteel, +/area/security/office) +"anF" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, /turf/open/floor/plasteel, /area/security/office) -"anM" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/office) -"anN" = ( -/obj/structure/chair/office/dark{ - dir = 1 - }, +"anH" = ( /obj/structure/disposalpipe/segment, -/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/office) -"anO" = ( +"anI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /turf/open/floor/plasteel, /area/security/office) -"anP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"anJ" = ( +/obj/machinery/light{ dir = 4 }, -/obj/item/kirbyplants{ - icon_state = "plant-22" +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, /turf/open/floor/plasteel/dark, /area/security/office) -"anQ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"anK" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plating, +/turf/closed/wall, +/area/security/office) +"anL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) +"anM" = ( +/obj/item/folder/red, +/obj/item/taperecorder, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/table/glass, +/turf/open/floor/plasteel/dark, +/area/security/office) +"anN" = ( +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/effect/turf_decal/bot, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"anO" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"anP" = ( +/obj/machinery/suit_storage_unit/hos, +/obj/machinery/airalarm{ + pixel_y = 22 + }, +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) +"anQ" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/sign/plaques/kiddie{ + desc = "An embossed piece of paper from the University of Nanotrasen at Portpoint."; + name = "\improper 'Diploma' frame"; + pixel_y = 32 + }, +/turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "anR" = ( -/obj/structure/cable{ - icon_state = "1-8" +/obj/structure/table/wood, +/obj/machinery/recharger, +/obj/machinery/status_display/evac{ + pixel_y = 32 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/machinery/light_switch{ - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/machinery/light{ + dir = 1; + light_color = "#706891" }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "anS" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/table/wood, +/obj/item/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 }, -/obj/machinery/keycard_auth{ - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/item/storage/box/deputy, +/obj/machinery/newscaster/security_unit{ + pixel_y = 32 }, /turf/open/floor/plasteel/dark, /area/command/heads_quarters/hos) "anT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) -"anU" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Head of Security's Office"; - dir = 1 - }, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_y = -27 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) -"anV" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/apc{ - name = "Head of Security's Office APC"; - pixel_y = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) -"anW" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, /obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "hos_spess_shutters"; - name = "Space shutters" +/turf/open/floor/plating, +/area/security/execution/transfer) +"anU" = ( +/obj/structure/table/optable, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/execution/transfer) +"anV" = ( +/turf/open/floor/plasteel/white, +/area/security/execution/transfer) +"anW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plating, -/area/command/heads_quarters/hos) +/area/security/execution/transfer) "anX" = ( /turf/closed/wall/r_wall, /area/command/teleporter) @@ -6143,82 +5455,7 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/security/brig) -"aoe" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aof" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aog" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) "aoh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aoi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aoj" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aok" = ( -/obj/machinery/computer/security/labor, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aol" = ( -/obj/machinery/computer/shuttle/labor, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aom" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aon" = ( -/turf/open/floor/plasteel, -/area/security/brig) -"aoo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -6229,7 +5466,7 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aop" = ( +"aoi" = ( /obj/structure/bed/dogbed, /obj/machinery/requests_console{ department = "Security"; @@ -6241,33 +5478,26 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"aoq" = ( +"aok" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"aom" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"aor" = ( +"aon" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"aos" = ( -/obj/machinery/door/airlock/security{ - name = "Brig Control"; - req_access_txt = "3" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/door/firedoor, +"aoo" = ( /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"aot" = ( +"aop" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -6282,34 +5512,7 @@ }, /turf/open/floor/plasteel, /area/security/office) -"aou" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/office) -"aov" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/office) -"aow" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/office) -"aox" = ( +"aoq" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -6319,16 +5522,13 @@ }, /turf/open/floor/plasteel, /area/security/office) -"aoy" = ( +"aor" = ( /obj/structure/cable{ icon_state = "1-2" }, /obj/structure/cable{ icon_state = "2-8" }, -/obj/machinery/light{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 10 }, @@ -6339,6 +5539,12 @@ }, /turf/open/floor/plasteel, /area/security/office) +"aow" = ( +/turf/closed/wall/r_wall, +/area/security/office) +"aoy" = ( +/turf/open/floor/plating, +/area/maintenance/fore) "aoz" = ( /turf/closed/wall, /area/maintenance/fore) @@ -6364,134 +5570,51 @@ /obj/structure/grille, /turf/open/space, /area/solars/port) -"aoI" = ( -/obj/structure/lattice, -/turf/open/space, -/area/solars/port) "aoJ" = ( -/obj/structure/lattice, -/obj/structure/grille/broken, -/turf/open/space, -/area/solars/port) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) "aoK" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/department/security/brig) -"aoL" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aoO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, -/obj/machinery/camera{ - c_tag = "Brig Gulag Teleporter"; +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aoL" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/box/prisoner, -/obj/item/razor{ - pixel_x = -6 - }, -/obj/item/paper/guides/jobs/security/labor_camp, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aoP" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aoQ" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/security/warden) -"aoR" = ( -/obj/item/book/manual/wiki/security_space_law, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/glasses/sunglasses, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoS" = ( -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "Secure Gate"; - name = "Entrance Lockdown"; - pixel_x = 5; - pixel_y = -2 - }, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Permabrig Lockdown"; - pixel_x = 5; - pixel_y = 8; - req_access_txt = "2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoT" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/warden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoU" = ( +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aoO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/computer/crew{ dir = 8 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"aoV" = ( +"aoP" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 4 }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"aoW" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoX" = ( -/obj/structure/rack, -/obj/item/crowbar, -/obj/item/wrench, -/obj/item/laser_pointer/red, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoY" = ( -/obj/structure/filingcabinet/chestdrawer, -/obj/machinery/light_switch{ - pixel_y = -22 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aoZ" = ( +"aoQ" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -6499,7 +5622,7 @@ }, /turf/open/floor/plating, /area/security/warden) -"apa" = ( +"aoR" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 4 @@ -6516,7 +5639,18 @@ }, /turf/open/floor/plasteel, /area/security/office) -"apb" = ( +"aoS" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/security/office) +"aoT" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -6526,7 +5660,7 @@ }, /turf/open/floor/plasteel, /area/security/office) -"apc" = ( +"aoU" = ( /obj/structure/disposalpipe/sorting/mail/flip{ dir = 1; sortType = 7 @@ -6536,7 +5670,7 @@ }, /turf/open/floor/plasteel, /area/security/office) -"apd" = ( +"aoV" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -6546,7 +5680,7 @@ }, /turf/open/floor/plasteel, /area/security/office) -"ape" = ( +"aoW" = ( /obj/machinery/airalarm{ dir = 1; pixel_y = -22 @@ -6560,17 +5694,13 @@ }, /turf/open/floor/plasteel, /area/security/office) -"apf" = ( +"aoX" = ( /obj/structure/cable{ icon_state = "1-4" }, /obj/structure/disposalpipe/segment{ dir = 5 }, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = 32; - pixel_y = -32 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 9 }, @@ -6584,9 +5714,29 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/light, /turf/open/floor/plasteel, /area/security/office) -"apg" = ( +"aoY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/office) +"aoZ" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -6599,7 +5749,7 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"aph" = ( +"apa" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -6608,7 +5758,7 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"api" = ( +"apb" = ( /obj/machinery/power/apc{ dir = 1; name = "Fore Maintenance APC"; @@ -6625,7 +5775,7 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"apj" = ( +"apc" = ( /obj/structure/cable{ icon_state = "4-8" }, @@ -6637,13 +5787,32 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"apk" = ( -/obj/structure/cable{ - icon_state = "2-8" +"apf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/fore) +"apj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"apk" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, +/obj/structure/cable{ + icon_state = "2-8" + }, /turf/open/floor/plating, /area/maintenance/fore) "apl" = ( @@ -6663,6 +5832,13 @@ /turf/open/floor/plating, /area/maintenance/fore) "apn" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Security External Airlock"; + req_access_txt = "63" + }, /turf/open/floor/plating, /area/maintenance/fore) "apo" = ( @@ -6721,49 +5897,21 @@ }, /area/maintenance/department/crew_quarters/dorms) "apz" = ( -/obj/item/target/clown, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"apB" = ( -/obj/structure/girder, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"apE" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"apF" = ( -/obj/machinery/computer/prisoner/gulag_teleporter_computer{ - dir = 1 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + name = "Prisoner Transfer Centre"; + req_access_txt = "2" }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"apG" = ( -/obj/machinery/gulag_teleporter, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"apH" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 10 + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"apI" = ( -/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "4-8" }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/warden) -"apJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/warden) -"apK" = ( +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"apE" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/brigdoor{ dir = 1; @@ -6783,7 +5931,7 @@ }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) -"apL" = ( +"apF" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -6791,50 +5939,22 @@ }, /turf/open/floor/plating, /area/security/warden) -"apM" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" +"apG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/showroomfloor, +/turf/open/floor/plating, /area/security/warden) -"apN" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, +"apH" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-2" }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"apO" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"apP" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/warden) +"apL" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ name = "Security Office"; @@ -6844,6 +5964,21 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/office) +"apN" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "apQ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6912,16 +6047,6 @@ /turf/closed/wall, /area/commons/dorms) "aqa" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port) -"aqb" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ icon_state = "2-8" @@ -6931,171 +6056,60 @@ }, /turf/open/space, /area/solars/port) -"aqc" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "portsolar"; - name = "Port Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port) "aqd" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/power/solar{ - id = "starboardsolar"; - name = "Starboard Solar Array" - }, -/turf/open/floor/plasteel/airless/solarpanel, +/obj/structure/lattice, +/turf/open/space, /area/solars/port) "aqe" = ( -/obj/item/target/alien, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "aqg" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, /area/maintenance/department/security/brig) -"aqh" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) "aqi" = ( -/obj/structure/closet, -/obj/item/clothing/under/color/black, -/obj/item/clothing/under/color/red, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aqm" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/computer/prisoner/gulag_teleporter_computer{ dir = 1 }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aqm" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/security/brig) "aqn" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/firealarm{ + pixel_y = 29 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel, /area/security/brig) "aqo" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqq" = ( -/obj/machinery/camera{ - c_tag = "Brig Cells" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqr" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqs" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqt" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqu" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/structure/disposalpipe/segment, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqv" = ( /obj/machinery/camera{ c_tag = "Brig Entrance" }, @@ -7114,22 +6128,23 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aqw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +"aqp" = ( +/obj/structure/chair{ + name = "Defense" }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/green{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqx" = ( +/obj/machinery/camera{ + c_tag = "Courtroom" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aqq" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, @@ -7144,14 +6159,10 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aqy" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +"aqr" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"aqz" = ( /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -7160,11 +6171,23 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aqA" = ( -/obj/machinery/computer/security/telescreen/interrogation{ - dir = 8; - pixel_x = 30 +"aqs" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqt" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aqu" = ( /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -7174,19 +6197,66 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"aqB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +"aqv" = ( +/obj/structure/chair, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, -/area/security/brig) -"aqC" = ( -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aqD" = ( -/obj/machinery/status_display/ai{ - pixel_y = 32 +/area/security/courtroom) +"aqw" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = 22 }, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) +"aqx" = ( +/obj/structure/chair{ + name = "Defense" + }, +/obj/effect/turf_decal/tile/green{ + dir = 1 + }, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/effect/turf_decal/tile/green{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aqA" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"aqB" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aqC" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/fore) +"aqD" = ( +/obj/item/kirbyplants/random, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/fore) "aqE" = ( /obj/structure/cable{ icon_state = "1-2" @@ -7379,166 +6449,141 @@ }, /turf/open/space/basic, /area/space) -"ara" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/solars/port) "arc" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ard" = ( -/obj/item/clothing/head/cone, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"ari" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"arj" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Airlock"; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "prison release"; - name = "Labor Camp Shuttle Lockdown"; - pixel_y = -25; - req_access_txt = "2" - }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/brig) -"ark" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"arl" = ( +/area/command/heads_quarters/hos) +"ari" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) -"arm" = ( +"arj" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) -"arn" = ( +"ark" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/disposalpipe/segment{ dir = 5 }, /turf/open/floor/plasteel, /area/security/brig) -"aro" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +"arl" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) -"arp" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"arq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/structure/disposalpipe/junction{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"arr" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ars" = ( +"arm" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, /area/security/brig) -"art" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +"arn" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) -"aru" = ( +"aro" = ( /obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access_txt = "63" + name = "Security Access"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/courtroom) +"arp" = ( +/obj/structure/cable{ + icon_state = "2-8" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/brig) -"arv" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"arw" = ( +/area/security/courtroom) +"ars" = ( /obj/structure/chair{ - dir = 4 + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/brig) -"arx" = ( -/obj/item/flashlight/lamp, -/obj/structure/table/glass, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"ary" = ( +/area/security/courtroom) +"art" = ( /obj/structure/chair{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/brig) -"arz" = ( -/obj/machinery/camera{ - c_tag = "Brig Interrogation"; - dir = 8; - network = list("interrogation") - }, +/area/security/courtroom) +"aru" = ( +/obj/structure/table, +/obj/item/storage/fancy/donut_box, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) +"arv" = ( +/obj/structure/table/glass, +/obj/item/mmi, +/obj/item/clothing/mask/balaclava, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/execution/transfer) +"arw" = ( +/obj/structure/table, +/obj/item/storage/toolbox/mechanical, +/obj/item/flashlight, +/turf/open/floor/plating, +/area/maintenance/fore) +"arx" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore) +"arz" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel, +/area/maintenance/fore) "arA" = ( /turf/closed/wall/r_wall, /area/command/bridge) @@ -7944,114 +6989,49 @@ /turf/open/floor/plating, /area/commons/dorms) "aso" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/department/security/brig) -"asr" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"asu" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/table/glass, +/obj/item/storage/backpack/duffelbag/sec/surgery{ + pixel_y = 5 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/white, +/area/security/execution/transfer) +"asr" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/preopen{ + id = "prison release"; + name = "prisoner processing blast door" + }, +/turf/open/floor/plasteel/dark, /area/security/brig) -"asv" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +"asu" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/obj/structure/cable{ + icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/brig) -"asw" = ( +"asv" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asx" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asy" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asz" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/security/brig) -"asA" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-8" }, /turf/open/floor/plasteel, /area/security/brig) -"asB" = ( +"asw" = ( /obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -8070,95 +7050,169 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"asC" = ( +"asx" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asD" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asE" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"asG" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/security/brig) -"asH" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"asI" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"asJ" = ( -/obj/item/folder/red, -/obj/item/taperecorder, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/structure/table/glass, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"asK" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) -"asL" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +"asy" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 10 }, /turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asz" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, /area/security/brig) +"asA" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"asB" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/courtroom"; + dir = 8; + name = "Courtroom APC"; + pixel_x = -25 + }, +/obj/structure/cable, +/obj/structure/chair{ + dir = 4; + name = "Bailiff" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asC" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asD" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/item/beacon, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asE" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asF" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asG" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 26 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"asH" = ( +/obj/machinery/power/emitter/anchored{ + dir = 1; + state = 2 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/execution/transfer) +"asI" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = 6 + }, +/obj/item/tank/internals/emergency_oxygen{ + pixel_x = -6 + }, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/turf/open/floor/plating, +/area/maintenance/fore) +"asK" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/maintenance/fore) +"asL" = ( +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/maintenance/fore) "asM" = ( /obj/machinery/light{ dir = 8 @@ -8413,30 +7467,10 @@ "atn" = ( /turf/closed/wall, /area/commons/fitness/recreation) -"atp" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/circuit/green, -/area/maintenance/department/security/brig) -"atq" = ( -/turf/open/floor/circuit/green, -/area/maintenance/department/security/brig) "atv" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/open/floor/plating, -/area/security/brig) -"atw" = ( /obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 1"; - name = "Cell 1" - }, -/obj/structure/cable{ - icon_state = "4-8" + id = "Cell 3"; + name = "Cell 3" }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -8444,10 +7478,7 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"atx" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, +"atw" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable, @@ -8456,10 +7487,19 @@ }, /turf/open/floor/plating, /area/security/brig) -"aty" = ( -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ +"atx" = ( +/obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aty" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 @@ -8473,77 +7513,14 @@ /turf/open/floor/plasteel, /area/security/brig) "atz" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/structure/cable, /turf/open/floor/plating, /area/security/brig) "atA" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 2"; - name = "Cell 2" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"atB" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"atC" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"atD" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/security/brig) -"atE" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/security/glass{ - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"atF" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/brig) -"atG" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/security/glass{ id_tag = "innerbrig"; @@ -8558,25 +7535,74 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"atH" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Desk"; - req_access_txt = "1" +"atB" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, /area/security/brig) -"atI" = ( +"atC" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, +/turf/closed/wall, /area/security/brig) -"atJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +"atE" = ( +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"atF" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) +"atG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"atH" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"atI" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"atJ" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/open/floor/plating, +/area/maintenance/fore) "atK" = ( /obj/structure/cable{ icon_state = "1-2" @@ -8915,76 +7941,38 @@ }, /area/holodeck/rec_center) "aus" = ( -/obj/machinery/mech_bay_recharge_port, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aut" = ( -/obj/item/clothing/head/collectable/police, -/turf/open/floor/mech_bay_recharge_floor, -/area/maintenance/department/security/brig) -"auu" = ( -/obj/machinery/computer/mech_bay_power_console{ - dir = 1 - }, -/obj/structure/cable, -/turf/open/floor/plasteel, -/area/maintenance/department/security/brig) -"aux" = ( -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_x = -25; - pixel_y = -2; - prison_radio = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"auz" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"auA" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/security/brig) -"auB" = ( -/obj/machinery/light{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/flasher{ - id = "brigentry"; - pixel_x = -28 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"auC" = ( -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/turf/open/floor/plasteel/dark, +/area/security/execution/transfer) +"aut" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"auu" = ( +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) +"aux" = ( +/obj/effect/landmark/event_spawn, /turf/open/floor/plasteel, /area/security/brig) -"auD" = ( +"auz" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/eastleft{ dir = 8; @@ -8997,48 +7985,68 @@ }, /turf/open/floor/plasteel/dark, /area/security/brig) -"auE" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "innerbrig"; - name = "Brig Interior Doors Control"; - normaldoorcontrol = 1; - pixel_x = -6; - pixel_y = 36; - req_access_txt = "63" +"auB" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/button/door{ - desc = "A remote control switch for the medbay foyer."; - id = "outerbrig"; - name = "Brig Exterior Doors Control"; - normaldoorcontrol = 1; - pixel_x = -6; - pixel_y = 24; - req_access_txt = "63" - }, -/obj/machinery/button/flasher{ - id = "brigentry"; - pixel_x = 6; - pixel_y = 24 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) +"auC" = ( +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"auD" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "auF" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) "auG" = ( -/obj/machinery/computer/security, +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) "auH" = ( /turf/closed/wall, /area/command/heads_quarters/captain) "auI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/command/heads_quarters/captain) +/obj/structure/table, +/obj/item/storage/fancy/donut_box{ + pixel_y = 2 + }, +/obj/structure/noticeboard{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/office) "auJ" = ( /obj/structure/cable{ icon_state = "1-2" @@ -9348,91 +8356,13 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "avp" = ( -/obj/docking_port/stationary{ - dir = 8; - dwidth = 2; - height = 5; - id = "laborcamp_home"; - name = "fore bay 1"; - roundstart_template = /datum/map_template/shuttle/labour/box; - width = 9 +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 }, -/turf/open/space/basic, -/area/space) +/turf/open/floor/plasteel, +/area/security/brig) "avq" = ( -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"avr" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock"; - dir = 8 - }, -/obj/machinery/gulag_item_reclaimer{ - pixel_y = 24 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"avs" = ( -/obj/structure/bed, -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = -28 - }, -/obj/item/bedsheet/blue, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"avt" = ( -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"avu" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 1"; - name = "Cell 1 Locker" - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"avv" = ( -/obj/structure/bed, -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/obj/item/bedsheet/green, -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"avw" = ( -/obj/effect/turf_decal/tile/green, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"avx" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 2"; name = "Cell 2 Locker" @@ -9446,27 +8376,27 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"avy" = ( -/obj/structure/bed, -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 +"avr" = ( +/obj/machinery/photocopier, +/obj/machinery/computer/security/telescreen/entertainment{ + pixel_y = 32 }, -/obj/item/bedsheet/orange, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/office) +"avs" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/yellow{ dir = 8 }, /turf/open/floor/plasteel, /area/security/brig) -"avz" = ( -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"avA" = ( +"avt" = ( /obj/structure/closet/secure_closet/brig{ id = "Cell 3"; name = "Cell 3 Locker" @@ -9480,17 +8410,25 @@ }, /turf/open/floor/plasteel, /area/security/brig) -"avB" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +"avu" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) +"avv" = ( +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/security/brig) -"avC" = ( +"avw" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"avx" = ( /obj/structure/table/reinforced, /obj/machinery/door/window/eastleft{ dir = 8; @@ -9501,69 +8439,100 @@ /obj/item/restraints/handcuffs, /turf/open/floor/plasteel/dark, /area/security/brig) -"avD" = ( -/obj/structure/chair/office/dark{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"avE" = ( +"avy" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 9 }, /turf/open/floor/plasteel/dark, /area/security/brig) -"avF" = ( +"avz" = ( /obj/structure/chair/office/dark, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 + dir = 1 }, /turf/open/floor/plasteel/dark, /area/security/brig) -"avG" = ( +"avB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"avC" = ( +/obj/structure/chair{ + dir = 1; + name = "Prosecution" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"avE" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"avF" = ( +/obj/structure/chair{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/closed/wall, -/area/command/heads_quarters/captain) +/obj/machinery/light, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "avH" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/chair/office/dark{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) +"avI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/structure/curtain, -/obj/item/soap/deluxe, -/obj/item/bikehorn/rubberducky, /obj/machinery/shower{ dir = 1 }, +/obj/item/soap/deluxe, +/obj/item/bikehorn/rubberducky, /turf/open/floor/plasteel/freezer, /area/command/heads_quarters/captain) -"avI" = ( +"avJ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 + }, /obj/structure/sink{ pixel_y = 28 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/structure/mirror{ pixel_y = 30 }, /turf/open/floor/plasteel/freezer, /area/command/heads_quarters/captain) -"avJ" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/freezer, -/area/command/heads_quarters/captain) "avK" = ( /obj/structure/toilet/secret/low_loot{ dir = 8 }, +/obj/machinery/light{ + dir = 1 + }, /turf/open/floor/plasteel/freezer, /area/command/heads_quarters/captain) "avL" = ( @@ -9976,14 +8945,10 @@ /obj/item/storage/briefcase, /turf/open/floor/plating, /area/maintenance/department/security/brig) -"awH" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Airlock" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) "awI" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, /obj/structure/cable{ icon_state = "0-4" }, @@ -9998,132 +8963,50 @@ /obj/structure/cable{ icon_state = "0-8" }, -/obj/structure/cable{ - icon_state = "0-4" - }, /obj/machinery/door/poddoor/preopen{ id = "Secure Gate"; name = "brig shutters" }, +/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/security/brig) "awK" = ( +/obj/machinery/light, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "2-4" - }, /obj/structure/cable{ icon_state = "4-8" }, /turf/open/floor/plasteel, /area/security/brig) "awL" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"awM" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" +/obj/structure/cable{ + icon_state = "0-4" }, +/turf/open/floor/plating, +/area/security/courtroom) +"awM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/security/courtroom) +"awO" = ( +/turf/closed/wall/r_wall, +/area/security/courtroom) +"awQ" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/security/brig) -"awN" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"awO" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/item/radio, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"awP" = ( -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/item/reagent_containers/food/snacks/donut, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/structure/table/reinforced, -/obj/item/folder/red{ - layer = 2.9 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"awQ" = ( -/obj/structure/table/reinforced, -/obj/item/pen, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/brig) +/area/security/courtroom) "awR" = ( /turf/closed/wall/r_wall, /area/command/heads_quarters/captain) @@ -10368,27 +9251,12 @@ /obj/effect/landmark/xeno_spawn, /turf/open/floor/plasteel, /area/commons/fitness/recreation) -"axB" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/maintenance/solars/port) "axC" = ( -/turf/closed/wall, -/area/maintenance/solars/port) -"axE" = ( -/obj/machinery/door/poddoor/preopen{ - id = "prison release"; - name = "prisoner processing blast door" - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/security/brig) -"axF" = ( -/obj/item/kirbyplants{ - icon_state = "plant-10" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/stamp/hos, +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "axG" = ( /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -10396,29 +9264,37 @@ /obj/structure/extinguisher_cabinet{ pixel_y = 30 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/fore) "axI" = ( -/obj/machinery/light{ - dir = 1 - }, /obj/machinery/airalarm{ pixel_y = 22 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "axJ" = ( -/obj/structure/sign/departments/security{ +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/sign/poster/official/random{ pixel_y = 32 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) -"axK" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "axL" = ( -/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "axM" = ( @@ -10426,6 +9302,9 @@ /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "axN" = ( @@ -10736,85 +9615,57 @@ /turf/open/floor/plasteel, /area/commons/fitness/recreation) "ayy" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable, -/turf/open/space, -/area/solars/port) -"ayz" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/sign/warning/vacuum/external{ - pixel_x = -32 +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hos_spess_shutters"; + name = "Space shutters" }, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/command/heads_quarters/hos) +"ayz" = ( +/obj/structure/table, +/obj/machinery/microwave, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "ayA" = ( -/obj/machinery/power/solar_control{ - dir = 4; - id = "portsolar"; - name = "Port Solar Control" - }, -/obj/structure/cable{ - icon_state = "0-2" - }, +/obj/structure/table, +/obj/structure/bedsheetbin, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/maintenance/department/security/brig) "ayB" = ( -/obj/machinery/light/small{ - dir = 1 +/obj/structure/sink/kitchen{ + pixel_y = 28 }, +/obj/item/reagent_containers/glass/beaker, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/maintenance/department/security/brig) "ayC" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/machinery/power/apc{ - dir = 1; - name = "Port Solar APC"; - pixel_y = 23 - }, -/obj/machinery/camera{ - c_tag = "Port Bow Solar"; - dir = 9; - name = "solar camera" - }, +/obj/structure/table, +/obj/item/flashlight/lamp, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/maintenance/department/security/brig) "ayD" = ( /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/department/security/brig) -"ayE" = ( -/obj/machinery/button/door{ - id = "prison release"; - name = "Labor Camp Shuttle Lockdown"; - pixel_x = -25; - req_access_txt = "2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "ayF" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 - }, /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayH" = ( @@ -10827,20 +9678,14 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayI" = ( -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=BrigS2"; - location = "BrigP" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayL" = ( @@ -10850,17 +9695,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayM" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) +/obj/structure/closet/secure_closet/brig, +/turf/open/floor/plasteel/dark, +/area/security/prison) "ayN" = ( /obj/machinery/holopad, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=BrigP"; location = "BrigS1" @@ -10868,11 +9707,24 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "ayO" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/security/prison) "ayP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, @@ -11266,12 +10118,20 @@ /turf/open/floor/plasteel, /area/commons/fitness/recreation) "azG" = ( -/obj/machinery/power/tracker, -/obj/structure/cable{ - icon_state = "0-4" +/obj/structure/rack, +/obj/item/gun/energy/ionrifle, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/turf/open/floor/plasteel/airless/solarpanel, -/area/solars/port) +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -23 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "azH" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -11280,96 +10140,15 @@ /turf/open/space, /area/solars/port) "azI" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ - icon_state = "0-8" + icon_state = "0-2" }, -/turf/open/space, -/area/solars/port) -"azJ" = ( -/obj/structure/lattice/catwalk, -/obj/item/stack/cable_coil, -/turf/open/space, -/area/solars/port) -"azK" = ( -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port) -"azL" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/lattice/catwalk, -/turf/open/space, -/area/solars/port) -"azN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port) -"azP" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port) -"azQ" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port) -"azR" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port) -"azS" = ( -/obj/machinery/door/airlock/engineering{ - name = "Port Solar Access"; - req_access_txt = "10" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plating, -/area/maintenance/solars/port) -"azY" = ( -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"azZ" = ( -/mob/living/simple_animal/bot/secbot/beepsky{ - name = "Officer Beepsky" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aAa" = ( -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/potato{ - name = "\improper Beepsky's emergency battery" - }, -/obj/item/paper/fluff/jobs/security/beepsky_mom, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"aAb" = ( /obj/machinery/power/apc{ dir = 8; - name = "Fore Primary Hallway APC"; + name = "Security Office APC"; pixel_x = -25 }, -/obj/structure/cable{ - icon_state = "0-4" - }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 }, @@ -11377,36 +10156,104 @@ dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aAc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aAd" = ( -/obj/machinery/light, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/area/security/office) +"azJ" = ( +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 }, /turf/open/floor/plasteel, +/area/security/office) +"azK" = ( +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solars/port) +"azL" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/office) +"azN" = ( +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"azP" = ( +/obj/item/storage/box/mousetraps, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"azQ" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"azR" = ( +/obj/structure/bed, +/obj/item/bedsheet, +/obj/structure/sign/poster/contraband/random{ + pixel_x = 32 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"azS" = ( +/obj/machinery/atmospherics/components/unary/tank/oxygen, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"azY" = ( +/obj/machinery/atmospherics/components/unary/tank/nitrogen, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"azZ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Prison Gate"; + name = "prison blast door" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/brig) +"aAa" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aAc" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "aAe" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAf" = ( @@ -11414,30 +10261,31 @@ c_tag = "Fore Primary Hallway Port"; dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAg" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAh" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) -"aAi" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAj" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 10 }, /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -11452,12 +10300,14 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 6 }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAm" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAn" = ( @@ -11469,6 +10319,7 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel, /area/hallway/primary/fore) "aAo" = ( @@ -11718,45 +10569,60 @@ /turf/open/floor/plasteel, /area/commons/fitness/recreation) "aAV" = ( -/obj/structure/lattice/catwalk, -/obj/structure/cable{ - icon_state = "0-2" +/obj/structure/closet{ + name = "Evidence Closet" }, -/turf/open/space, -/area/solars/port) -"aAW" = ( -/obj/structure/rack, -/obj/item/clothing/mask/gas, -/obj/item/multitool, -/turf/open/floor/plating, -/area/maintenance/solars/port) -"aAX" = ( -/obj/structure/chair/stool, -/obj/machinery/power/terminal{ +/obj/structure/sign/poster/official/safety_report{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/solars/port) +/turf/open/floor/plasteel, +/area/security/brig) +"aAW" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -27 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aAX" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aAY" = ( -/obj/machinery/power/smes, -/obj/structure/cable, -/turf/open/floor/plating, -/area/maintenance/solars/port) +/obj/machinery/rnd/production/techfab/department/security, +/turf/open/floor/plasteel/dark, +/area/security/office) "aBa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, /turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "platingdmg3" }, /area/maintenance/department/security/brig) "aBc" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" }, -/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/security/brig) "aBd" = ( @@ -12188,20 +11054,19 @@ /turf/open/floor/plasteel, /area/commons/fitness/recreation) "aCa" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-8" }, +/obj/machinery/power/solar{ + id = "starboardsolar"; + name = "Starboard Solar Array" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port) +"aCc" = ( /obj/structure/cable{ icon_state = "1-8" }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/space, -/area/solars/port) -"aCc" = ( -/obj/structure/closet/emcloset, /turf/open/floor/plating, /area/maintenance/department/security/brig) "aCd" = ( @@ -12227,9 +11092,6 @@ /area/maintenance/department/security/brig) "aCh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -12817,13 +11679,6 @@ }, /turf/open/floor/plating, /area/maintenance/department/cargo) -"aDm" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) "aDo" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -13730,11 +12585,8 @@ /area/space/nearstation) "aFk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/lootdrop/minor/bowler_or_that, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/segment, +/obj/effect/spawner/lootdrop/minor/bowler_or_that, /turf/open/floor/plating{ icon_state = "platingdmg3" }, @@ -14029,9 +12881,6 @@ /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/structure/disposalpipe/junction{ dir = 1 }, @@ -15082,15 +13931,22 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "aIr" = ( -/obj/structure/lattice/catwalk, /obj/structure/cable{ - icon_state = "1-4" + icon_state = "0-8" }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" }, -/turf/open/space, +/turf/open/floor/plasteel/airless/solarpanel, /area/solars/port) +"aIz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "aIC" = ( /obj/machinery/door/airlock/maintenance{ req_access_txt = "12" @@ -26496,6 +25352,15 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/commons/storage/emergency/port) +"bjO" = ( +/obj/machinery/door/airlock/grunge{ + name = "Monastery Cemetary" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "bjP" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -37357,9 +36222,22 @@ /turf/open/space, /area/space/nearstation) "bGG" = ( -/obj/effect/spawner/lootdrop/grille_or_trash, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/power/apc{ + dir = 8; + name = "Fore Primary Hallway APC"; + pixel_x = -25 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bGH" = ( /obj/structure/window/reinforced, /turf/open/space, @@ -40533,12 +39411,11 @@ /turf/open/floor/plasteel/dark, /area/service/library) "bNE" = ( -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - dir = 1 +/obj/structure/chair/office/dark{ + dir = 4 }, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/turf/open/floor/carpet, +/area/command/heads_quarters/hos) "bNF" = ( /obj/item/stack/medical/suture, /turf/open/floor/plasteel/dark, @@ -41151,6 +40028,12 @@ }, /turf/open/floor/plating, /area/science/mixing) +"bPm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "bPn" = ( /obj/machinery/door/airlock/grunge{ name = "Chapel" @@ -45727,8 +44610,14 @@ /turf/open/floor/carpet, /area/service/chapel/main/monastery) "bZo" = ( -/turf/open/floor/carpet, -/area/service/chapel/main/monastery) +/obj/machinery/washing_machine, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -31 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "bZr" = ( /obj/item/trash/tray, /obj/structure/disposalpipe/segment{ @@ -45954,7 +44843,10 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "bZV" = ( -/turf/closed/wall, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/hallway/primary/fore) "bZY" = ( /turf/closed/wall, @@ -46206,12 +45098,9 @@ /turf/open/floor/engine, /area/maintenance/disposal/incinerator) "caS" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/holopad, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "caT" = ( /obj/structure/grille, /obj/structure/window/reinforced/tinted/fulltile, @@ -46583,6 +45472,16 @@ /obj/structure/sign/warning/nosmoking, /turf/closed/wall/r_wall, /area/engineering/main) +"ccg" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/button/massdriver{ + id = "chapelgun"; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "cci" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/light{ @@ -47133,6 +46032,12 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/office) +"ceD" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) "ceE" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, @@ -47202,10 +46107,7 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "ceQ" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/carpet, /area/service/chapel/main/monastery) "ceT" = ( /obj/effect/turf_decal/stripes/line, @@ -48116,17 +47018,26 @@ /turf/open/floor/engine, /area/engineering/supermatter) "ciJ" = ( -/obj/structure/closet/emcloset, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/structure/bed, +/obj/item/bedsheet, +/obj/machinery/button/door{ + id = "mainthideout"; + name = "Door Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 25; + specialfunctions = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "ciK" = ( -/obj/structure/table, -/obj/item/crowbar, -/obj/item/clothing/mask/gas, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/machinery/atmospherics/components/trinary/mixer/flipped{ + dir = 1; + node1_concentration = 0.2; + node2_concentration = 0.8; + on = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "ciN" = ( /obj/structure/closet/crate/bin, /turf/open/floor/plasteel/dark, @@ -48204,38 +47115,38 @@ /turf/open/floor/plasteel/showroomfloor, /area/service/chapel/main/monastery) "cjf" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/machinery/atmospherics/pipe/manifold/general/hidden, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cjg" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 9 + }, +/obj/machinery/meter, +/obj/machinery/light/small{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cjj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/grown/poppy, +/obj/item/reagent_containers/food/snacks/grown/harebell, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cjk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" }, /turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/area/security/processing/cremation) "cjl" = ( -/obj/machinery/door/airlock/grunge{ - name = "Monastery Cemetary" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/chair/wood/normal, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) @@ -48302,31 +47213,51 @@ /turf/open/space/basic, /area/space) "cjC" = ( -/obj/structure/sign/warning/vacuum/external{ - pixel_y = 32 +/obj/item/clothing/gloves/color/latex, +/obj/item/clothing/mask/surgical, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/table/glass, +/obj/effect/turf_decal/tile/red{ + dir = 1 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) +"cjH" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"cjO" = ( +/obj/machinery/power/apc{ + dir = 1; + name = "Monastery Maintenance APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) +"cjP" = ( /obj/machinery/light/small{ dir = 1 }, +/obj/structure/closet/emcloset, /turf/open/floor/plating, -/area/service/chapel/main/monastery) -"cjH" = ( -/obj/item/kirbyplants{ - icon_state = "plant-21" - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cjO" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"cjP" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/maintenance/department/chapel/monastery) "cjQ" = ( /obj/structure/bookcase/random/nonfiction, /turf/open/floor/plasteel/dark, @@ -48336,74 +47267,71 @@ /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation/bomb_site) "cjZ" = ( -/obj/structure/table, -/obj/item/storage/crayons, -/obj/item/wrench, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/machinery/computer/secure_data, +/turf/open/floor/plasteel, +/area/security/office) "cka" = ( -/obj/structure/chair{ +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 8 }, +/obj/machinery/light_switch{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/area/command/heads_quarters/hos) "ckb" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/carpet, -/area/service/chapel/main/monastery) -"ckc" = ( -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/door/window/eastleft{ + dir = 1; + name = "Coffin Storage"; + req_one_access_txt = "22" }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "ckd" = ( -/obj/machinery/light/small{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/door/window/eastleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Coffin Storage"; + req_one_access_txt = "22" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "ckf" = ( -/obj/structure/table, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ckh" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-4" + }, +/obj/machinery/keycard_auth{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/command/heads_quarters/hos) "ckj" = ( -/obj/structure/chair, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cko" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ @@ -48421,68 +47349,72 @@ /area/asteroid/nearstation/bomb_site) "cku" = ( /obj/structure/chair/wood/normal, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/carpet, +/turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "ckv" = ( -/obj/machinery/mass_driver{ - id = "chapelgun" - }, -/obj/machinery/door/window/eastleft{ - dir = 8; - name = "Mass Driver" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/flashlight/lantern, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "ckw" = ( -/obj/machinery/mass_driver{ - id = "chapelgun" - }, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cky" = ( /obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/power/apc{ - areastring = "/area/security/courtroom"; - dir = 8; - name = "Courtroom APC"; - pixel_x = -25 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ckA" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ckB" = ( -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ckD" = ( -/obj/structure/statue/sandstone/venus{ - dir = 8 + icon_state = "4-8" }, /obj/machinery/firealarm{ - dir = 8; - pixel_x = 28 + dir = 1; + pixel_y = -26 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/command/heads_quarters/hos) +"cky" = ( +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/item/clothing/under/misc/burial, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) +"ckB" = ( +/obj/item/stack/cable_coil, +/obj/item/stack/sheet/glass/fifty{ + layer = 4 + }, +/obj/item/stack/sheet/metal{ + amount = 20; + layer = 3.1 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) +"ckD" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 1 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_y = -27 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/command/heads_quarters/hos) "ckE" = ( /obj/structure/grille/broken, /obj/structure/disposalpipe/segment{ @@ -48534,36 +47466,42 @@ /turf/open/floor/plating/airless, /area/asteroid/nearstation/bomb_site) "ckM" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/machinery/power/apc{ + name = "Head of Security's Office APC"; + pixel_y = -24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/area/command/heads_quarters/hos) "ckN" = ( -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 +/obj/machinery/door/airlock/abandoned{ + id_tag = "mainthideout"; + name = "Hideout" }, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"ckQ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom" - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"ckS" = ( -/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/security/courtroom) +/area/maintenance/department/security/brig) +"ckQ" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Monastery Maintenance"; + req_one_access_txt = "22;24;10;11;37" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "ckU" = ( /obj/machinery/light/small{ dir = 8 @@ -48588,22 +47526,33 @@ /turf/open/floor/plasteel/dark, /area/service/library/lounge) "clb" = ( -/obj/machinery/door/poddoor{ - id = "chapelgun"; - name = "mass driver door" +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 }, -/turf/open/floor/plating, -/area/service/chapel/main/monastery) +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/turf/open/space/basic, +/area/space/nearstation) "cle" = ( -/obj/structure/statue/sandstone/venus, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"clf" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/item/wrench, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"clf" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cli" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 8 @@ -48617,11 +47566,11 @@ /turf/open/floor/plating/asteroid/airless, /area/asteroid/nearstation/bomb_site) "clk" = ( -/obj/machinery/light{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "clm" = ( /obj/machinery/photocopier, /turf/open/floor/plasteel/dark, @@ -49388,40 +48337,40 @@ /turf/open/space/basic, /area/ai_monitored/turret_protected/AIsatextAP) "cnJ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/turf/open/floor/plasteel/showroomfloor, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, /area/security/office) "cnN" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/machinery/camera{ - c_tag = "Brig Equipment Room" +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 }, -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 29 - }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/obj/machinery/portable_atmospherics/canister/nitrous_oxide, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cnP" = ( -/obj/machinery/vending/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing/cremation) "cnQ" = ( -/obj/machinery/suit_storage_unit/security, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) -"cnT" = ( -/obj/structure/weightmachine/weightlifter, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig Crematorium"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing/cremation) "cnV" = ( -/obj/structure/punching_bag, -/turf/open/floor/plasteel/showroomfloor, -/area/security/office) +/turf/closed/wall/r_wall, +/area/command/heads_quarters/hos) "cnX" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance, @@ -50233,9 +49182,11 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/dock) "cqS" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/space/nearstation) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/brig) "cqU" = ( /obj/structure/window/reinforced{ dir = 4 @@ -50254,8 +49205,11 @@ /turf/open/floor/plasteel, /area/command/heads_quarters/ce) "cqW" = ( -/obj/structure/closet/crate, -/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 3; + name = "3maintenance loot spawner" + }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cqX" = ( @@ -50950,13 +49904,31 @@ /turf/open/floor/plating, /area/service/chapel/main/monastery) "ctS" = ( -/obj/structure/closet, -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 3; - name = "3maintenance loot spawner" +/obj/item/storage/box/bodybags, +/obj/structure/extinguisher_cabinet{ + pixel_x = -27 }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table/glass, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/item/reagent_containers/syringe{ + name = "steel point" + }, +/obj/item/reagent_containers/glass/bottle/charcoal, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) "ctX" = ( /obj/machinery/vending/wardrobe/chap_wardrobe, /turf/open/floor/carpet, @@ -51365,6 +50337,15 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cvq" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) +"cvr" = ( /obj/machinery/camera{ c_tag = "Monastery Secondary Dock"; dir = 8; @@ -51375,42 +50356,20 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) -"cvr" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +"cvs" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 4 }, -/obj/machinery/door/window/eastleft{ - dir = 1; - name = "Coffin Storage"; - req_one_access_txt = "22" - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cvs" = ( +/turf/open/floor/plasteel, +/area/security/brig) +"cvt" = ( /obj/structure/window/reinforced{ dir = 1 }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cvt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/door/window/eastleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Coffin Storage"; - req_one_access_txt = "22" - }, -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/carpet, /area/service/chapel/main/monastery) "cvu" = ( /obj/structure/cable{ @@ -51433,21 +50392,15 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cvw" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/structure/chair/office/dark{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/landmark/start/security_officer, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/turf/open/floor/plasteel, +/area/security/office) "cvy" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -51463,6 +50416,12 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cvA" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) +"cvB" = ( /obj/machinery/door/airlock/external{ name = "Dock Access" }, @@ -51471,20 +50430,12 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) -"cvB" = ( +"cvC" = ( /obj/structure/chair/wood/normal, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cvC" = ( -/obj/structure/chair/wood/normal, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/carpet, /area/service/chapel/main/monastery) "cvE" = ( /obj/structure/cable{ @@ -51542,10 +50493,12 @@ /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cvJ" = ( @@ -51567,6 +50520,20 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cvR" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"cvS" = ( +/obj/machinery/atmospherics/components/binary/pump{ + dir = 8; + name = "Supply to Security" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"cvT" = ( /obj/machinery/light/small{ dir = 8 }, @@ -51580,23 +50547,17 @@ }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) -"cvS" = ( -/obj/structure/chair/wood/normal, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cvT" = ( +"cvV" = ( /obj/structure/chair/wood/normal, /turf/open/floor/carpet, /area/service/chapel/main/monastery) -"cvV" = ( -/obj/structure/chair/wood/normal, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) "cwc" = ( -/turf/closed/wall/mineral/iron, -/area/security/courtroom) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cwe" = ( /turf/closed/wall/mineral/iron, /area/service/library/lounge) @@ -51605,57 +50566,51 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cwj" = ( -/obj/item/storage/box/matches{ - pixel_x = -3; - pixel_y = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/structure/table/wood, /turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/area/security/processing/cremation) "cwk" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 +/obj/structure/cable{ + icon_state = "1-8" }, -/turf/open/floor/carpet, -/area/service/chapel/main/monastery) +/turf/open/floor/plasteel/dark, +/area/security/processing/cremation) "cwl" = ( -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, -/obj/item/storage/fancy/candle_box, -/obj/structure/table/wood, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) -"cwm" = ( -/obj/machinery/light{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"cwn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"cwo" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, -/obj/structure/cable{ - icon_state = "1-2" - }, /turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/service/chapel/main/monastery) +"cwm" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) +"cwn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/processing/cremation) +"cwo" = ( +/obj/item/storage/toolbox/mechanical, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cwp" = ( +/obj/structure/bodycontainer/morgue, /obj/machinery/camera{ - c_tag = "Courtroom North" + c_tag = "Brig Infirmary"; + dir = 4 }, -/obj/machinery/airalarm{ - pixel_y = 22 +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 }, /turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/security/brig) "cwr" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -51667,80 +50622,83 @@ /turf/open/floor/plasteel/dark, /area/service/library/lounge) "cww" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/grown/poppy, -/obj/item/reagent_containers/food/snacks/grown/harebell, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) "cwx" = ( -/obj/structure/table/wood/fancy, -/obj/item/storage/book/bible, -/turf/open/floor/carpet, -/area/service/chapel/main/monastery) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/light_switch{ + dir = 9; + pixel_x = -22 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/office) "cwy" = ( -/obj/structure/table/wood/fancy, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/candle, -/obj/item/candle{ - pixel_x = 6; - pixel_y = 8 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, -/obj/item/candle{ - pixel_x = -8; - pixel_y = 6 - }, -/turf/open/floor/carpet, +/turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cwz" = ( -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, -/obj/item/clothing/under/misc/burial, /obj/structure/table/wood, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/machinery/recharger, +/turf/open/floor/plasteel, +/area/security/office) "cwE" = ( -/obj/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/maintenance/department/security/brig) "cwF" = ( +/obj/machinery/door/airlock/atmos/abandoned{ + name = "Atmospherics Maintenance"; + req_access_txt = "12;24" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"cwG" = ( /obj/structure/window/reinforced, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) -"cwG" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/button/massdriver{ - id = "chapelgun"; - pixel_x = 28 - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) "cwH" = ( -/obj/structure/chair, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 8; + name = "Air to Distro" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cwK" = ( -/turf/closed/wall, -/area/security/courtroom) +/obj/structure/reagent_dispensers/watertank, +/obj/item/extinguisher, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cwM" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/closed/wall, +/area/maintenance/department/security/brig) +"cwO" = ( /obj/structure/window/reinforced{ dir = 4; layer = 2.9 }, /turf/open/space, /area/space/nearstation) -"cwO" = ( -/obj/item/flashlight/lantern, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) "cwR" = ( /obj/structure/window/reinforced{ dir = 8; @@ -51749,10 +50707,11 @@ /turf/open/space/basic, /area/space/nearstation) "cwS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/components/unary/tank/air{ + dir = 1 + }, /turf/open/floor/plating, -/area/security/courtroom) +/area/maintenance/department/chapel/monastery) "cwU" = ( /obj/structure/table/wood, /obj/item/folder/yellow, @@ -51775,34 +50734,29 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cxg" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 +/obj/machinery/door/airlock/maintenance{ + name = "Crematorium Maintenance"; + req_one_access_txt = "2;27" }, -/turf/open/space/basic, -/area/space/nearstation) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cxh" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 6 }, -/obj/structure/window/reinforced{ - dir = 4; - layer = 2.9 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/closed/wall, +/area/security/processing/cremation) "cxk" = ( -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 +/obj/machinery/door/poddoor{ + id = "chapelgun"; + name = "mass driver door" }, -/obj/structure/window/reinforced{ - dir = 8; - layer = 2.9 - }, -/turf/open/space/basic, -/area/space/nearstation) +/turf/open/floor/plating, +/area/service/chapel/main/monastery) "cxt" = ( /obj/effect/turf_decal/box/corners{ dir = 8 @@ -51827,12 +50781,16 @@ /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cxB" = ( -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "cxD" = ( /obj/structure/disposalpipe/segment{ - dir = 4 + dir = 10 }, +/obj/effect/landmark/xeno_spawn, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cxE" = ( @@ -51842,77 +50800,77 @@ /turf/closed/wall, /area/service/library/lounge) "cxL" = ( -/obj/effect/landmark/xeno_spawn, -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/door/window/eastright{ + base_state = "left"; + dir = 1; + icon_state = "left"; + name = "Security Delivery"; + req_access_txt = "1" }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/obj/machinery/navbeacon{ + codes_txt = "delivery;dir=4"; + dir = 1; + freq = 1400; + location = "Security" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/processing/cremation) "cxM" = ( /obj/structure/window/reinforced/fulltile, /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/service/library/lounge) "cxX" = ( -/obj/machinery/power/smes{ - charge = 5e+006 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"cxY" = ( -/obj/machinery/power/terminal{ - dir = 8 +/obj/structure/chair/sofa/corp/corner{ + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cyl" = ( -/obj/item/storage/toolbox/mechanical, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/structure/chair/sofa/corp{ + layer = 2.8 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cym" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Monastery Maintenance APC"; - pixel_y = 23 - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" - }, +/obj/structure/chair/sofa/corp/corner, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cyy" = ( -/obj/item/storage/box/lights/bulbs, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "cyz" = ( -/obj/machinery/light/small{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"cyA" = ( -/obj/machinery/power/smes{ - charge = 5e+006 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/turf/open/floor/plasteel, +/area/security/brig) "cyB" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -51920,29 +50878,26 @@ /turf/closed/wall, /area/service/library/lounge) "cyL" = ( -/obj/machinery/power/terminal{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"cyM" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, +/obj/structure/table/wood/fancy/red, +/obj/item/stack/spacecash/c10, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "cyP" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 10 +/obj/structure/closet/secure_closet/warden, +/obj/item/clothing/mask/gas/sechailer, +/obj/machinery/power/apc{ + dir = 8; + name = "Brig Control APC"; + pixel_x = -25 }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 30 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "cyQ" = ( /obj/machinery/vending/games, /turf/open/floor/plasteel/dark, @@ -51971,10 +50926,15 @@ /turf/open/floor/plating, /area/service/library) "cyY" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/item/extinguisher, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) "cyZ" = ( /obj/machinery/light/small{ dir = 8 @@ -51982,26 +50942,18 @@ /turf/open/floor/plasteel/dark, /area/service/library) "czl" = ( -/obj/item/stack/cable_coil, -/obj/item/stack/sheet/glass/fifty{ - layer = 4 - }, -/obj/item/stack/sheet/metal{ - amount = 20; - layer = 3.1 - }, -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/chair/sofa/corp{ + dir = 4 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "czp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/structure/table/wood/fancy/red, +/obj/structure/festivus{ + anchored = 1; + desc = "A pole for dancing."; + name = "pole"; + pixel_y = 20 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) @@ -52014,17 +50966,13 @@ /turf/open/floor/plasteel/dark, /area/service/library) "czr" = ( -/obj/machinery/atmospherics/pipe/simple/general/hidden{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "1-8" - }, +/obj/structure/table/wood/fancy/red, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "czt" = ( -/obj/machinery/atmospherics/pipe/manifold/general/hidden{ - dir = 4 +/obj/machinery/door/airlock/maintenance{ + name = "Menagerie"; + req_access_txt = "12" }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) @@ -52042,11 +50990,15 @@ /turf/open/floor/plasteel/dark, /area/service/library) "czB" = ( -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) "czC" = ( -/obj/structure/closet/emcloset, +/obj/structure/chair/sofa/corp/corner{ + dir = 1 + }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "czD" = ( @@ -52054,9 +51006,8 @@ /turf/open/floor/carpet, /area/service/library) "czH" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" +/obj/structure/chair/sofa/corp{ + dir = 1 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) @@ -52086,7 +51037,7 @@ /turf/open/floor/plasteel/dark, /area/service/library) "czP" = ( -/obj/machinery/atmospherics/components/unary/tank/air{ +/obj/structure/chair/sofa/corp/left{ dir = 1 }, /turf/open/floor/plating, @@ -52097,21 +51048,11 @@ /turf/open/floor/plasteel/dark, /area/service/library) "czV" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 9 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "czW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -52166,23 +51107,14 @@ /turf/closed/wall, /area/maintenance/department/chapel/monastery) "cAr" = ( -/obj/structure/cable{ - icon_state = "1-2" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/door/airlock/maintenance{ - name = "Monastery Maintenance"; - req_one_access_txt = "22;24;10;11;37" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/light/small{ + dir = 1 }, /turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/area/maintenance/department/security/brig) "cAs" = ( /obj/structure/table/wood, /obj/item/clothing/head/pharaoh, @@ -52285,23 +51217,23 @@ /turf/open/floor/plasteel/dark, /area/service/library) "cAD" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) -"cAH" = ( /obj/structure/disposalpipe/segment{ dir = 4 }, /turf/closed/wall, /area/maintenance/department/chapel/monastery) -"cAJ" = ( +"cAH" = ( /obj/structure/disposalpipe/segment{ dir = 10 }, /turf/open/space/basic, /area/space) +"cAJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cAK" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -52344,17 +51276,9 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cAT" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, -/area/service/chapel/main/monastery) +/obj/structure/grille/broken, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "cAU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -52379,22 +51303,12 @@ /turf/open/floor/plasteel/dark, /area/service/library) "cBi" = ( -/obj/machinery/flasher/portable, -/obj/effect/turf_decal/tile/neutral{ +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 5 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/turf/open/floor/plasteel, +/area/security/office) "cBk" = ( /obj/machinery/vending/boozeomat/pubby_maint, /turf/closed/wall, @@ -52580,9 +51494,17 @@ /turf/open/floor/plasteel/white, /area/engineering/gravity_generator) "cCS" = ( -/obj/machinery/rnd/production/techfab/department/security, -/turf/open/floor/plasteel/dark, -/area/security/office) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "hos_spess_shutters"; + name = "Space shutters" + }, +/turf/open/floor/plating, +/area/command/heads_quarters/hos) "cCT" = ( /obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, @@ -52601,12 +51523,12 @@ /turf/open/floor/plasteel, /area/engineering/main) "cCW" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, /obj/structure/cable{ icon_state = "4-8" }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "cCX" = ( @@ -52645,18 +51567,42 @@ icon_state = "platingdmg3" }, /area/maintenance/department/science) +"cFr" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/soda_cans/cola, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/security/brig) "cFB" = ( /obj/effect/landmark/carpspawn, /turf/open/space/basic, /area/space) -"cHS" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Firing Range" +"cFH" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"cHm" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating{ icon_state = "platingdmg3" }, /area/maintenance/department/security/brig) +"cHS" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/circuit/green, +/area/maintenance/department/security/brig) "cIN" = ( /obj/machinery/door/airlock/grunge{ name = "Library" @@ -52801,11 +51747,22 @@ /turf/open/floor/plasteel/dark, /area/science/lab) "cTI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/obj/item/wirecutters, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"cVq" = ( +/obj/structure/rack, +/obj/item/clothing/mask/gas, +/obj/item/multitool, +/turf/open/floor/plating, +/area/maintenance/solars/port) "cXP" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -52849,13 +51806,22 @@ /turf/open/floor/plasteel, /area/commons/dorms) "dci" = ( -/obj/structure/rack, -/obj/item/gun/energy/laser/practice, -/obj/item/clothing/ears/earmuffs, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/department/security/brig) "dcL" = ( -/obj/structure/barricade/wooden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "deJ" = ( @@ -52956,6 +51922,12 @@ }, /turf/open/floor/plating, /area/science/xenobiology) +"dnG" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "dnS" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Mix Bypass" @@ -53146,6 +52118,14 @@ icon_state = "platingdmg1" }, /area/maintenance/department/engine) +"dCo" = ( +/obj/machinery/door/poddoor/preopen{ + id = "prison release"; + name = "prisoner processing blast door" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel, +/area/security/brig) "dEy" = ( /obj/structure/reflector/double/anchored{ dir = 9 @@ -53153,25 +52133,35 @@ /turf/open/floor/plasteel/dark, /area/engineering/main) "dET" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "dFJ" = ( /turf/open/floor/engine, /area/engineering/supermatter) "dHg" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/structure/plasticflaps/opaque, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel, -/area/security/prison) +/turf/open/floor/plasteel/dark, +/area/security/processing/cremation) "dHo" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -53243,6 +52233,14 @@ icon_state = "platingdmg3" }, /area/maintenance/department/science) +"dLN" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 4; + name = "4maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "dLY" = ( /obj/structure/table, /obj/item/assembly/igniter, @@ -53303,20 +52301,22 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "dVp" = ( -/obj/structure/extinguisher_cabinet{ - pixel_y = -32 +/obj/machinery/door/airlock/maintenance{ + name = "Brig Infirmary Maintenance"; + req_access_txt = "63" }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"dVI" = ( -/obj/machinery/atmospherics/components/binary/pump{ - dir = 4; - layer = 2.4 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/wrench, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, -/area/security/execution/transfer) +/area/maintenance/department/security/brig) +"dVI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "dVJ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -53325,6 +52325,10 @@ icon_state = "platingdmg1" }, /area/maintenance/department/science) +"dVP" = ( +/obj/item/chair, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "dWk" = ( /obj/item/reagent_containers/food/snacks/meat/slab/monkey, /turf/open/floor/plating, @@ -53341,11 +52345,11 @@ /turf/open/floor/plating, /area/engineering/main) "dYe" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "dYI" = ( /obj/machinery/airalarm{ dir = 8; @@ -53353,6 +52357,11 @@ }, /turf/open/floor/plasteel/dark, /area/service/library) +"dZa" = ( +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/security/brig) "dZj" = ( /obj/machinery/atmospherics/pipe/manifold/green/visible, /obj/machinery/airalarm/engine{ @@ -53423,11 +52432,17 @@ /turf/open/floor/plasteel/dark, /area/service/library) "egK" = ( -/obj/structure/girder, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/area/maintenance/department/security/brig) +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ehJ" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "ehM" = ( /obj/effect/decal/remains/human, /obj/structure/disposaloutlet, @@ -53437,13 +52452,11 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "ehR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/chair, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 6 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "eiV" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 @@ -53452,12 +52465,18 @@ /turf/open/space/basic, /area/space/nearstation) "ekU" = ( -/obj/effect/decal/cleanable/cobweb{ - icon_state = "cobweb2" +/obj/machinery/light/small{ + dir = 4 }, -/obj/structure/reagent_dispensers/fueltank, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/camera{ + c_tag = "Labor Shuttle Dock"; + dir = 8 + }, +/obj/machinery/gulag_item_reclaimer{ + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "elk" = ( /obj/structure/chair/office/dark, /turf/open/floor/wood, @@ -53506,6 +52525,12 @@ }, /turf/open/floor/plasteel/dark, /area/engineering/main) +"ete" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "euQ" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 @@ -53515,10 +52540,35 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) +"evQ" = ( +/obj/effect/spawner/lootdrop/grille_or_trash, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "eyj" = ( /obj/effect/spawner/structure/window/plasma/reinforced, /turf/open/floor/plating, /area/engineering/main) +"eyu" = ( +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -25; + pixel_y = -2; + prison_radio = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ezx" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plating, +/area/security/brig) "ezF" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -53691,11 +52741,9 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "ePU" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/closed/wall, -/area/maintenance/department/security/brig) +/obj/machinery/computer/security/labor, +/turf/open/floor/plasteel/dark, +/area/security/brig) "eQN" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -53723,12 +52771,11 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "eSB" = ( -/obj/machinery/computer/cryopod{ - dir = 1; - pixel_y = -26 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "eSL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/beacon, @@ -53779,6 +52826,10 @@ }, /turf/open/floor/engine, /area/science/explab) +"eXX" = ( +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "eYr" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -53795,6 +52846,12 @@ /obj/item/stack/cable_coil/cut/random, /turf/open/floor/plating, /area/maintenance/department/cargo) +"fdM" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "fdQ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -53859,6 +52916,11 @@ }, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"fgh" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable, +/turf/open/space, +/area/solars/port) "fgS" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -54085,15 +53147,8 @@ /turf/open/floor/plasteel, /area/maintenance/department/engine) "fAx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/turf/closed/wall, +/area/hallway/primary/fore) "fBt" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -54148,11 +53203,14 @@ /turf/open/floor/plasteel, /area/commons/dorms) "fIN" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/structure/chair{ + dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) "fIT" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -54179,6 +53237,12 @@ }, /turf/open/floor/plating, /area/maintenance/department/cargo) +"fPy" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "fQf" = ( /obj/structure/cable{ icon_state = "4-8" @@ -54197,6 +53261,16 @@ "fRs" = ( /turf/closed/wall, /area/command/heads_quarters/rd) +"fRL" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/ammo_box/foambox, +/obj/item/ammo_box/foambox, +/obj/item/gun/ballistic/shotgun/toy, +/obj/item/gun/ballistic/shotgun/toy, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "fRT" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/orange/visible{ @@ -54226,6 +53300,12 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/carpet, /area/service/library/lounge) +"fZq" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/service/chapel/main/monastery) "fZK" = ( /obj/machinery/atmospherics/pipe/manifold/cyan/visible{ dir = 4 @@ -54345,14 +53425,11 @@ /turf/open/floor/plating, /area/service/chapel/office) "giO" = ( -/obj/structure/cable{ - icon_state = "2-8" +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/turf/open/floor/plasteel/dark, +/area/security/brig) "gjp" = ( /obj/structure/table/wood, /obj/structure/bedsheetbin, @@ -54381,13 +53458,14 @@ /turf/open/floor/plating, /area/maintenance/department/science) "gjN" = ( -/obj/item/weldingtool, -/obj/effect/spawner/lootdrop/maintenance, -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" +/obj/structure/chair{ + dir = 8 }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 9 + }, +/turf/open/floor/plasteel/dark, +/area/security/office) "gkR" = ( /obj/item/kirbyplants/random, /obj/structure/extinguisher_cabinet{ @@ -54435,6 +53513,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/mixing) +"gmm" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "gmp" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -54508,6 +53592,10 @@ /obj/structure/bookcase/random/religion, /turf/open/floor/plasteel/dark, /area/service/library/lounge) +"gtX" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "gue" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 @@ -54523,6 +53611,25 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"gur" = ( +/obj/structure/table/wood/fancy, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/candle, +/obj/item/candle{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/candle{ + pixel_x = -8; + pixel_y = 6 + }, +/turf/open/floor/carpet, +/area/service/chapel/main/monastery) +"guy" = ( +/obj/machinery/recharger, +/obj/structure/table, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "gvf" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -54532,11 +53639,9 @@ }, /area/hallway/secondary/exit/departure_lounge) "gwn" = ( -/obj/structure/sign/warning{ - pixel_y = 32 - }, -/obj/structure/sign/warning{ - pixel_y = -32 +/obj/structure/girder, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -54578,6 +53683,12 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) +"gyQ" = ( +/obj/structure/closet/emcloset, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "gAG" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/green, @@ -54591,6 +53702,13 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"gBu" = ( +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 27 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "gDR" = ( /obj/machinery/camera{ c_tag = "Central Primary Hallway Escape"; @@ -54651,11 +53769,10 @@ /turf/open/floor/plasteel/dark, /area/science/lab) "gGy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/structure/lattice, +/obj/structure/grille/broken, +/turf/open/space, +/area/solars/port) "gGA" = ( /obj/structure/table/glass, /obj/machinery/reagentgrinder, @@ -54706,13 +53823,11 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "gJV" = ( -/obj/machinery/door/window/southleft{ - dir = 1; - name = "Court Cell"; - req_access_txt = "2" +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "gKz" = ( /obj/structure/table/wood, /obj/item/kirbyplants{ @@ -54731,6 +53846,15 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"gLv" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "gLF" = ( /obj/machinery/vending/snack/random, /obj/effect/turf_decal/tile/neutral{ @@ -54756,6 +53880,15 @@ /obj/structure/plasticflaps/opaque, /turf/open/floor/plating, /area/maintenance/department/engine) +"gNq" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) "gNv" = ( /obj/structure/sign/poster/contraband/random{ pixel_x = 32 @@ -54807,6 +53940,12 @@ /obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/plasteel/grimy, /area/security/detectives_office) +"gRo" = ( +/mob/living/simple_animal/bot/secbot/beepsky{ + name = "Officer Beepsky" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "gSH" = ( /turf/closed/wall, /area/service/lawoffice) @@ -54852,6 +53991,23 @@ /obj/structure/grille, /turf/open/space/basic, /area/space/nearstation) +"gYI" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"gZF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "haA" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, @@ -54904,9 +54060,8 @@ /turf/closed/wall, /area/maintenance/department/science) "hiw" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, +/obj/structure/target_stake, +/obj/item/target/syndicate, /turf/open/floor/plating, /area/maintenance/department/security/brig) "hiY" = ( @@ -54967,11 +54122,11 @@ /turf/open/floor/plasteel/dark, /area/service/library) "hlw" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "hnu" = ( /obj/machinery/button/door{ id = "lawyer_shutters"; @@ -55005,13 +54160,6 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/engine, /area/engineering/main) -"hpF" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) "hqo" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -55027,16 +54175,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) -"hrk" = ( -/obj/item/beacon, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) "hvW" = ( /obj/machinery/door/poddoor/preopen{ id = "xenobio4"; @@ -55066,13 +54204,16 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "hwj" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 +/obj/machinery/door/airlock/security/glass{ + name = "Long-Term Cell 2"; + req_access_txt = "2" }, -/obj/structure/window/reinforced, -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/prison) "hxn" = ( /obj/structure/chair, /obj/item/clothing/glasses/regular, @@ -55092,6 +54233,19 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"hyn" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/space, +/area/solars/port) "hzc" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -55109,18 +54263,30 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "hzd" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Firing Range Target" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/security/brig) +"hBa" = ( +/obj/machinery/light{ dir = 8 }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/flasher{ + id = "brigentry"; + pixel_x = -28 }, -/turf/open/floor/plating, -/area/maintenance/solars/port) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "hBu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral{ @@ -55135,6 +54301,10 @@ }, /turf/open/floor/plasteel/dark, /area/service/library) +"hCn" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) "hDG" = ( /obj/machinery/door/airlock/engineering{ name = "Auxillary Base Construction"; @@ -55166,6 +54336,16 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"hGp" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "hGB" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -55204,9 +54384,25 @@ /turf/open/floor/engine, /area/engineering/supermatter) "hKX" = ( -/obj/machinery/space_heater, +/obj/structure/sign/warning{ + pixel_y = 32 + }, +/obj/structure/sign/warning{ + pixel_y = -32 + }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"hMg" = ( +/obj/machinery/power/solar_control{ + dir = 4; + id = "portsolar"; + name = "Port Solar Control" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "hMx" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /turf/open/floor/plating{ @@ -55214,15 +54410,12 @@ }, /area/maintenance/department/science) "hOx" = ( -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "hOz" = ( @@ -55547,6 +54740,23 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"isH" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "itl" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55562,6 +54772,10 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"ito" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel, +/area/security/brig) "iuM" = ( /obj/machinery/door/window/southleft{ dir = 8; @@ -55583,19 +54797,16 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "ivO" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/landmark/start/security_officer, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/mob/living/simple_animal/bot/secbot{ - arrest_type = 1; - health = 45; - icon_state = "secbot1"; - idcheck = 1; - name = "Sergeant-at-Armsky"; - weaponscheck = 1 - }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/turf/open/floor/plasteel, +/area/security/office) "iwe" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/turf_decal/tile/blue{ @@ -55631,6 +54842,10 @@ }, /turf/closed/wall, /area/service/library/lounge) +"iyP" = ( +/obj/structure/disposaloutlet, +/turf/open/floor/plating, +/area/space/nearstation) "izB" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod" @@ -55641,13 +54856,14 @@ /turf/open/floor/plating, /area/commons/dorms) "izF" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ icon_state = "2-8" }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) @@ -55690,12 +54906,22 @@ /turf/open/floor/plasteel/dark, /area/engineering/main) "iCV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/machinery/light/small{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/machinery/button/door{ + id = "permabolt2"; + name = "Cell Bolt Control"; + normaldoorcontrol = 1; + pixel_y = 25; + specialfunctions = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/structure/chair, +/turf/open/floor/plasteel, +/area/security/prison) "iEP" = ( /obj/structure/table/wood/fancy, /obj/item/storage/fancy/candle_box, @@ -55711,11 +54937,16 @@ /turf/open/floor/plating, /area/maintenance/department/crew_quarters/dorms) "iEX" = ( -/obj/structure/table/wood, -/obj/item/storage/briefcase, -/obj/item/folder/red, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/power/apc{ + dir = 1; + name = "Brig Maintenance APC"; + pixel_y = 23 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "iFI" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -55757,20 +54988,12 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "iLR" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/structure/window/reinforced, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "iPj" = ( /obj/machinery/igniter{ id = "xenoigniter"; @@ -55803,17 +55026,17 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "iPH" = ( -/obj/machinery/vr_sleeper{ - dir = 8 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "iPO" = ( /obj/machinery/door/poddoor/shutters{ id = "aux_base_shutters"; @@ -55824,20 +55047,11 @@ /turf/open/floor/plasteel, /area/construction/mining/aux_base) "iPU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/general/visible{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) +/turf/closed/wall, +/area/security/prison) "iSz" = ( /obj/structure/cable{ icon_state = "2-8" @@ -55854,6 +55068,13 @@ /obj/structure/sign/warning/electricshock, /turf/closed/wall/r_wall, /area/engineering/supermatter) +"iUy" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/turf/open/space/basic, +/area/space/nearstation) "iVJ" = ( /obj/effect/spawner/lootdrop/organ_spawner, /turf/open/floor/plating{ @@ -55868,12 +55089,6 @@ /area/maintenance/department/cargo) "iXx" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plating{ icon_state = "panelscorched" }, @@ -55901,19 +55116,14 @@ /turf/open/floor/plasteel/dark, /area/service/library/lounge) "iYQ" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "jcT" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -55930,19 +55140,8 @@ /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/closed/wall/r_wall, +/area/security/courtroom) "jeq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55957,15 +55156,33 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) -"jgr" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +"jfY" = ( +/obj/structure/chair{ + dir = 1; + name = "Prosecution" }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -26 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"jgr" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, /turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/area/maintenance/department/security/brig) "jhk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -55988,6 +55205,23 @@ icon_state = "platingdmg3" }, /area/maintenance/department/crew_quarters/dorms) +"jiC" = ( +/obj/structure/table/reinforced, +/obj/item/pen, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) "jjC" = ( /obj/structure/rack, /obj/item/storage/briefcase{ @@ -56004,6 +55238,24 @@ /obj/machinery/atmospherics/components/binary/pump, /turf/closed/wall/r_wall, /area/tcommsat/computer) +"jmt" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"jnR" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "jqZ" = ( /obj/structure/table/wood, /obj/item/paper_bin{ @@ -56032,7 +55284,9 @@ /turf/open/floor/plasteel, /area/engineering/main) "jsf" = ( -/obj/item/toy/katana, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "jsj" = ( @@ -56045,6 +55299,24 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/white, /area/medical/treatment_center) +"jsl" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/service/chapel/main/monastery) +"jst" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) "jsD" = ( /obj/structure/sign/plaques/deempisi{ pixel_y = 28 @@ -56068,29 +55340,27 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"jtB" = ( +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "juw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/turf/open/floor/plasteel, +/area/security/office) "jvi" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -26 - }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ - dir = 4 + dir = 8 }, -/turf/open/floor/plasteel/dark, -/area/command/heads_quarters/hos) +/turf/open/floor/plasteel, +/area/security/brig) "jvO" = ( /obj/machinery/atmospherics/pipe/simple/orange/visible, /turf/closed/wall/r_wall, @@ -56121,19 +55391,19 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "jxK" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "jzw" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -56226,9 +55496,28 @@ /turf/open/floor/plating, /area/maintenance/department/science) "jFO" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/service/library/lounge) +/obj/machinery/door/airlock/security{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"jHl" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "jHP" = ( /obj/structure/table, /obj/item/reagent_containers/food/drinks/bottle/vodka/badminka{ @@ -56269,13 +55558,16 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) +"jRI" = ( +/obj/structure/girder, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) "jSa" = ( /obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 }, /turf/open/floor/plating, /area/service/chapel/main/monastery) @@ -56300,6 +55592,9 @@ }, /turf/open/floor/carpet, /area/service/lawoffice) +"jTx" = ( +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "jTU" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible, /obj/structure/cable/yellow{ @@ -56319,6 +55614,13 @@ }, /turf/open/floor/plasteel/white, /area/medical/medbay/central) +"jVB" = ( +/obj/machinery/portable_atmospherics/canister/air, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "jXh" = ( /obj/structure/chair/wood/normal{ dir = 1 @@ -56331,11 +55633,8 @@ /turf/open/floor/plating, /area/maintenance/department/science) "jXF" = ( -/obj/machinery/cryopod{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/turf/closed/wall, +/area/security/office) "jXV" = ( /obj/machinery/light/small{ dir = 1 @@ -56360,6 +55659,12 @@ icon_state = "platingdmg3" }, /area/maintenance/department/engine) +"jYO" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "jZG" = ( /obj/machinery/door/poddoor/shutters/preopen{ id = "chemistry_shutters"; @@ -56378,6 +55683,13 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel, /area/engineering/atmos) +"kau" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "kaR" = ( /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ dir = 8 @@ -56387,12 +55699,6 @@ }, /turf/open/floor/engine, /area/engineering/main) -"keD" = ( -/obj/structure/table/wood, -/obj/item/storage/briefcase, -/obj/item/folder/blue, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) "kfh" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 @@ -56425,6 +55731,13 @@ }, /turf/open/floor/plasteel/dark, /area/service/library) +"kjp" = ( +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/courtroom) "kjK" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "MiniSat Maintenance"; @@ -56493,12 +55806,31 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"kpi" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "kpK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 }, /turf/open/floor/plating, /area/maintenance/department/engine) +"kqF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "krU" = ( /obj/structure/chair{ dir = 4 @@ -56594,16 +55926,11 @@ /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) "kAX" = ( -/obj/structure/table/wood, -/obj/item/gavelblock, -/obj/effect/turf_decal/tile/blue{ - dir = 4 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plasteel, +/area/security/office) "kDf" = ( /obj/machinery/light/small, /turf/open/floor/carpet/black, @@ -56640,6 +55967,13 @@ /obj/structure/table, /turf/open/floor/plasteel, /area/service/hydroponics) +"kFd" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "kFm" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -56711,44 +56045,45 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "kJo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) "kJw" = ( -/obj/machinery/door/airlock/maintenance/abandoned{ - name = "Firing Range Target" - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, +/turf/closed/wall, /area/maintenance/department/security/brig) "kJN" = ( -/obj/structure/chair{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/turf/open/floor/plasteel, +/area/security/office) +"kKB" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/obj/machinery/camera{ - c_tag = "Courtroom South"; - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "kKI" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/structure/closet, /turf/open/floor/plating, /area/maintenance/department/cargo) +"kMf" = ( +/obj/machinery/atmospherics/pipe/manifold/general/hidden{ + dir = 1 + }, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "kNf" = ( /obj/machinery/door/window/northleft{ base_state = "right"; @@ -56788,6 +56123,12 @@ icon_state = "platingdmg3" }, /area/maintenance/department/science) +"kPt" = ( +/obj/structure/chair/stool, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) "kQy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -56816,6 +56157,12 @@ "kRq" = ( /turf/open/floor/plasteel, /area/maintenance/department/engine) +"kRH" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "kRK" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/machinery/portable_atmospherics/canister/bz, @@ -56859,6 +56206,24 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"kSC" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "kSF" = ( /obj/structure/cable{ icon_state = "1-4" @@ -56927,7 +56292,6 @@ /turf/open/floor/engine, /area/engineering/main) "kXx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, @@ -56938,12 +56302,10 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/item/kirbyplants{ - icon_state = "plant-10" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/dark, /area/service/chapel/main/monastery) "kYM" = ( @@ -56960,8 +56322,27 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"kZk" = ( +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) +"kZF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/security/brig) +"lac" = ( +/obj/structure/disposalpipe/segment, +/turf/open/space/basic, +/area/space) "lcU" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 5 }, /turf/open/floor/plating, @@ -56975,18 +56356,9 @@ /turf/open/floor/plating, /area/maintenance/department/science) "lem" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/flasher{ - id = "executionflash"; - pixel_y = 25 - }, -/obj/machinery/igniter{ - id = "secigniter" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/open/floor/plasteel/dark, +/area/security/prison) "lfx" = ( /obj/structure/table, /obj/item/clothing/suit/hooded/wintercoat/engineering, @@ -57000,6 +56372,11 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engineering/main) +"lhq" = ( +/obj/machinery/computer/security, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) "lhA" = ( /obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel/dark, @@ -57064,10 +56441,9 @@ /turf/open/floor/engine, /area/engineering/main) "lqc" = ( -/obj/item/toy/gun, -/obj/effect/decal/cleanable/oil, +/obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/maintenance/department/security/brig) +/area/security/brig) "lrM" = ( /obj/structure/cable{ icon_state = "2-8" @@ -57075,6 +56451,20 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plasteel, /area/engineering/main) +"lsz" = ( +/obj/structure/chair{ + dir = 4; + name = "Bailiff" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "lxI" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, @@ -57090,31 +56480,38 @@ /obj/effect/turf_decal/tile/yellow, /turf/open/floor/plasteel/dark, /area/service/chapel/office) +"lAj" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"lAn" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Airlock" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "lAs" = ( /turf/closed/wall, /area/cargo/sorting) "lAL" = ( -/obj/structure/window/reinforced{ - dir = 8 +/obj/structure/cable{ + icon_state = "4-8" }, -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/window/reinforced{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plasteel, +/area/security/office) "lAR" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -57163,9 +56560,11 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "lGp" = ( -/obj/structure/weightmachine/weightlifter, +/obj/item/kirbyplants{ + icon_state = "plant-22" + }, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/office) "lGv" = ( /obj/machinery/door/airlock/atmos/abandoned{ name = "Atmospherics Maintenance"; @@ -57189,12 +56588,9 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "lHc" = ( -/obj/structure/girder, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/computer/shuttle/labor, +/turf/open/floor/plasteel/dark, +/area/security/brig) "lHX" = ( /obj/structure/bed, /obj/item/bedsheet/orange, @@ -57233,9 +56629,11 @@ /turf/open/floor/plating, /area/commons/storage/emergency/starboard) "lMU" = ( -/obj/effect/spawner/lootdrop/maintenance, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 + }, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-4" }, /turf/open/floor/plating, /area/maintenance/department/security/brig) @@ -57284,6 +56682,15 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"lTx" = ( +/obj/structure/sign/departments/security{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "lTC" = ( /obj/item/shard, /obj/effect/turf_decal/stripes/line{ @@ -57295,11 +56702,9 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "lUz" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/fore) "lUO" = ( /obj/structure/sign/warning/radiation, /turf/closed/wall/r_wall, @@ -57336,10 +56741,27 @@ /turf/open/floor/engine, /area/engineering/main) "lXc" = ( -/obj/structure/table, -/obj/item/clothing/head/beret, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/structure/closet/crate, /turf/open/floor/plating, -/area/maintenance/department/security/brig) +/area/maintenance/fore) +"lXd" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) "lXt" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -57347,19 +56769,9 @@ /turf/open/floor/engine, /area/science/xenobiology) "lXv" = ( -/obj/structure/chair{ - dir = 8; - name = "Defense" - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/effect/turf_decal/tile/green, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/fore) "lXJ" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 @@ -57411,19 +56823,6 @@ /obj/machinery/portable_atmospherics/canister/toxins, /turf/open/floor/plating, /area/engineering/main) -"mck" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - layer = 2.9; - pixel_x = -2; - pixel_y = 4 - }, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) "mdL" = ( /obj/structure/table, /obj/item/paper_bin, @@ -57437,6 +56836,18 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, /area/science/lab) +"mdS" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/security/brig) "meF" = ( /obj/machinery/status_display/evac, /turf/closed/wall/r_wall, @@ -57512,6 +56923,15 @@ }, /turf/open/floor/plating, /area/science/xenobiology) +"mlt" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "mmv" = ( /obj/machinery/door/airlock/engineering{ name = "Engineering Supplies"; @@ -57572,25 +56992,56 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) -"msX" = ( -/obj/effect/spawner/structure/window/reinforced, +"mqS" = ( /obj/structure/cable{ - icon_state = "0-4" + icon_state = "1-2" }, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plating, -/area/security/execution/transfer) -"mtu" = ( +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"mrk" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/department/security/brig) +"msX" = ( /obj/structure/table, -/obj/item/folder/yellow, -/obj/item/reagent_containers/food/snacks/donut, +/obj/item/paper, +/obj/item/pen, +/turf/open/floor/plasteel, +/area/security/prison) +"mtu" = ( /obj/machinery/light/small{ dir = 4 }, -/turf/closed/wall, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, /area/maintenance/department/security/brig) "mtI" = ( /obj/structure/cable{ @@ -57627,13 +57078,9 @@ /turf/open/floor/plating, /area/maintenance/solars/starboard) "mwg" = ( -/obj/structure/closet/crate{ - icon_state = "crateopen" +/obj/effect/turf_decal/stripes/line{ + dir = 10 }, -/obj/item/ammo_box/foambox, -/obj/item/ammo_box/foambox, -/obj/item/gun/ballistic/shotgun/toy, -/obj/item/gun/ballistic/shotgun/toy, /turf/open/floor/plating, /area/maintenance/department/security/brig) "mwG" = ( @@ -57682,11 +57129,6 @@ }, /turf/open/floor/plasteel/dark, /area/command/bridge) -"mzl" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/plating, -/area/security/execution/transfer) "mzE" = ( /obj/machinery/portable_atmospherics/canister/toxins, /obj/effect/turf_decal/delivery, @@ -57707,6 +57149,11 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"mAU" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "mCe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -57715,6 +57162,22 @@ }, /turf/open/floor/plating, /area/security/checkpoint/engineering) +"mDs" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc{ + dir = 1; + name = "Port Solar APC"; + pixel_y = 23 + }, +/obj/machinery/camera{ + c_tag = "Port Bow Solar"; + dir = 9; + name = "solar camera" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "mDW" = ( /obj/machinery/power/smes{ charge = 5e+006 @@ -57723,16 +57186,9 @@ /turf/open/floor/plating, /area/tcommsat/computer) "mEe" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "mEu" = ( /obj/machinery/atmospherics/pipe/simple/cyan/visible{ dir = 4 @@ -57749,6 +57205,16 @@ }, /turf/open/floor/plating, /area/maintenance/department/science) +"mGa" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=BrigS2"; + location = "BrigP" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "mHy" = ( /obj/item/storage/fancy/cigarettes/cigpack_shadyjims, /turf/open/floor/wood, @@ -57760,6 +57226,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/engine) +"mIO" = ( +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "mJp" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -57784,20 +57257,16 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "mKP" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/power/terminal{ + dir = 8 + }, /turf/open/floor/plating, -/area/security/courtroom) +/area/maintenance/department/chapel/monastery) "mLB" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/effect/turf_decal/stripes/line{ + dir = 6 }, +/turf/open/floor/plating, /area/maintenance/department/security/brig) "mMz" = ( /obj/effect/spawner/structure/window/reinforced, @@ -57836,6 +57305,12 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"mUU" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "mVM" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating/airless, @@ -57955,6 +57430,17 @@ /obj/item/chair/stool, /turf/open/floor/carpet, /area/maintenance/department/crew_quarters/dorms) +"ngq" = ( +/obj/structure/closet/secure_closet/courtroom, +/obj/item/gavelhammer, +/obj/structure/extinguisher_cabinet{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "nih" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/costume, @@ -58035,12 +57521,9 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "nso" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/light, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/structure/girder, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "nsy" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, @@ -58100,6 +57583,33 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"nwp" = ( +/obj/machinery/button/door{ + id = "prison release"; + name = "Labor Camp Shuttle Lockdown"; + pixel_x = -25; + req_access_txt = "2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"nxf" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) "nxT" = ( /obj/machinery/smartfridge/extract/preloaded, /turf/open/floor/plasteel, @@ -58179,6 +57689,40 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/secondary/exit/departure_lounge) +"nDM" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/item/radio, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"nDP" = ( +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "nEb" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -58231,6 +57775,25 @@ }, /turf/open/floor/plasteel/white, /area/science/lab) +"nJG" = ( +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/machinery/door/airlock/security/glass{ + id_tag = "outerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "nJI" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible, /obj/structure/sign/plaques/kiddie/perfect_drone{ @@ -58239,14 +57802,12 @@ /turf/open/floor/engine, /area/science/explab) "nKo" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, /obj/structure/cable{ - icon_state = "1-8" + icon_state = "1-2" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, -/area/maintenance/department/chapel/monastery) +/area/maintenance/department/security/brig) "nLl" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -58337,7 +57898,12 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "nPA" = ( -/obj/item/chair, +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "nQc" = ( @@ -58350,6 +57916,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"nQy" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/maintenance/fore) "nRM" = ( /obj/structure/chair/stool, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -58377,9 +57947,25 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "nUc" = ( -/obj/structure/disposaloutlet, -/turf/open/floor/plating, -/area/space/nearstation) +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Gulag Teleporter"; + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/table, +/obj/item/storage/box/prisoner, +/obj/item/razor{ + pixel_x = -6 + }, +/obj/item/paper/guides/jobs/security/labor_camp, +/obj/item/pen, +/turf/open/floor/plasteel/dark, +/area/security/brig) "nUQ" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/engine, @@ -58424,6 +58010,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/hallway/secondary/exit/departure_lounge) +"nYq" = ( +/obj/structure/rack, +/obj/item/gun/energy/laser/practice, +/obj/item/clothing/ears/earmuffs, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "nYC" = ( /obj/structure/cable{ icon_state = "2-8" @@ -58463,8 +58055,9 @@ /turf/open/floor/carpet, /area/service/library) "odM" = ( -/turf/closed/wall/r_wall, -/area/security/courtroom) +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "oep" = ( /obj/structure/table/glass, /obj/item/paper_bin, @@ -58478,6 +58071,12 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"ofi" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "ofN" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue, @@ -58512,6 +58111,16 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"onE" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "onX" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -58535,6 +58144,13 @@ /obj/item/wrench/medical, /turf/open/floor/engine, /area/medical/chemistry) +"opr" = ( +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "opz" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -58582,11 +58198,11 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "osW" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/chair/office/dark{ + dir = 8 }, /turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/security/brig) "osY" = ( /obj/structure/flora/ausbushes/reedbush{ pixel_x = -2; @@ -58617,14 +58233,19 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "ovB" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) "ovM" = ( /obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 @@ -58699,6 +58320,12 @@ /obj/effect/landmark/start/lawyer, /turf/open/floor/carpet, /area/service/lawoffice) +"oCG" = ( +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "oCX" = ( /obj/structure/cable{ icon_state = "4-8" @@ -58747,14 +58374,12 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "oFf" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 1 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, /turf/open/floor/plating, -/area/maintenance/department/security/brig) +/area/security/warden) "oFo" = ( /obj/structure/closet/emcloset/anchored, /obj/structure/sign/warning/vacuum/external{ @@ -58777,6 +58402,12 @@ icon_state = "platingdmg3" }, /area/maintenance/disposal/incinerator) +"oGX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "oHa" = ( /obj/machinery/power/emitter/anchored{ dir = 8; @@ -58830,6 +58461,17 @@ }, /turf/open/floor/engine, /area/engineering/main) +"oKX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating{ + icon_state = "platingdmg1" + }, +/area/maintenance/department/security/brig) "oLR" = ( /obj/effect/turf_decal/tile/red{ dir = 4 @@ -58854,16 +58496,12 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "oPx" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, -/area/maintenance/department/security/brig) +/obj/item/book/manual/wiki/security_space_law, +/obj/item/clothing/ears/earmuffs, +/obj/item/clothing/glasses/sunglasses, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "oPy" = ( /obj/machinery/door/airlock/external{ name = "Mining Dock Airlock"; @@ -58874,6 +58512,11 @@ }, /turf/open/floor/plating, /area/cargo/miningdock) +"oPX" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/cable_coil, +/turf/open/space, +/area/solars/port) "oQm" = ( /obj/docking_port/stationary{ dir = 8; @@ -58886,6 +58529,16 @@ }, /turf/open/space/basic, /area/space) +"oQY" = ( +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "oRX" = ( /obj/structure/closet, /turf/open/floor/plating, @@ -58944,12 +58597,14 @@ /turf/open/floor/plating, /area/maintenance/department/security/brig) "oTC" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/soda_cans/cola, +/obj/machinery/vending/cigarette, /turf/open/floor/plating{ icon_state = "platingdmg3" }, /area/maintenance/department/security/brig) +"oTF" = ( +/turf/open/floor/circuit/green, +/area/maintenance/department/security/brig) "oUa" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -58987,18 +58642,13 @@ /turf/open/floor/plasteel/dark, /area/service/library) "oXe" = ( -/obj/structure/table/glass, -/obj/item/mmi, -/obj/item/clothing/mask/balaclava, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/execution/transfer) +/turf/open/floor/plasteel, +/area/security/prison) "oXq" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 1; @@ -59047,9 +58697,22 @@ /turf/open/floor/engine, /area/science/xenobiology) "pdq" = ( -/obj/effect/decal/cleanable/oil, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Entrance Lockdown"; + pixel_x = 5; + pixel_y = -2 + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Permabrig Lockdown"; + pixel_x = 5; + pixel_y = 8; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "pdW" = ( /obj/structure/cable{ icon_state = "1-4" @@ -59063,30 +58726,46 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "peE" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/obj/structure/chair/office/dark, +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "pfz" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-4" +/obj/machinery/light{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 }, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/machinery/button/flasher{ + id = "PCell 2"; + pixel_x = 5; + pixel_y = 24 + }, +/obj/machinery/button/door{ + id = "permacell2"; + name = "Cell 2 Lockdown"; + pixel_x = 4; + pixel_y = 34; + req_access_txt = "2" + }, +/turf/open/floor/plasteel, +/area/security/prison) "pfB" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/turf/open/floor/plasteel, +/area/security/office) "pfP" = ( /obj/structure/table, /obj/item/storage/box/syringes, @@ -59119,9 +58798,19 @@ /turf/open/floor/plating, /area/maintenance/disposal) "pia" = ( -/obj/structure/disposalpipe/segment, -/turf/open/space/basic, -/area/space) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"pid" = ( +/obj/machinery/power/tracker, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port) "pjH" = ( /obj/structure/cable{ icon_state = "1-2" @@ -59155,6 +58844,19 @@ }, /turf/open/floor/plasteel, /area/engineering/atmos) +"pmC" = ( +/obj/structure/bed, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -28 + }, +/obj/item/bedsheet/green, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "pnU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{ dir = 4; @@ -59191,6 +58893,26 @@ }, /turf/open/floor/plating, /area/hallway/secondary/entry) +"pqR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/space, +/area/solars/port) +"prB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "prQ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 4 @@ -59208,6 +58930,19 @@ /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, /area/engineering/supermatter) +"puy" = ( +/obj/structure/bed, +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -28 + }, +/obj/item/bedsheet/blue, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "pvK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ @@ -59274,6 +59009,12 @@ /obj/structure/lattice/catwalk, /turf/open/space/basic, /area/space/nearstation) +"pCF" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "pDP" = ( /obj/machinery/vending/assist, /obj/effect/turf_decal/tile/neutral{ @@ -59307,6 +59048,26 @@ /obj/machinery/atmospherics/pipe/manifold/general/visible, /turf/open/floor/plasteel, /area/engineering/atmos) +"pEZ" = ( +/obj/machinery/door/window/southleft{ + base_state = "right"; + dir = 1; + icon_state = "right"; + name = "Brig Desk"; + req_access_txt = "1" + }, +/obj/item/reagent_containers/food/snacks/donut, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/structure/table/reinforced, +/obj/item/folder/red{ + layer = 2.9 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) "pFe" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/tile/red{ @@ -59319,12 +59080,12 @@ /turf/open/floor/plasteel/dark, /area/service/chapel/office) "pFy" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /turf/open/floor/plasteel, /area/hallway/primary/fore) "pGe" = ( @@ -59344,12 +59105,15 @@ /turf/open/floor/wood, /area/command/heads_quarters/hop) "pJy" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -26 +/obj/structure/rack, +/obj/item/crowbar, +/obj/item/wrench, +/obj/item/laser_pointer/red, +/obj/structure/cable{ + icon_state = "2-4" }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "pKd" = ( /obj/effect/spawner/lootdrop/maintenance{ lootcount = 2; @@ -59422,6 +59186,13 @@ }, /turf/closed/wall/r_wall, /area/medical/virology) +"pRz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "pVD" = ( /obj/machinery/light/small{ dir = 1 @@ -59467,16 +59238,15 @@ /turf/open/floor/plasteel, /area/service/hydroponics) "pXc" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-4" }, -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom" +/obj/machinery/power/solar{ + id = "portsolar"; + name = "Port Solar Array" }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plasteel/airless/solarpanel, +/area/solars/port) "pXg" = ( /obj/structure/table/glass, /obj/structure/window/reinforced, @@ -59593,6 +59363,16 @@ "qeY" = ( /turf/closed/wall/r_wall, /area/engineering/supermatter) +"qgb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/kirbyplants{ + icon_state = "plant-21" + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "qhE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 1 @@ -59602,6 +59382,17 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"qiG" = ( +/obj/machinery/mass_driver{ + id = "chapelgun" + }, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "qjx" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/stripes/line, @@ -59640,6 +59431,31 @@ }, /turf/open/floor/engine, /area/engineering/main) +"qpE" = ( +/obj/structure/chair{ + dir = 4; + name = "Judge" + }, +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"qpR" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "qpS" = ( /obj/structure/cable{ icon_state = "2-4" @@ -59675,6 +59491,37 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"quc" = ( +/obj/structure/disposalpipe/segment, +/turf/open/space/basic, +/area/space/nearstation) +"quY" = ( +/obj/machinery/computer/secure_data, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "innerbrig"; + name = "Brig Interior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = 36; + req_access_txt = "63" + }, +/obj/machinery/button/door{ + desc = "A remote control switch for the medbay foyer."; + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + normaldoorcontrol = 1; + pixel_x = -6; + pixel_y = 24; + req_access_txt = "63" + }, +/obj/machinery/button/flasher{ + id = "brigentry"; + pixel_x = 6; + pixel_y = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "qxq" = ( /obj/machinery/atmospherics/components/binary/pump/on{ name = "Air Out" @@ -59781,6 +59628,12 @@ }, /turf/open/floor/plating, /area/maintenance/department/security/brig) +"qGW" = ( +/obj/effect/spawner/lootdrop/maintenance, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) "qGZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -59804,6 +59657,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/cargo) +"qIr" = ( +/obj/machinery/rnd/bepis, +/turf/open/floor/plasteel/white, +/area/science/explab) "qIC" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -59825,19 +59682,11 @@ /turf/open/floor/plating, /area/maintenance/department/science) "qLb" = ( -/obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/effect/turf_decal/tile/blue{ - dir = 8 +/obj/machinery/door/poddoor/shutters{ + id = "shootshut" }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "qLI" = ( /obj/structure/table, /obj/item/stack/sheet/glass/fifty{ @@ -59853,23 +59702,6 @@ }, /turf/open/floor/plasteel, /area/engineering/main) -"qMi" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/door/poddoor/preopen{ - id = "executionfireblast" - }, -/turf/open/floor/plating, -/area/security/execution/transfer) "qOE" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -60021,6 +59853,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"qXE" = ( +/obj/machinery/light/small, +/turf/open/floor/plating, +/area/maintenance/fore) "qXH" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -60092,10 +59928,7 @@ dir = 8 }, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" + icon_state = "1-8" }, /turf/open/floor/plasteel, /area/security/brig) @@ -60142,6 +59975,11 @@ icon_state = "wood-broken4" }, /area/maintenance/department/engine) +"rif" = ( +/obj/machinery/mech_bay_recharge_port, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "riF" = ( /obj/machinery/computer/arcade, /obj/effect/turf_decal/tile/neutral{ @@ -60166,16 +60004,7 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "rjF" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/door/poddoor/preopen{ - id = "Secure Gate"; - name = "brig shutters" - }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, +/turf/closed/wall/r_wall, /area/security/brig) "rmC" = ( /turf/open/space/basic, @@ -60211,21 +60040,22 @@ heat_capacity = 1e+006 }, /area/service/chapel/dock) -"rpx" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"roU" = ( +/obj/machinery/power/smes{ + charge = 5e+006 }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"rrb" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) +"rpY" = ( /obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating{ - icon_state = "panelscorched" + icon_state = "2-8" }, +/turf/open/floor/plating, +/area/maintenance/solars/port) +"rrb" = ( +/obj/item/target/clown, +/turf/open/floor/plating, /area/maintenance/department/security/brig) "rrU" = ( /obj/effect/turf_decal/tile/red{ @@ -60257,6 +60087,22 @@ }, /turf/open/floor/plasteel, /area/tcommsat/computer) +"rtg" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "rui" = ( /obj/structure/closet/emcloset/anchored, /obj/machinery/light/small{ @@ -60380,18 +60226,15 @@ /turf/open/floor/plating, /area/construction/mining/aux_base) "rKr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "1-2" }, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Solar Maintenance"; - req_access_txt = "10; 13" +/obj/structure/cable{ + icon_state = "2-8" }, /turf/open/floor/plating, -/area/maintenance/solars/port) +/area/maintenance/department/security/brig) "rKL" = ( /obj/item/trash/cheesie, /turf/open/floor/plating{ @@ -60399,12 +60242,16 @@ }, /area/maintenance/department/science) "rLi" = ( -/obj/machinery/button/door{ - id = "shootshut"; - name = "shutters control"; - pixel_x = 28 +/obj/item/clothing/head/collectable/police, +/turf/open/floor/mech_bay_recharge_floor, +/area/maintenance/department/security/brig) +"rMb" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/item/ammo_casing/shotgun/improvised, /turf/open/floor/plating, /area/maintenance/department/security/brig) "rMB" = ( @@ -60431,6 +60278,14 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/department/science) +"rNF" = ( +/obj/item/storage/box/matches{ + pixel_x = -3; + pixel_y = 8 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "rPg" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ dir = 8 @@ -60441,6 +60296,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, /area/science/mixing) +"rRj" = ( +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "rRv" = ( /obj/structure/bookcase/random/religion, /obj/effect/decal/cleanable/cobweb{ @@ -60465,6 +60324,23 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"rUj" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "prison release"; + name = "Labor Camp Shuttle Lockdown"; + pixel_y = -25; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "rWE" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -60525,13 +60401,25 @@ /turf/open/floor/plasteel, /area/engineering/main) "sdk" = ( -/obj/structure/lattice, -/obj/machinery/camera/motion{ - c_tag = "Armory External"; +/turf/open/floor/plasteel/showroomfloor, +/area/security/office) +"seG" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/turf/open/space, -/area/space/nearstation) +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "sgc" = ( /obj/machinery/vending/cigarette, /obj/effect/turf_decal/tile/neutral{ @@ -60572,6 +60460,10 @@ /obj/item/reagent_containers/food/snacks/meat/slab/monkey, /turf/open/floor/plating, /area/maintenance/department/engine) +"siA" = ( +/obj/item/toy/katana, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "sjC" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/tile/yellow, @@ -60581,10 +60473,30 @@ /obj/machinery/power/port_gen/pacman, /turf/open/floor/plasteel, /area/engineering/main) +"skq" = ( +/obj/machinery/door/airlock/engineering{ + name = "Port Solar Access"; + req_access_txt = "10" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "skw" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden, -/turf/closed/wall, -/area/maintenance/department/security/brig) +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) "slJ" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -60626,15 +60538,16 @@ /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) "sqt" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/structure/chair, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "sqQ" = ( /turf/open/floor/plating, /area/maintenance/disposal) +"srK" = ( +/obj/item/broken_bottle, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "srZ" = ( /obj/structure/closet/crate{ icon_state = "crateopen" @@ -60685,16 +60598,17 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "syn" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/docking_port/stationary{ + dir = 8; + dwidth = 2; + height = 5; + id = "laborcamp_home"; + name = "fore bay 1"; + roundstart_template = /datum/map_template/shuttle/labour/box; + width = 9 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg1" - }, -/area/maintenance/department/security/brig) +/turf/open/space/basic, +/area/space) "syQ" = ( /obj/machinery/vending/games, /obj/structure/sign/plaques/deempisi{ @@ -60705,30 +60619,30 @@ }, /area/maintenance/department/science) "szG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/open/floor/plating, -/area/security/execution/transfer) +/turf/open/floor/plasteel/dark, +/area/security/prison) "sAK" = ( /obj/item/clothing/mask/gas/plaguedoctor, /turf/open/floor/plating, /area/maintenance/department/science) "sBA" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/machinery/door/window/southleft{ + name = "Court Cell"; + req_access_txt = "2" }, -/obj/machinery/firealarm{ - pixel_y = 29 +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"sDV" = ( +/obj/structure/closet/secure_closet/brig{ + id = "Cell 1"; + name = "Cell 1 Locker" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plasteel, /area/security/brig) @@ -60744,7 +60658,13 @@ /turf/open/floor/plasteel/white, /area/medical/virology) "sGr" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plating, @@ -60766,11 +60686,15 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"sIO" = ( +/obj/structure/chair/wood/normal, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "sJp" = ( -/obj/machinery/atmospherics/pipe/simple/general/visible, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/turf/closed/wall, +/area/security/prison) "sJr" = ( /turf/open/floor/wood, /area/service/lawoffice) @@ -60798,6 +60722,27 @@ /obj/machinery/door/firedoor, /turf/open/floor/plasteel/dark, /area/service/library) +"sMe" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/space, +/area/solars/port) +"sMA" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) "sNk" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60812,12 +60757,22 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel/dark, /area/science/xenobiology) -"sOC" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +"sNS" = ( +/obj/machinery/power/smes{ + charge = 5e+006 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" }, /turf/open/floor/plating, -/area/security/execution/transfer) +/area/maintenance/department/chapel/monastery) +"sOC" = ( +/obj/structure/closet, +/obj/item/clothing/under/color/black, +/obj/item/clothing/under/color/red, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "sPh" = ( /turf/open/floor/plasteel/yellowsiding, /area/hallway/secondary/entry) @@ -60998,9 +60953,25 @@ /turf/open/floor/engine, /area/science/xenobiology) "tfZ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/closed/wall, -/area/maintenance/department/security/brig) +/obj/structure/closet/crate/freezer, +/obj/structure/window/reinforced{ + dir = 4; + layer = 2.9 + }, +/obj/item/reagent_containers/blood/OMinus, +/obj/item/reagent_containers/blood/OMinus, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/white, +/area/security/brig) "thA" = ( /obj/machinery/atmospherics/pipe/simple/general/hidden, /turf/closed/wall/r_wall, @@ -61043,10 +61014,9 @@ /turf/open/floor/engine, /area/engineering/main) "tlc" = ( -/obj/machinery/recharger, -/obj/structure/table, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/gulag_teleporter, +/turf/open/floor/plasteel/dark, +/area/security/brig) "tlp" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 9 @@ -61074,18 +61044,11 @@ /turf/open/floor/plating, /area/engineering/main) "tnP" = ( -/obj/machinery/seed_extractor, -/obj/effect/turf_decal/tile/green{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 10 }, -/obj/effect/turf_decal/tile/green{ - dir = 8 - }, -/obj/machinery/light{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/turf/open/floor/plasteel, +/area/security/brig) "tnY" = ( /obj/machinery/button/door{ id = "aux_base_shutters"; @@ -61101,11 +61064,15 @@ /turf/open/floor/plasteel, /area/construction/mining/aux_base) "tpb" = ( -/obj/item/reagent_containers/food/snacks/donut, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" }, -/area/maintenance/department/security/brig) +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "tqO" = ( /obj/structure/sign/poster/official/random{ pixel_x = -32 @@ -61230,10 +61197,25 @@ /obj/item/pen, /turf/open/floor/plasteel/dark, /area/science/explab) +"tBh" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "tCJ" = ( /obj/machinery/space_heater, /turf/open/floor/plating, /area/maintenance/department/crew_quarters/bar) +"tCN" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/snacks/donut, +/obj/item/folder/yellow, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "tCP" = ( /obj/docking_port/stationary/public_mining_dock, /turf/open/floor/plating, @@ -61242,6 +61224,15 @@ /obj/item/wrench, /turf/open/floor/plating, /area/maintenance/department/cargo) +"tFp" = ( +/obj/item/kirbyplants{ + icon_state = "plant-10" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "tHk" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -61279,6 +61270,19 @@ /obj/machinery/status_display/supply, /turf/closed/wall, /area/cargo/warehouse) +"tMe" = ( +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"tMI" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "tOD" = ( /obj/machinery/atmospherics/pipe/simple/green/visible, /obj/effect/turf_decal/stripes/line{ @@ -61286,6 +61290,28 @@ }, /turf/open/floor/engine, /area/engineering/main) +"tPb" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/lattice/catwalk, +/turf/open/space, +/area/solars/port) +"tPj" = ( +/obj/machinery/atmospherics/pipe/simple/general/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) +"tPu" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/potato{ + name = "\improper Beepsky's emergency battery" + }, +/obj/item/paper/fluff/jobs/security/beepsky_mom, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "tRc" = ( /obj/structure/ore_box, /turf/open/floor/plating{ @@ -61294,9 +61320,18 @@ /area/maintenance/department/engine) "tRZ" = ( /obj/structure/lattice, -/obj/structure/lattice, +/obj/structure/disposalpipe/segment, /turf/open/space/basic, /area/space/nearstation) +"tSt" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "tSL" = ( /turf/open/floor/plating{ icon_state = "panelscorched" @@ -61307,44 +61342,17 @@ /turf/open/floor/plasteel, /area/hallway/primary/aft) "tTZ" = ( -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plasteel/dark, +/area/security/courtroom) "tUO" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 }, /turf/closed/wall/r_wall, /area/science/xenobiology) -"tVY" = ( -/obj/structure/chair{ - dir = 4; - name = "Prosecution" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) -"tVZ" = ( -/obj/effect/landmark/start/prisoner, -/turf/open/floor/plasteel/dark, -/area/security/prison) "tXn" = ( /obj/structure/sink{ dir = 4; @@ -61366,6 +61374,20 @@ }, /turf/open/floor/plasteel/white, /area/science/xenobiology) +"tXP" = ( +/obj/machinery/door/airlock/maintenance/abandoned{ + name = "Firing Range" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" + }, +/area/maintenance/department/security/brig) +"tYu" = ( +/obj/item/reagent_containers/food/snacks/donut, +/turf/open/floor/plating{ + icon_state = "panelscorched" + }, +/area/maintenance/department/security/brig) "uaC" = ( /obj/structure/chair/comfy/black{ dir = 8 @@ -61373,10 +61395,15 @@ /turf/open/floor/carpet, /area/maintenance/department/crew_quarters/dorms) "uaE" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor6" +/obj/machinery/door/airlock/maintenance{ + req_access_txt = "12" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating{ + icon_state = "platingdmg3" }, -/turf/open/floor/plating, /area/maintenance/department/security/brig) "uaO" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -61442,6 +61469,13 @@ }, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"ugu" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/sign/warning/vacuum/external{ + pixel_x = -32 + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "ugC" = ( /obj/structure/chair/office/light{ dir = 4 @@ -61502,23 +61536,18 @@ /turf/open/floor/plasteel, /area/commons/storage/primary) "ulQ" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Courtroom"; - req_access_txt = "42" +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/space, +/area/solars/port) "ulY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/closed/wall/r_wall, @@ -61576,10 +61605,14 @@ /turf/open/water/decorative, /area/hallway/secondary/entry) "uqJ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/execution/transfer) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "urP" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -61588,14 +61621,9 @@ /turf/open/floor/plasteel, /area/science/explab) "utg" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/open/floor/plasteel/cafeteria, -/area/security/prison) +/obj/item/ammo_casing/shotgun/beanbag, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "uug" = ( /turf/open/floor/plating{ icon_state = "platingdmg1" @@ -61677,6 +61705,15 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"uyI" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "uyJ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/engine, @@ -61730,11 +61767,14 @@ /turf/open/floor/engine, /area/science/xenobiology) "uAA" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/item/target/alien, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) +"uAE" = ( +/obj/machinery/power/smes, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port) "uAU" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -61763,6 +61803,19 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/plasteel, /area/construction/mining/aux_base) +"uFA" = ( +/obj/item/storage/box/lights/bulbs, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) +"uFZ" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "uHG" = ( /obj/structure/cable{ icon_state = "1-4" @@ -61771,19 +61824,8 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "uIh" = ( -/obj/structure/chair{ - dir = 8; - name = "Defense" - }, -/obj/effect/turf_decal/tile/green{ - dir = 1 - }, -/obj/effect/turf_decal/tile/green{ - dir = 4 - }, -/obj/effect/turf_decal/tile/green, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/closed/wall/mineral/iron, +/area/maintenance/department/chapel/monastery) "uIn" = ( /obj/machinery/power/terminal{ dir = 1 @@ -61799,6 +61841,13 @@ }, /turf/closed/wall/r_wall, /area/engineering/main) +"uKR" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/plasteel, +/area/maintenance/department/security/brig) "uLF" = ( /obj/structure/cable{ icon_state = "1-4" @@ -61826,6 +61875,16 @@ /obj/structure/grille, /turf/open/floor/plating, /area/maintenance/department/engine) +"uMf" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/light, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "uMo" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/tile/yellow, @@ -61844,7 +61903,8 @@ /turf/open/floor/plasteel, /area/commons/fitness/recreation) "uQR" = ( -/obj/item/ammo_casing/shotgun/beanbag, +/obj/structure/table, +/obj/item/clothing/head/beret, /turf/open/floor/plating, /area/maintenance/department/security/brig) "uRk" = ( @@ -61889,12 +61949,13 @@ /turf/open/floor/carpet, /area/service/lawoffice) "uXp" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 8 +/obj/item/weldingtool, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" }, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "uXG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61944,6 +62005,16 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) +"vcv" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "veF" = ( /obj/structure/window/reinforced{ dir = 8 @@ -61989,10 +62060,30 @@ }, /turf/open/floor/plasteel, /area/science/xenobiology) +"vgF" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "vhk" = ( /obj/structure/chair, /turf/open/floor/carpet, /area/service/lawoffice) +"vil" = ( +/obj/machinery/mass_driver{ + id = "chapelgun" + }, +/obj/machinery/door/window/eastleft{ + dir = 8; + name = "Mass Driver" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "vjd" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -62002,6 +62093,14 @@ }, /turf/open/floor/plasteel, /area/engineering/main) +"vjD" = ( +/obj/structure/chair/stool, +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/maintenance/solars/port) "vli" = ( /obj/structure/table, /obj/item/clothing/glasses/meson/engine, @@ -62061,6 +62160,19 @@ }, /turf/open/floor/plating, /area/maintenance/department/engine) +"vnI" = ( +/obj/structure/bed, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -28 + }, +/obj/item/bedsheet/orange, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "voh" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 5 @@ -62087,6 +62199,12 @@ }, /turf/open/floor/plasteel/dark, /area/service/library/lounge) +"vrQ" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "vsk" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -62172,9 +62290,10 @@ /turf/open/floor/plasteel, /area/engineering/main) "vxV" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/item/toy/gun, +/obj/effect/decal/cleanable/oil, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "vzp" = ( /obj/effect/turf_decal/tile/brown, /obj/item/stack/ore/iron, @@ -62246,13 +62365,7 @@ /turf/open/floor/engine, /area/engineering/main) "vCC" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/clothing/head/cone, /turf/open/floor/plating, /area/maintenance/department/security/brig) "vGg" = ( @@ -62305,10 +62418,46 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "vOw" = ( -/obj/structure/lattice, -/obj/structure/disposalpipe/segment, -/turf/open/space/basic, -/area/space/nearstation) +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"vOQ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/door/airlock/public/glass{ + name = "Courtroom"; + req_access_txt = "42" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"vQx" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 1"; + name = "Cell 1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "vQN" = ( /obj/effect/turf_decal/stripes/corner, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -62460,6 +62609,15 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/department/engine) +"wdU" = ( +/obj/machinery/button/door{ + id = "shootshut"; + name = "shutters control"; + pixel_x = 28 + }, +/obj/item/ammo_casing/shotgun/improvised, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "wdY" = ( /obj/machinery/light/small{ dir = 4 @@ -62517,10 +62675,8 @@ }, /area/hallway/secondary/entry) "wig" = ( -/obj/machinery/vending/cigarette, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, /area/maintenance/department/security/brig) "wiB" = ( /obj/item/shard{ @@ -62558,6 +62714,17 @@ /obj/item/flashlight, /turf/open/floor/plasteel, /area/hallway/secondary/entry) +"wkC" = ( +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/structure/window/reinforced{ + dir = 8; + layer = 2.9 + }, +/turf/open/space/basic, +/area/space/nearstation) "wkZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 @@ -62585,6 +62752,15 @@ }, /turf/open/floor/plasteel/white, /area/science/explab) +"wnp" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 + }, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "wnE" = ( /obj/machinery/light/small, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -62597,9 +62773,17 @@ /turf/closed/wall, /area/science/mixing) "woq" = ( -/obj/structure/chair, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wqu" = ( /obj/effect/turf_decal/loading_area{ dir = 8 @@ -62643,35 +62827,56 @@ /turf/open/floor/plasteel, /area/hallway/secondary/exit/departure_lounge) "wwG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) -"wxb" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/turf/open/floor/plasteel, +/area/security/brig) +"wxb" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/area/maintenance/department/security/brig) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wxJ" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/preopen{ - id = "prison release"; - name = "prisoner processing blast door" - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "wyf" = ( -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plating, +/area/maintenance/department/chapel/monastery) "wzb" = ( /obj/structure/chair, /turf/open/floor/wood, @@ -62706,9 +62911,26 @@ /turf/open/floor/plasteel, /area/engineering/main) "wDm" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/machinery/camera{ + c_tag = "Brig Cells" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wDq" = ( /obj/structure/bookcase/random/fiction, /turf/open/floor/plasteel/dark, @@ -62734,12 +62956,39 @@ dir = 1 }, /area/hallway/secondary/exit/departure_lounge) +"wFB" = ( +/obj/structure/grille, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "wFT" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 5 }, /turf/open/floor/plating, /area/maintenance/department/science) +"wGD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/space, +/area/solars/port) +"wIa" = ( +/obj/machinery/atmospherics/pipe/manifold/cyan/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wIo" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, /obj/structure/lattice, @@ -62773,9 +63022,9 @@ /turf/open/floor/plating, /area/command/heads_quarters/cmo) "wMF" = ( -/obj/effect/spawner/lootdrop/three_course_meal, -/obj/effect/spawner/lootdrop/three_course_meal, /obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/three_course_meal, +/obj/effect/spawner/lootdrop/three_course_meal, /turf/open/floor/plating{ icon_state = "platingdmg1" }, @@ -62821,6 +63070,23 @@ }, /turf/open/floor/plating, /area/science/mixing) +"wPk" = ( +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"wPp" = ( +/obj/structure/table, +/obj/item/stack/rods/fifty, +/obj/item/wrench, +/obj/item/storage/box/lights/mixed, +/turf/open/floor/plating, +/area/maintenance/fore) "wQU" = ( /obj/effect/spawner/lootdrop/maintenance, /obj/structure/cable{ @@ -62840,27 +63106,30 @@ /turf/open/floor/plating, /area/maintenance/department/engine) "wRz" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "12" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" - }, -/area/maintenance/department/security/brig) +/turf/open/floor/plasteel, +/area/security/brig) "wRI" = ( -/obj/machinery/power/apc{ - dir = 1; - name = "Brig Maintenance APC"; - pixel_y = 23 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, /obj/structure/cable{ - icon_state = "0-4" + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/department/security/brig) +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wSX" = ( /obj/structure/flora/junglebush/large{ pixel_x = -15; @@ -62899,11 +63168,23 @@ /turf/open/floor/plating, /area/commons/storage/emergency/port) "wUz" = ( -/obj/structure/chair/stool, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 }, -/area/maintenance/department/security/brig) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wVC" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Sci"; @@ -62912,10 +63193,16 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "wWJ" = ( -/obj/structure/closet/secure_closet/courtroom, -/obj/item/gavelhammer, -/turf/open/floor/plasteel/dark, -/area/security/courtroom) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel, +/area/security/brig) "wXu" = ( /obj/machinery/disposal/bin, /obj/structure/window/reinforced{ @@ -62931,9 +63218,7 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "wYu" = ( -/obj/machinery/door/poddoor/shutters{ - id = "shootshut" - }, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/maintenance/department/security/brig) "wYK" = ( @@ -62981,6 +63266,19 @@ "xbJ" = ( /turf/open/floor/plasteel/dark, /area/maintenance/department/crew_quarters/dorms) +"xcw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Solar Maintenance"; + req_access_txt = "10; 13" + }, +/turf/open/floor/plating, +/area/maintenance/solars/port) "xee" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external, @@ -63002,6 +63300,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) +"xgz" = ( +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) "xgG" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -63012,9 +63319,13 @@ /turf/open/floor/plasteel, /area/science/explab) "xhj" = ( -/obj/structure/table, +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/item/storage/fancy/candle_box, +/obj/structure/table/wood, /turf/open/floor/plasteel/dark, -/area/security/courtroom) +/area/service/chapel/main/monastery) "xhE" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 27 @@ -63081,9 +63392,8 @@ /turf/open/floor/plasteel/dark, /area/science/xenobiology) "xkB" = ( -/obj/machinery/light{ - dir = 8 - }, +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, /turf/open/floor/plasteel/dark, /area/security/courtroom) "xld" = ( @@ -63164,9 +63474,9 @@ /turf/open/floor/plating, /area/maintenance/department/science) "xuv" = ( -/obj/item/broken_bottle, +/obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/plating, -/area/maintenance/department/security/brig) +/area/maintenance/fore) "xvO" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -63177,10 +63487,27 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) +"xxl" = ( +/obj/structure/table/wood/fancy, +/obj/item/storage/book/bible, +/turf/open/floor/carpet, +/area/service/chapel/main/monastery) "xxw" = ( /obj/machinery/atmospherics/components/binary/pump, /turf/open/floor/plasteel/dark, /area/science/xenobiology) +"xxK" = ( +/obj/structure/sign/departments/security{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "xxO" = ( /obj/machinery/door/poddoor/preopen{ id = "xenobio2"; @@ -63217,11 +63544,13 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "xyB" = ( -/obj/effect/spawner/lootdrop/maintenance, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, -/area/maintenance/department/security/brig) +/turf/open/floor/plating, +/area/maintenance/fore) "xzp" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue{ @@ -63241,6 +63570,18 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/science/xenobiology) +"xBh" = ( +/obj/structure/sign/warning/vacuum/external{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"xBn" = ( +/obj/structure/table, +/obj/item/storage/crayons, +/obj/item/wrench, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "xCV" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ @@ -63264,6 +63605,12 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/aft) +"xDw" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "xEb" = ( /obj/structure/destructible/cult/tome, /turf/open/floor/plasteel/dark, @@ -63274,6 +63621,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/science/storage) +"xEy" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "xFl" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/tcommsat/server"; @@ -63302,6 +63653,11 @@ }, /turf/closed/wall/r_wall, /area/science/mixing) +"xIV" = ( +/obj/structure/chair/wood/normal, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "xJy" = ( /obj/structure/chair/comfy/black, /obj/structure/sign/plaques/kiddie{ @@ -63339,6 +63695,31 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plasteel/dark, /area/service/lawoffice) +"xLL" = ( +/turf/closed/wall, +/area/maintenance/solars/port) +"xMk" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) +"xNn" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 2"; + name = "Cell 2" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "xNx" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -63363,6 +63744,29 @@ }, /turf/open/floor/engine, /area/engineering/main) +"xNL" = ( +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/closed/wall/mineral/iron, +/area/service/chapel/main/monastery) +"xNO" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/cyan/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/courtroom) +"xNW" = ( +/obj/effect/decal/cleanable/cobweb{ + icon_state = "cobweb2" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/maintenance/department/security/brig) "xOC" = ( /obj/machinery/door/airlock/external{ name = "Construction Zone" @@ -63397,16 +63801,28 @@ /obj/structure/lattice/catwalk, /turf/open/space, /area/space/nearstation) +"xRD" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) "xSd" = ( /obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) +"xSk" = ( +/obj/structure/table, +/obj/item/crowbar, +/obj/item/clothing/mask/gas, +/turf/open/floor/plasteel/dark, +/area/service/chapel/main/monastery) "xSX" = ( /obj/machinery/airalarm/unlocked{ pixel_y = 23 @@ -63436,11 +63852,8 @@ /turf/open/floor/plasteel, /area/science/xenobiology) "xYV" = ( -/obj/item/stack/rods/fifty, -/obj/item/wrench, -/obj/machinery/atmospherics/components/binary/pump/on{ - dir = 8; - name = "Air to Distro" +/obj/structure/chair/sofa/corp/left{ + dir = 8 }, /turf/open/floor/plating, /area/maintenance/department/chapel/monastery) @@ -63450,8 +63863,9 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "ycr" = ( -/obj/structure/target_stake, -/obj/item/target/syndicate, +/obj/effect/decal/cleanable/oil{ + icon_state = "floor6" + }, /turf/open/floor/plating, /area/maintenance/department/security/brig) "ycx" = ( @@ -63481,6 +63895,10 @@ }, /turf/open/floor/plating, /area/maintenance/department/cargo) +"yin" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/maintenance/solars/port) "ymb" = ( /obj/machinery/camera{ c_tag = "Engineering Telecomms Access"; @@ -66143,35 +66561,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -66400,35 +66818,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -66657,35 +67075,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -66914,35 +67332,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -67171,35 +67589,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -67428,35 +67846,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoH +aoH +aoH +aoH +aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -67685,35 +68103,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aoH +aaa +aqd +aaa +aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -67942,35 +68360,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqd +aqd +pid +aqd +aqd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa rmC rmC rmC @@ -68199,35 +68617,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aaa +azH +aaa +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aoH +aaa +aaa rmC rmC rmC @@ -68456,35 +68874,35 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aqd +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aqd +aaa +aaa rmC rmC rmC @@ -68717,29 +69135,29 @@ aaa aaa aaa aaa +aoH aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa +wGD aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aoH aaa aaa aaa @@ -68974,29 +69392,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aoH +aqd +aqa +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +fgh +oPX +pqR +hyn +hyn +hyn +hyn +hyn +hyn +hyn +sMe +aqd +aoH aaa aaa aaa @@ -69231,29 +69649,29 @@ aaa aaa aaa aaa +aoH aaa +aIr +aIr +aIr +aIr +aIr +aIr +aIr +aIr aaa +azK aaa +aCa +aCa +aCa +aCa +aCa +aCa +aCa +aIr aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aoH aaa aaa aaa @@ -69488,6 +69906,7 @@ aaa aaa aaa aaa +gGy aaa aaa aaa @@ -69498,6 +69917,7 @@ aaa aaa aaa aaa +azK aaa aaa aaa @@ -69508,9 +69928,7 @@ aaa aaa aaa aaa -aaa -aaa -aaa +aoH aaa aaa aaa @@ -69745,29 +70163,29 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aoH -aoH -aoH -aoH aoH aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa +azK aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa -aaa -aaa -aaa -aaa -aaa +aoH aaa aaa aaa @@ -70002,34 +70420,34 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aoH -aaa -aoI -aaa +aqd +aqa +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +fgh +azK +pqR +hyn +hyn +hyn +hyn +hyn +hyn +hyn +sMe +aqd aoH aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa rmC rmC rmC @@ -70259,29 +70677,29 @@ aaa aaa aaa aaa +aoH aaa +aIr +aIr +aIr +aIr +aIr +aIr +aIr +aIr aaa +azK aaa +aCa +aCa +aCa +aCa +aCa +aCa +aCa +aIr aaa -aaa -aaa -aaa -aaa -aaa -aoI -aoI -azG -aoI -aoI -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aoH aaa aaa aaa @@ -70517,27 +70935,27 @@ aaa aaa aaa aoH -aoH -aoH -aoH -aoH -aoH -aoH -aoH -aoH -aoH aaa -azH aaa -aoH -aoH -aoH -aoH -aoH -aoH -aoH -aoH -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azK +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aoH aaa aaa @@ -70773,29 +71191,29 @@ aaa aaa aaa aaa -aoI +aoH aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa +azK aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa -aaa -aaa -aaa -aaa -aaa -aaa -azH -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aoI +aoH aaa aaa aaa @@ -71031,27 +71449,27 @@ aaa aaa aaa aoH -aaa +aqd aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aaa -azI -aaa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aaa +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +fgh +azK +pqR +hyn +hyn +hyn +hyn +hyn +hyn +hyn +sMe +aqd aoH aaa aaa @@ -71288,18 +71706,7 @@ aaa aaa aaa aoH -aoI -aqb -ara -ara -ara -ara -ara -ara -ara -ayy -azJ -aAV +aaa aCa aCa aCa @@ -71308,7 +71715,18 @@ aCa aCa aCa aIr -aoI +aaa +azK +aaa +aCa +aCa +aCa +aCa +aCa +aCa +aCa +aIr +aaa aoH aaa aaa @@ -71546,27 +71964,27 @@ aaa aaa aoH aaa -aqc -aqc -aqc -aqc -aqc -aqc -aqc -aqc +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa azK aaa -aqd -aqd -aqd -aqd -aqd -aqd -aqd -aqc aaa -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +gGy aaa aaa aaa @@ -71801,27 +72219,27 @@ aaa aaa aaa aaa -aoJ -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aoH aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa azK aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +pXc +pXc +pXc +pXc +pXc +pXc +pXc +pXc aaa aoH aaa @@ -72059,27 +72477,27 @@ aaa aaa aaa aoH -aaa +aqd aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aaa +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +ulQ +fgh azK -aaa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aaa +pqR +hyn +hyn +hyn +hyn +hyn +hyn +hyn +sMe +aqd aoH aaa aaa @@ -72316,18 +72734,7 @@ aaa aaa aaa aoH -aoI -aqb -ara -ara -ara -ara -ara -ara -ara -ayy -azK -aAV +aaa aCa aCa aCa @@ -72336,7 +72743,18 @@ aCa aCa aCa aIr -aoI +aaa +azK +aaa +aCa +aCa +aCa +aCa +aCa +aCa +aCa +aIr +aaa aoH aaa aaa @@ -72574,27 +72992,27 @@ aaa aaa aoH aaa -aqc -aqc -aqc -aqc -aqc -aqc -aqc -aqc +aaa +aaa +aqd +aaa +aaa +aaa +aaa +aaa aaa azK aaa -aqd -aqd -aqd -aqd -aqd -aqd -aqd -aqc aaa -aoH +aaa +aaa +aaa +aaa +aqd +aaa +aaa +aaa +aqd aaa aaa aaa @@ -72830,21 +73248,17 @@ aaa aaa aaa aoH +aqd +aoH +aoH +aoH aaa aaa aaa aaa aaa aaa -aaa -aaa -aaa -aaa -azK -aaa -aaa -aaa -aaa +tPb aaa aaa aaa @@ -72852,6 +73266,10 @@ aaa aaa aaa aoH +aqd +aoH +aoH +aoH aaa aaa aaa @@ -73086,29 +73504,29 @@ aaa aaa aaa aaa -aoH aaa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa aaa -azK aaa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa aaa -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -73343,29 +73761,29 @@ aaa aaa aaa aaa -aoH -aoI -aqb -ara -ara -ara -ara -ara -ara -ara -ayy -azK -aAV -aCa -aCa -aCa -aCa -aCa -aCa -aCa -aIr -aoI -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -73600,29 +74018,29 @@ aaa aaa aaa aaa -aoH aaa -aqd -aqd -aqd -aqd -aqd -aqd -aqd -aqc aaa -azK aaa -aqd -aqd -aqd -aqd -aqd -aqd -aqd -aqc aaa -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -73852,12 +74270,6 @@ rmC rmC rmC rmC -rmC -aaa -aaa -aaa -aaa -aoH aaa aaa aaa @@ -73868,7 +74280,14 @@ aaa aaa aaa aaa -azK +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa aaa aaa aaa @@ -73879,7 +74298,6 @@ aaa aaa aaa aaa -aoJ aaa aaa aaa @@ -74109,34 +74527,34 @@ rmC rmC rmC rmC -rmC aaa aaa aaa aaa -aoH aaa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa aaa -azK aaa -aqa -aqa -aqa -aqa -aqa -aqa -aqa -aqa aaa -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -74366,34 +74784,34 @@ rmC rmC rmC rmC -rmC aaa aaa aaa aaa -aoH -aoI -aqb -ara -ara -ara -ara -ara -ara -ara -ayy -azK -aAV -aCa -aCa -aCa -aCa -aCa -aCa -aCa -aIr -aoI -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -74476,12 +74894,12 @@ aaa aaa aaa aaa -cfN -cfN -fIT -cfH -fIT -cfN +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -74623,34 +75041,34 @@ rmC rmC rmC rmC -rmC aaa aaa aaa aaa -aoH aaa -aqd -aqd -aqd -aqd -aqd -aqd -aqd -aqc aaa -azK aaa -aqd -aqd -aqd -aqd -aqd -aqd -aqd -aqc aaa -aoH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -74733,13 +75151,13 @@ cfN cfN cfN cfN -cfN -cfN -fIT -cfI -fIT -cfN -cfN +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -74880,34 +75298,34 @@ rmC rmC rmC rmC -rmC -aaa -aaa -aaa -aaa -aoH -aaa -aaa -aaa -aoI aaa aaa aaa aaa aaa aaa -azK aaa aaa aaa aaa aaa aaa -aoI aaa aaa aaa -aoI +aaa +azH +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -74993,10 +75411,10 @@ cfN cfN cfN fIT -cjC +cfH fIT cfN -cfN +aaa aaa aaa aaa @@ -75137,35 +75555,35 @@ rmC rmC rmC rmC -rmC aaa aaa aaa +aby +aed +aby +aht +aby +aby +aby +aht +aby +aby +aby aaa -aoH -aoI -aoH -aoH -aoH +aaa +azH aaa aaa aaa aaa aaa aaa -azL aaa aaa aaa aaa aaa aaa -aoH -aoI -aoH -aoH -aoH -aaa aaa aaa aaa @@ -75247,14 +75665,14 @@ cfN cfN cfN cfN -bWV -bWV -fIT -cfJ -fIT -bWV cfN cfN +fIT +cfI +fIT +cfN +cfN +aaa aaa aaa aaa @@ -75394,21 +75812,21 @@ rmC rmC rmC rmC -rmC -aaa -aaa -aaa -aaa -aaa -aaa +aaa +aaa +aaa +aht aaa aaa aaa aaa +aht aaa aaa aaa aaa +aht +aht aaa azH aaa @@ -75504,14 +75922,14 @@ cfN cfN cfN cfN -bWV -ciJ -cjf -bXJ -cjZ -bWV cfN cfN +fIT +jsl +fIT +cfN +cfN +aaa aaa aaa aaa @@ -75651,21 +76069,21 @@ rmC rmC rmC rmC -rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa +aiu +ait +ait +ait +aiu +aiu +ait +ait +ait +aiu +aiu +aht aaa azH aaa @@ -75762,10 +76180,10 @@ bWV bWV bWV bWV -ciK -cjg -cjk -cka +bWV +fIT +cfJ +fIT bWV cfN cfN @@ -75908,21 +76326,21 @@ rmC rmC rmC rmC -rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa +aiu +czV +gJV +mwg +qLb +utg +ycr +tMe +azN +nYq +aiu +aht aaa azH aaa @@ -76019,15 +76437,15 @@ bWV chC chV bWV -bWV +gyQ cvq -ceP +bXJ +xBn bWV -bWV -bWV -bWV -cwM -bIT +cfN +cfN +aaa +aaa aaa aaa aaa @@ -76149,23 +76567,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -76181,6 +76582,23 @@ aaa aaa aaa aaa +aaa +aaa +aaa +aaa +aiu +cAr +hiw +mEe +qLb +azN +azN +azN +azN +fRL +aiu +aht +aaa azH aaa aaa @@ -76188,7 +76606,7 @@ aaa aaa aaa aaa -aaa +cFB aaa aaa aaa @@ -76276,16 +76694,16 @@ chb chD chW bWV -bWV -cgf +xSk +fdM cvA +ehJ bWV -cwj -cww -bWV -fIT -fIT -cxg +cfN +cfN +aaa +aaa +aaa aaa aaa aaa @@ -76386,23 +76804,7 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +xGc rmC rmC rmC @@ -76438,10 +76840,26 @@ aaa aaa aaa aaa -azH aaa aaa aaa +aiu +cAJ +hlw +mLB +qLb +azN +siA +azN +wdU +guy +aiu +aht +yin +xcw +yin +aaa +aaa aaa aaa aaa @@ -76533,16 +76951,16 @@ chc cuZ chX bWV -ciz +bWV cvr ceP -cvR -bXJ -bXJ -crj +bWV +bWV +bWV +bWV cwO -fIT -cxh +bIT +aaa aaa aaa aaa @@ -76663,22 +77081,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -76695,10 +77097,26 @@ aaa aaa aaa aaa -azH aaa aaa aaa +aiu +aiu +hzd +aiu +aiu +aiu +aiu +tXP +aiu +aiu +aiu +xLL +yin +oGX +yin +aaa +aaa aaa aaa aaa @@ -76790,17 +77208,17 @@ chd chE chY bWV -ciz -cvs +bWV +cgf cvB -cvS -cdw +bWV +rNF cjj -bXJ -bXJ +bWV fIT fIT -cxg +iUy +aaa aaa aaa rmC @@ -76920,22 +77338,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -76952,10 +77354,26 @@ aaa aaa aaa aaa -azH aaa aaa aaa +aht +aiu +hKX +aiu +rrb +uAA +dZa +gtX +nso +aiu +tYu +xLL +ugu +oGX +yin +aaa +aaa aaa aaa aaa @@ -77049,13 +77467,13 @@ chZ bWV ciz ckb -cku +ceP cvT -bZo -cwx -cwE +bXJ +bXJ +crj ckv -ckM +fIT clb aaa aaa @@ -77177,22 +77595,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -77206,12 +77608,28 @@ aaa aaa aaa aaa -aaa -aaa -aaa -azH -aaa -aaa +ait +ait +ait +aiu +aiu +aht +aht +aiu +iEX +azN +azN +azN +dZa +kZk +qGW +aiu +tPu +xLL +yin +prB +yin +xLL aaa aaa aaa @@ -77305,16 +77723,16 @@ bWV bWV bWV ciz -ckb +qpR cku -cvT -cwk +xIV +cdw cwy -cwF -ckw -ckN -clb -aaa +bXJ +bXJ +fIT +fIT +iUy aaa aaa aaa @@ -77434,39 +77852,11 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa -aby -aed -aby -aht -aby -aby -aby -aht -aby -aby -aby aaa aaa -azH aaa aaa aaa @@ -77475,6 +77865,34 @@ aaa aaa aaa aaa +ait +ayz +azP +bZo +aiu +ait +ait +aiu +iLR +nso +sqt +uQR +dVP +jRI +kZk +aiu +gRo +xLL +hMg +uyI +cVq +xLL +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -77562,16 +77980,16 @@ crj ciN bWV ciz -ckc +cvt cvC cvV ceQ -ciA -bXJ -bXJ -fIT -fIT -cxg +xxl +mIO +vil +jnR +cxk +aaa aaa aaa aaa @@ -77685,45 +78103,16 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -aaa -aaa -aaa -aht aaa aaa aaa aaa -aht aaa aaa aaa aaa -aht aaa aaa -azH aaa aaa aaa @@ -77733,6 +78122,35 @@ aaa aaa aaa aaa +ait +ayA +azQ +azN +ckN +azN +azN +cAT +jsf +aiu +nso +aiu +aiu +aiu +dZa +aiu +eXX +xLL +ofi +rpY +vjD +xLL +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -77820,13 +78238,13 @@ cvd bWV ciz cvt -ceP -crk -bXJ -bXJ +cvC +cvV +fZq +gur cwG -cwO -fIT +qiG +oQY cxk aaa aaa @@ -77942,47 +78360,47 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa aiu -ait -ait -ait -aiu +ayB +azN +caS aiu ait ait -ait aiu -aiu -aht -aaa -azH -aaa -aaa +iPH +nKo +nKo +nKo +kpi +cHm +cHm +jst +sMA +xLL +mDs +kqF +uAE +xLL aaa aaa aaa @@ -78074,18 +78492,18 @@ cbK ceP cdC ciO -cfm -cfm -chF -cjl -cfm -cwl -cwz bWV +ciz +tSt +cjl +sIO +cwl +ciA +bXJ +bXJ fIT fIT -cxg -aaa +iUy aaa aaa aaa @@ -78199,48 +78617,48 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa -aiu -fIN -wwG -gGy -wYu -uQR -uaE -pdq -ajD -dci -aiu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +adR +adR +adR aht -aaa -azH -aaa +ait +ayC +azR +ciJ +aiu aaa aaa +aiu +aCg +aiu +aiu +aiu +uaE +aiu +aiu +aiu +oKX +xLL +xLL +skq +xLL +xLL +aiu aaa aaa aaa @@ -78331,17 +78749,17 @@ cuK ceP bXJ cve -cfm -bXJ +bWV +ciz ckd ceP -cfm -bWV -bWV -bWV -cwR -cwR -aaa +crk +bXJ +bXJ +ccg +ckv +fIT +wkC aaa aaa aaa @@ -78456,56 +78874,56 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa -aiu -oFf -ycr -wDm -wYu -ajD -ajD -ajD -ajD -mwg -aiu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aht -aaa -azH +aht +aht +aht +aiu +aiu +aiu +aiu +aiu +aiu +aiu +aiu +aCg +aiu +aqg +uXp +vgF +cHS +rif +aiu +aBa +aiu +srK +jsf +evQ +xEy +aiu +aiu +aiu aaa aaa aaa aaa aaa aaa -cFB -aaa -aaa -aaa -aaa aaa aaa aaa @@ -78589,19 +79007,19 @@ cuU cfm cfm cfm -cjH -czV -ceP -cwc +cfm +chF +bjO +cfm xhj cky -cwK -odM -odM -odM -odM -odM -odM +bWV +fIT +fIT +iUy +aaa +aaa +aaa aaa aaa aaa @@ -78713,12 +79131,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -78734,29 +79146,35 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aiu +agI +agI +amz +anT +agI +agI +azS +ciK +cle +cvR +cwE lcU sGr -hiw -wYu -ajD -jsf -ajD -rLi -tlc aiu -aht -axB +wYu +vxV +jsf +oTF +rLi +aiu +wnp +nKo +ujI rKr -axB -aaa -aaa -aaa -aaa +nKo +nKo +tBh +dLN +aiu aaa aaa aaa @@ -78846,20 +79264,20 @@ cuV ciD cfD chf -cfD +qgb cvu cvE -cwc -ckf -uAA -cle -ckS -cxB -xkB -cxB -vxV -odM -odM +cfm +bWV +bWV +bWV +cwR +cwR +aaa +aaa +aaa +aaa +aaa aaa aaa cfN @@ -78956,12 +79374,6 @@ rmC rmC rmC rmC -xGc -rmC -rmC -rmC -rmC -rmC rmC rmC rmC @@ -78985,35 +79397,41 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiu -aiu +adR +aht +agI +agM +agM +agM +agI +alZ +amK +anU +arv +agI +azY +cjf +clk +cvS +cwF +cTI kJw aiu -aiu -aiu -aiu +sOC +vCC +gmm cHS +uKR aiu +xNW aiu -aiu -axC -axB +wYu azN -axB -aaa -aaa -aaa -aaa +evQ +dVP +qGu +azN +aiu aaa aaa aaa @@ -79106,17 +79524,17 @@ cfE cfE cfo cvF -cwc +cfm cwm ckj -cwH -ckS -tVY -iYQ -cxB -cxB -wWJ -odM +uIh +uIh +uIh +aaa +aaa +aaa +aaa +aaa aaa aaa cfN @@ -79227,22 +79645,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -79252,25 +79654,41 @@ aaa aaa aaa aaa +adR aht -aiu +agI +agW +ahp +akb +akX +ama +ane +anV +aso +agI +azY +cjg +cnN +cwc +cwM +dci gwn aiu -apz -aqe -aoK -dcL -apB aiu -tpb -axC -ayz +aiu +ait +ait +aiu +aiu +aiu +aiu +ait +ait +aiu +aiu +qGu azN -axB -aaa -aaa -aaa -aaa +aiu aaa aaa aaa @@ -79362,18 +79780,18 @@ cgG cgG bWV cfn -cAS -cwc -cwn -ckj -cwH -ckS -mck -iEX -cxB -cxB -dVp -odM +ciR +cfm +eNc +vrQ +sNS +roU +uIh +iye +aht +aht +aht +aht aht aht cfN @@ -79484,12 +79902,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -79499,32 +79911,26 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -ait -ait -ait -aiu -aiu -aht +adR aht +agI +agZ +ahr +akc +akZ +amq +anf +anW +asH +agI +ajD +ajD +ajD +ajD +ajD +dcL aiu -wRI -ajD -ajD -ajD -aoK -aBa -xyB aiu -aAa -axC -axB -hzd -axB -axC aaa aaa aaa @@ -79536,6 +79942,18 @@ aaa aaa aaa aaa +aiu +qGu +nso +aiu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -79619,18 +80037,18 @@ ciT cvh cgG cfn -cAT -pXc +ciR +cfm cwo -ckh -ckA +cxB mKP -hpF -sqt -cTI -qLb -kJN -odM +mKP +uIh +cfN +cfN +aaa +aaa +aaa aaa cfN cfN @@ -79741,12 +80159,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -79756,32 +80168,26 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -ait +adR +aht +agI +aha +ahQ +akd +alI +amr +ang +aoJ +atx aiV -ajB +ajD akr -aiu -ait -ait -aiu +cnP +cwj +cxg +dET lMU -apB -woq -lXc -nPA -egK -aBa aiu -azZ -axC -ayA -azP -aAW -axC aaa aaa aaa @@ -79793,6 +80199,18 @@ aaa aaa aaa aaa +aiu +qGu +gYI +aiu +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -79877,17 +80295,17 @@ cid cgG cfn cvH -cwc -cwp +cfm +eNc cxB ckB -ulQ -hrk -caS -osW -kAX -nso -odM +eNc +uIh +cfN +cfN +cfN +aaa +aaa aaa cfN cfN @@ -79998,12 +80416,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC -rmC -rmC -rmC aaa aaa aaa @@ -80013,38 +80425,44 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -ait +adR +aht +agI +agI +ais +agI +agI +ams +anh +aoK +atI aiW ajC -ajD +cjk ali -ajD -ajD +cwk +cxh anq -aoe +hOx aiu -apB +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aiu +qGu aiu aiu +ait +ait aiu -aoK -aiu -azY -axC -ayB -azQ -aAX -axC -aaa -aaa -aaa -aaa -aaa -aaa aaa aaa aaa @@ -80132,19 +80550,19 @@ chG ciT cjo bWV -cvw +czW cvI ckQ clf wyf ehR cwS -rpx -uXp -lUz -mEe -dET -odM +uIh +cfN +cfN +cfN +aaa +aaa aaa aaa aaa @@ -80259,43 +80677,31 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aiu +aed +adR +abI +abI +abI +abI +abI +agK +ahl +ajb +ake +alJ +amt +ani +aoL +aus aiX ajD aks -aiu -ait -ait -aiu +cnQ +cwn +cxL +dHg hOx -aDm -aDm -aDm -aoL -aso -aso -rrb -oPx -axC -ayC -azR -aAY -axC +aiu aaa aaa aaa @@ -80307,6 +80713,18 @@ aaa aaa aaa aaa +aiu +qGu +nso +aiu +kZk +cFr +ait +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -80391,17 +80809,17 @@ cvi cgG cfn cAS -cwc +cfm cjO cwH -cwH -ckS -keD -mck -cxB -cxB -pJy -odM +kMf +cwS +uIh +cfN +cfN +cfN +aaa +aaa aaa aaa aaa @@ -80515,50 +80933,50 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa adR -adR -adR -aht -ait -aiY +aaa +aem +aem +aem +aem +aem +aem ajE -akt +ajE +ajE +ajE +ajE +ajE +anj +apz +ajE +ajE +ajE +rjF +cqS +rjF +rjF +rjF +iYQ aiu aaa aaa -aiu -aCg -aiu -aiu -aiu -wRz -aiu -aiu -aiu +aaa +aaa +aaa +aaa syn -axC -axC -azS -axC -axC -aiu -aiu +aaa +aaa +aaa +aaa aiu +rMb +vcv +nKo +mrk +kPt ait -ait -aiu aaa aaa aaa @@ -80648,17 +81066,17 @@ cid cgG cfn ciR -cwc -cwm -cwH -cwH -ckS +cfm +uFA +tPj +fPy +cwS uIh -lXv -cxB -lAL -hlw -odM +iye +iye +iye +aht +aht aht aht aht @@ -80772,6 +81190,32 @@ rmC aaa aaa aaa +adR +aaa +aem +aep +aeF +afp +afF +agy +agL +ahm +agy +agy +agy +agy +ahv +aqe +aiz +ayM +ajM +cjC +ctS +cwp +cyy +dVp +jgr +aiu aaa aaa aaa @@ -80783,36 +81227,10 @@ aaa aaa aaa aaa -aaa -aht -aht -aht -aht -aiu -aiu -aiu -aiu -aiu -aiu -aiu -aiu -aCg -aiu -aqg -gjN -arc -atp -aus -aiu -wxb -aiu -xuv -aoe -bGG -hKX -aiu -apB aiu +wFB +jsf +cAT aBa oTC ait @@ -80905,17 +81323,17 @@ cvj bWV cfn cvJ -cwc +cfm cjP -cxB -ckD -ckS -cxB -clk -cxB -gJV -cxB -odM +eNc +eNc +eNc +uIh +cfN +cfN +aaa +aaa +aaa aaa aaa aaa @@ -81029,53 +81447,53 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -afU -afU +adR +abI +aen +aeq +aeG +szG +szG +agc +szG +szG +agy +akT +alK +sJp pfz uqJ -afU -afU -ajF +aut +ayM +ajM aku alj alT skw -anr -aof -aiu -aqh +rjF +rjF +rjF +lqc +lqc +wPk +lqc +bBW lqc -aoe -atq -aut -aiu giO -aDm -ujI +lqc +ajM fAx -aDm -aDm -aDm -aDm -aDm -mLB -wUz -ait -aht -aht -aht +fAx +aiu +tCN +jsf +wFB +qGu +aiu +aiu +aaa +aaa +aaa aHA dqG aHA @@ -81162,17 +81580,17 @@ cjq cgG cfn ciR -cwc -xhj -cxB +cfm +jVB +eNc cwK odM -odM -odM -odM -odM -odM -odM +uIh +iye +iye +aht +aht +aht aht aht aht @@ -81286,53 +81704,53 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa adR -aht -afU +aaa +aem +aer +aeH +szG +afG +agd agi agi -agi -afU +ajr +akU +aiy hwj ahu ahS oXe -afU -ajG +ayM +ajM akv alk alU amH -ans +ajM ePU -aiu +nUc aqi -ard +lqc asr -atp -auu -aiu +lqc +bBW +ajM ekU -aiu -aqh -ajD +lAn +dCo +nwp bGG nPA mtu aCc aiu -wxb +qGu wig -ait -aaa -aaa -aaa +aiu +aht +aht +aht aHA wqu aHA @@ -81420,8 +81838,8 @@ cgG czW ceJ cwe -jFO -jFO +cwe +cwe cwe cwe cwe @@ -81543,43 +81961,43 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa adR -aht -afU +abI +aen +aes +aeU szG -sOC +afH +agv +szG +szG +agy iCV msX -dVI +agy ahv -ahT +ahU aiv -afU -ajG +agy +ajM akw all alV tfZ -vCC +ajM lHc -aiu -aiu -aiu -ait -ait -aiu -aiu -aiu -aiu -ait -ait -aiu +osW +tlc +ajM +rUj +ajM +ajM +rjF +rjF +rjF +ajM +xBh +bPm aiu aiu aiu @@ -81800,43 +82218,43 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa adR -aht -afU +aaa +aem +aet +aeV +afq +aga +agx +lem lem -mzl sJp -qMi +sJp +sJp iPU ahw ahU aiw -afU -ajH -ajH -ajH -ajH +ayO ajH +cjH +cvs +cww +cyz ant -aiu -aiu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +jvi +jvi +cjH +jvi +ito +lAj +ezx +eyu +puy +xMk +tFp +kKB +kFd aiu aCd hHr @@ -82057,17 +82475,17 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa adR -aht -afU +abI +aen +aeu +aeW +afr +afG +agz +szG agj -agv +agy agF agT ahj @@ -82075,25 +82493,25 @@ ahx ahV aix aiZ -ajH +azZ akx -alm +avv alW amI anu -aog -aiu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +wxJ +wxJ +tnP +vOw +wxJ +dnG +vQx +wxJ +opr +awI +axL +bZV +bPm aiu nyO ezJ @@ -82314,19 +82732,19 @@ rmC aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa adR -aht -afU -afU +aaa +aem +aeD +aeX +afC +aeW +agA +aeW +aeW agw -afU -afU +akV +alL ahk ahy ahW @@ -82339,18 +82757,18 @@ alX amJ anv aoh -aiu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ovB +aoh +woq +ari +lXd +mdS +nxf +sDV +xRD +axL +bZV +bPm aiu awE qGu @@ -82445,7 +82863,7 @@ cfm ciF cuQ cfm -chF +xNL jSa cwe xNx @@ -82571,43 +82989,43 @@ rmC aaa aaa aaa -aaa -aed adR abI -abI -abI -abI -abI -afX +aem +agy +agy +afD +szG +agB +szG agl -agx +agy agH -agV -ahl +msX +agy ahz ahX aiz -ajb -ajH +agy +ajM akz alo -alY -amK +amg +amg anw -aoh -aiu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +amg +oFf +amg +wwG +avv +mqS +ajM +ajM +ajM +rjF +jHl +bZV +bPm aiu aiu kFx @@ -82675,7 +83093,7 @@ aby abI bSn uZb -cqS +bNs bNs bQe bOw @@ -82703,7 +83121,7 @@ chq ciX cfm cAi -jgr +eNc cjm cwe gqi @@ -82831,40 +83249,40 @@ aaa adR aaa aem -aem -aem -aem -aem -aem -aiA -aiA -aiA -aiA -aiA +aeE +afo +afE +agb +agy aiA +aho +agy +agy +agy +agy ahA ahY -aiA -aiA -aiA +auu +agy +aAa akA alp -akA -akA -akA +amg +cyP +dVI aoi -aiu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +oPx +apG +wxb +wxJ +wIa +ceD +eyu +pmC +xMk +axL +bZV +tMI ebD sbY fuP @@ -83090,38 +83508,38 @@ aaa aem aeo aeC -aeT +afn afn agy afZ agn -agy -agy -agy +ajs +akW +alM agy ahB ahZ aiB -ajc -ajM +agy +aAV akB alq -alZ +amg amL anx -aoj -aiu -aaa -aaa -aaa -aaa -aaa -aaa +aoo +pdq +apG +wDm +wxJ +mlt +xNn +aux avp -aaa -aaa -aaa -aaa +awI +axL +mGa +pFy ebD aCe gPV @@ -83217,7 +83635,7 @@ chs ciY cfm cAi -jgr +eNc cjm cwe rRv @@ -83342,43 +83760,43 @@ rmC aaa aaa aaa -adR +aaa abI -aen -aep -aeD -aeU -aeU -afC -aeU -aeU -agy -agI -agW -agA -ahC -aia -aiC -ajc -ajM -akC -alr -ama +aem +aem +aem +aem +aem +aem +aem +aem +aem +aem +aem +aem +alx +alx +alx +alx +alx +alx +alx +amg amM -akA -akA -akA -apE +dYe +aoo +peE apE +wRz ari -apE -bBW -apE +nDP +atw +nxf avq -apE -ajM -bZV +xRD +axL bZV +uMf gSH xJy sJr @@ -83474,7 +83892,7 @@ cht cfm cfm cAi -jgr +eNc cfN cwe cwe @@ -83599,43 +84017,43 @@ rmC aaa aaa aaa -adR aaa -aem -aeq -aeE -tVZ -afo -afD -aga -aga -agz -dHg -aiH -ahm -ahD +aaa +aed +adR +abI +aaa +aaa +aaa +aaa +aaa +aaa +aby +abI +abI +alx aib aiD -ajc -ajM +azG +aAW akD als amb amN -ajM +egK aok aoO apF -apE +wRI wxJ -apE -bBW +kSC ajM -avr -awH -axE -ayE -aAb +ajM +ajM +rjF +axL +bZV +pFy ebD jjC eEp @@ -83856,41 +84274,41 @@ rmC aaa aaa aaa -adR +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aby abI -aen -aer -aeF -aeU -afp -afE -aeU -aeU -agy -agK -agY -agy -ahB +abI +alx aic -aiE -agy -ajM +aiF +aiF +aAX akE alt amc -amO -ajM -aol +aok +eSB +aoo aoP apG -ajM +wUz arj -ajM -ajM -akA -akA -akA -ajM +rtg +ceD +eyu +vnI +xMk +axL ayF aAc xLC @@ -83988,7 +84406,7 @@ cfm cfm cfm cAj -jgr +eNc cfN cfN cfN @@ -84113,43 +84531,43 @@ rmC aaa aaa aaa -adR aaa -aem -aes -aeG -aeV -afq -afF -agb -agb -agA -agA -agA +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aby +abI ahn -ahF -aic +alx +aqB aiF ajd ajJ akF alu amd -amP +aoo any aom -aom -akF -aom +pia +tpb +wWJ ark asu atv aux avs awI -axF -ayL -aAd +axL +gLv +pFy ebD aCf hnu @@ -84241,7 +84659,7 @@ cjm cjm cjm cxX -cyA +czl czl czC cAj @@ -84370,21 +84788,21 @@ rmC aaa aaa aaa -adR +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aby abI -aen -aet -aeH -peE -afo -afG -aeU -eSB -agy -agL -agZ -aho -ahG +abI +alx aid aiG aje @@ -84395,16 +84813,16 @@ ame amQ anz aon -aon +pJy apH aqm -aon +kau asv atw -aon +nxf avt awJ -axG +pRz ayG pFy aiu @@ -84497,12 +84915,12 @@ aht cjm cvK cjm -cxY +cyl cyL czp czH -cAr -nKo +cAj +eNc cfN cfN cfN @@ -84624,24 +85042,24 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa -adR aaa -aem -aeu -tnP -dYe -aeH -afH -aeH -aeH -agB -agM -aha -ahp -ahH +aaa +aaa +aaa +aaa +aaa +aby +abI +abI +alx aie aiH ajf @@ -84653,21 +85071,21 @@ amR anA aoo ana -aoo +amg aqn arl asw -atx -auz -avu +ajM +ajM +ajM rjF -axG +xxK ayH aAe aBc aCh -eQZ -eQZ +kZF +kZF aFk aFU eQZ @@ -84755,7 +85173,7 @@ cjm cwg cjm cyl -cyM +czr czr czP cAj @@ -84881,43 +85299,43 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC +aaa +aaa aaa aaa aaa -adR -abI -aem -agy -agy -lGp -aeU afI -aeU +abI jXF -agy -agN -agY -agy -ahI -aif -aiB -agy -ajM -akI +jXF +cnJ +cnJ +jXF +alx +alx +alx +alx +alx +alx alx amg amg anB -amg +jFO aoQ amg aqo -alv +kau asx -ajM -ajM -ajM -akA +seG +hBa +hGp +nJG axH ayI aAf @@ -85013,8 +85431,8 @@ cxe cjm cym xYV -bNE -czP +eNc +eNc qWo lxI xVt @@ -85138,46 +85556,46 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa -adR aaa -aem -aeW -ovB -utg -afr -agy -agc -ago -agy -agy -agy -agy +aaa +aby +aaa +jXF +ajF +sdk +sdk +amu ahJ aig aiJ -agy +azI ajN akJ aly -amg +cwx amS anC aop aoR -apJ +jXF apN -aon +arl aty atz -aux avv -awI -axG +avv +xgz +gZF ayL -aAi +pFy aBd aCi aDo @@ -85265,13 +85683,13 @@ xgh xgh xgh cjm -cjm +jtB cxz cjm -cyy -cyP +cjm +cjm czt -czP +cjm cjm eNc cjm @@ -85395,46 +85813,46 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa -adR aaa -aem -aeX -iLR -iPH -iPH -agy -agd -agp -agC -agO -ahb -agy +aaa +aby +aaa +cnJ +ahL +sdk +sdk +amv ahK -aih +jXF aiK -agy -ajO -akK -alz -amg -amT -anD -amX +ajQ +ajQ +ami +juw +ami +anE +anE +kAX aoS -apJ +jXF aqq -aon +aIz atB atA -auA avw -awJ -axG -ayL -aAi +avw +isH +cFH +xDw +uMf aBd aCj aDp @@ -85524,12 +85942,12 @@ aht cjm cqW cxD -cjm -cyz -cyY -czB -cjm -cjm +vco +vco +vco +vco +vco +mUU eNc tyL cjm @@ -85652,44 +86070,44 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa -abI -aem -aem -aem -aem -aem -aem -aem -aem -aem -aem -aem -aem +aaa +aby +aaa +cnJ ahL +sdk +alN +sdk ahL -ahL -ahL -ahL -ahL -ahL -amg +jXF +auI +ajg +ajQ +cjZ +cvw +cwz amU anE -amX +kAX aoT -apK +cnJ aqr arl awK -atD +ajM auz avx rjF -axG +lTx ayJ aAg aBe @@ -85779,14 +86197,14 @@ aaa aaa aaa cjm -ctS -cxD cjm cjm cjm cjm cjm -eNc +cjm +cjm +cAD eNc ukn cjm @@ -85909,45 +86327,45 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa -aaa -aed -adR -abI -aaa -aaa -aaa -aaa -aaa -aaa +cFB aby -abI -abI +aaa +cnJ ahL -aii +sdk +sdk +sdk +ahL +jXF aiL ajg -ajP -akL +ajQ +anE cBi -amh +amV amV anF -amW +kJN aoU apL aqs -aon +gNq asz ajM -ajM -ajM -akA +quY +uFZ +nDM axI -ayL +axG aAh aBf aCl @@ -86035,14 +86453,14 @@ aaa aaa aaa aaa -cjm -cjm -cxL -vco -vco -vco -vco -vco +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa cAD cjm cjm @@ -86166,15 +86584,11 @@ rmC rmC rmC rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +rmC +rmC +rmC +rmC +rmC aaa aaa aaa @@ -86182,30 +86596,34 @@ aaa aaa aby abI -abI +jXF +ajG +sdk +alN +sdk ahL -aij -aiM +jXF aiM +azJ ajQ -akM +ami juw ami -amW -anG -amX +anE +juw +lAL aoV -apJ +cnJ aqt arm rdB -atz -aux +jmt +hCn avy -awI +pEZ +axL axG -ayL -aAi +pFy aBe aCm aCk @@ -86293,20 +86711,20 @@ aaa aaa aaa aaa -cjm -cjm -cjm -cjm -cjm -cjm -cjm +aaa +aaa +aaa +aaa +aaa +aaa +aaa cAH -cjm -aht -aht +lac tRZ -aht -mau +quc +tRZ +quc +iyP aaa aaa aaa @@ -86423,26 +86841,26 @@ rmC rmC rmC rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa aby -abI -sdk +aaa +cnJ ahL -aik -aiM +sdk +sdk +sdk +ank +jXF +avr ajh ajR akN @@ -86452,17 +86870,17 @@ amX anH aoq aoW -apM +jXF aqu arn asA atC -auA +lhq avz -awJ +jiC +axL axG -ayL -aAi +pFy aBd aCn aDt @@ -86557,13 +86975,13 @@ aaa aaa aaa aaa -cAJ -pia -vOw -pia -vOw -pia -nUc +aaa +aaa +mZE +aaa +mZE +aaa +mZE aaa aaa aaa @@ -86680,24 +87098,24 @@ rmC rmC rmC rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa aby -abI -abI -ahL +aaa +cnJ +aka +sdk +sdk +amw +ans ail aiN aji @@ -86709,17 +87127,17 @@ amY anI aor aoX -apI -apO +awO +awO aro jen -atD -auz -avA -rjF +awO +awO +awO +awO +jHl axG -ayL -aAi +pFy aBd aCo aCk @@ -86937,25 +87355,25 @@ rmC rmC rmC rmC -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa aby -abI -abI -ahL -aim +aaa +cnJ +agP +sdk +alY +amx +anN +jXF aiO ajj ajT @@ -86964,19 +87382,19 @@ alA aml amZ anJ -amX +lGp aoY -amg +awO sBA arp asB -ajM -ajM -ajM -akA +qpE +lsz +ngq +awO axJ -ayL -aAi +axG +pFy aBd aBd aBd @@ -87180,6 +87598,7 @@ rmC rmC rmC rmC +xGc rmC rmC rmC @@ -87198,41 +87617,40 @@ rmC rmC rmC rmC -rmC -aaa aaa aaa aaa aaa aaa aby -abI +aaa +jXF agP -agQ -agQ -agP -ahL -ahL -ahL -ahL -ahL -ahL -ahL -amg -amg +sdk +sdk +amy +anO +jXF +amn +azL +aAY +amZ +jXF +jXF +cyY anK -aos +aow aoZ -amg +awO aqv -aro +pCF jxK atE auB avB awL -axK -ayM +axL +axG aAj aBg aCp @@ -87461,34 +87879,34 @@ aaa aaa aaa aaa -aaa aby -aaa -agP +abI +jXF cnJ -ahq -ahq -ahM -ain -aiP +cnJ +cnJ +jXF +jXF +jXF +ajU ajk ajU akQ -alB +cnV amm anb anL -aot +aow apa -agP +awO aqw -arp +jYO tTZ atF -alv -alv +kRH +jTx awM -axG +axL ayN aAk axG @@ -87719,34 +88137,34 @@ aaa aaa aaa aaa -aby aaa -agQ -ahd -ahq -ahq +aaa +abI +abI +abI +cnV ahN aio -agP +avu ajl ajV -ajV -alC +cka +cnV amn -alC -alE -aou +czB +fIN +aow apb -agP +awO aqx -arq +auC asD atG auC -auC -awN +jfY +awO axL -ayO +axG aAl aBh aBh @@ -87976,33 +88394,33 @@ aaa aaa aaa aaa -aby aaa -agQ -ahd -ahq -cnT -ahq -ahd -agP +aaa +aaa +aaa +aht +cnV +anP +aiq +ajY ajm ajW -ajV -alD +ckf +cnV amo anc anM -aou -apb -agQ +aow +apa +awO aqp -arp +mAU asE -ajM +xNO auD avC -akA -axJ +awO +jHl axG aAm aBi @@ -88227,39 +88645,39 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa -cFB -aby -aaa -agQ -ahd -ahq -ahq -ahq -ahd -agP +aht +cnV +anQ +arc +avH ajn -ajW -ajV -alE +bNE +ckw +cnV amp and -and -aov +gjN +aow apc -apP -aqy -arr -asC -ajM -auE -avD awO -axG +awQ +awQ +asC +vOQ +awQ +awQ +awO +axJ axG aAm aBi @@ -88484,39 +88902,39 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa -aaa -aby -abI -agP -cnN -ahq -cnT -ahq -ahd -agP +aht +cnV +anR +aiq +axC ajo ajX -ajV -alC -amn -alC -alE +ckD +cnV aow -apd -agQ -aqz +aow +aow +aow +apj +awO +art ars asy atH auF avE -awP -axG +awQ +axL ayP aAn aBi @@ -88741,41 +89159,41 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa -aaa -aby -aaa -agQ -ahd -ahq -ahq -ahq -aip -agP +aht +cnV +anS +aiq +ajY ajp ajY -ajV -alF -amq -ane -anN -aox -ape -agP +ckM +cnV +aaa +aaa +aqF +aoy +apj +awO aqA art asF -ajM +ete auG avF awQ -axG +axL ayQ -axG +rRj aBi aCt aDy @@ -88998,38 +89416,38 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa -aaa -aby -aaa -agQ -cnP -ahq -ahq +aht +cnV ahO aiq aiQ ajq ajZ akR -alG -amr -anf -anO +cnV +aaa +aaa +aqF aoy apf -ajM -ajM +awO +xkB aru asG -ajM -auH -avG -awR +gBu +onE +tTZ +kjp axM ayR aAo @@ -89255,37 +89673,37 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa -aaa -aby -aaa -agQ -cnQ -ahq +aht +cnV cnV -ahP air -agP -agP -agP +ayy +ayy +ayy cCS -alH -ams -alH -anP -agP -apg -ajM -aqB -arv -asH -atI -auI -avH +cnV +aaa +aaa +aqF +aoy +apj +aqF +aqF +aqF +aqF +aqF +awR +aCD awR awR awR @@ -89512,35 +89930,35 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa aaa aaa aaa -aby +cnV +aht +abI +abI +abI +abI +abI +cnV aaa -agP -cnQ -ahq -ahq -ahQ -ais -agP -ajr -aiR -akT -aiR -amt -aiR -anQ -aiR -aph -ajM +aaa +aqF +lUz +apj +aoz aqC arw asI -aqC +nQy auH avI auH @@ -89750,7 +90168,16 @@ rmC rmC rmC rmC -xGc +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC rmC rmC rmC @@ -89775,29 +90202,20 @@ aaa aaa aaa aaa -aby -abI -agP -agQ -agQ -agQ -agP -agP -agP -ajs -aiR -akU -alI -amu -ang -anR -aiR -aph -ajM +aaa +aaa +aaa +aaa +aaa +aaa +aqF +lUz +apj +aoz aqD arx -asJ -aqC +asK +qXE auH avJ awS @@ -90026,6 +90444,15 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +xGc +rmC aaa aaa aaa @@ -90035,26 +90462,17 @@ aaa aaa aaa aaa -abI -abI -abI -abI -abI -abI -ajs -aka -akV -alJ -amv -anh -anS -aiR -api -ajM -aqC -ary +aaa +aaa +aaa +aqF +lXc +apj +aoz +xuv asK -aqC +asK +wPp auH avK auH @@ -90283,6 +90701,15 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa @@ -90295,20 +90722,11 @@ aaa aaa aaa aaa -aaa -aaa -abI -ajs -akb -akW -alK -amw -ani -jvi -aiR -aph -ajM -aqC +aqF +lUz +apj +aoz +xyB arz asL atJ @@ -90540,6 +90958,15 @@ rmC rmC rmC rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC +rmC aaa aaa aaa @@ -90551,25 +90978,16 @@ aaa aaa aaa aaa -cFB aaa -aaa -abI -ajs -akc -akX -alL -amx -anj -anU -aiR +aqF +lXv apj -ajM -ajM -ajM -ajM -ajM -ajM +aoz +aoz +oCG +aoz +aoz +aoz avL auH auH @@ -90803,6 +91221,9 @@ rmC rmC rmC rmC +rmC +rmC +rmC aaa aaa aaa @@ -90811,15 +91232,12 @@ aaa aaa aaa aaa -abI -ajs -akd -akX -alJ -amy -alJ -anV -aiR +aaa +aaa +aaa +aaa +aqF +aqF apk apQ aqE @@ -91060,6 +91478,9 @@ rmC rmC rmC rmC +rmC +rmC +rmC aaa aaa aaa @@ -91068,15 +91489,12 @@ aaa aaa aaa aaa -abI -ajs -ake -akX -alM -amz -ank -anT -ajs +aaa +aaa +aaa +aaa +aaa +aqF apl aoz aqF @@ -91317,6 +91735,9 @@ rmC rmC rmC rmC +rmC +rmC +rmC aaa aaa aaa @@ -91325,15 +91746,12 @@ aaa aaa aaa aaa -aiR -ajs -ajs -akZ -alN -alN -alN -anW -ajs +aaa +aaa +aaa +aaa +aaa +apR apm apR aqG @@ -91577,19 +91995,19 @@ rmC rmC rmC rmC -rmC -rmC -rmC aaa aaa aaa aaa -aiR -abI -abI -abI -abI -abI +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa +aaa aoz apn aoz @@ -91834,9 +92252,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC aaa aaa aaa @@ -91847,9 +92262,12 @@ aaa aaa aaa aaa -aoz -ahr -aoz +aaa +aaa +aaa +cdm +cdm +cdm aqG arD asO @@ -92091,9 +92509,6 @@ rmC rmC rmC rmC -rmC -rmC -rmC aaa aaa aaa @@ -92105,8 +92520,11 @@ aaa aaa aaa aaa +aaa +aaa +aht cdm -cdm +aht aqG arE arA @@ -92346,9 +92764,6 @@ rmC rmC rmC rmC -xGc -rmC -rmC rmC rmC aaa @@ -92362,6 +92777,9 @@ aaa aaa aaa aaa +aaa +aaa +aht aht apS ala @@ -92605,9 +93023,9 @@ rmC rmC rmC rmC -rmC -rmC -rmC +aaa +aaa +aaa aaa aaa aaa @@ -92858,13 +93276,13 @@ aaa aaa aaa aaa -rmC -rmC -rmC -rmC -rmC -rmC -rmC +aaa +aaa +aaa +aaa +aaa +aaa +aaa aaa aaa aaa @@ -104748,7 +105166,7 @@ bjx bjw blV bnb -bqs +qIr bqs bqt brL diff --git a/_maps/map_files/PubbyStation/job_changes.dm b/_maps/map_files/PubbyStation/job_changes.dm new file mode 100644 index 0000000000..dfef9491ed --- /dev/null +++ b/_maps/map_files/PubbyStation/job_changes.dm @@ -0,0 +1,25 @@ +#define JOB_MODIFICATION_MAP_NAME "PubbyStation" + +/datum/job/hos/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CREMATORIUM + minimal_access += ACCESS_CREMATORIUM + +/datum/job/warden/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CREMATORIUM + minimal_access += ACCESS_CREMATORIUM + +/datum/job/officer/New() + ..() + MAP_JOB_CHECK + access += ACCESS_CREMATORIUM + minimal_access += ACCESS_CREMATORIUM + +/datum/job/prisoner/New() + ..() + MAP_JOB_CHECK + total_positions = 0 + spawn_positions = 2 diff --git a/_maps/shuttles/emergency_nature.dmm b/_maps/shuttles/emergency_nature.dmm index 51a14594fb..a7fcc12f1a 100644 --- a/_maps/shuttles/emergency_nature.dmm +++ b/_maps/shuttles/emergency_nature.dmm @@ -145,12 +145,9 @@ /turf/open/floor/plating, /area/shuttle/escape) "eS" = ( -/obj/effect/turf_decal/trimline/red/filled/end{ - dir = 1 - }, /obj/structure/table/reinforced, /obj/machinery/recharger, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "eY" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -240,9 +237,6 @@ /turf/open/floor/grass, /area/shuttle/escape) "ht" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, /obj/structure/chair/comfy/shuttle, /obj/machinery/light{ dir = 8 @@ -250,19 +244,7 @@ /obj/structure/reagent_dispensers/peppertank{ pixel_y = 28 }, -/turf/open/floor/plasteel/dark, -/area/shuttle/escape) -"hC" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/structure/chair/comfy/shuttle{ - dir = 8 - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "hJ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -287,10 +269,10 @@ /turf/open/floor/grass, /area/shuttle/escape) "it" = ( -/mob/living/carbon/monkey, /obj/structure/flora/grass/jungle/b{ icon_state = "bushb3" }, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/shuttle/escape) "iD" = ( @@ -333,21 +315,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/shuttle/escape) -"jX" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 - }, -/obj/structure/chair/comfy/shuttle{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/escape) -"jZ" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ - dir = 1 - }, -/turf/open/floor/plasteel/dark, -/area/shuttle/escape) "ke" = ( /obj/item/shovel/spade, /turf/open/floor/grass, @@ -385,13 +352,10 @@ }, /area/shuttle/escape) "lS" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, /obj/structure/chair/comfy/shuttle{ dir = 8 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "lT" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -428,9 +392,9 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "mq" = ( -/mob/living/carbon/monkey, /obj/machinery/light/floor, /obj/structure/flora/ausbushes/sparsegrass, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/shuttle/escape) "mw" = ( @@ -557,13 +521,10 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "tL" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 8 - }, /obj/structure/chair/comfy/shuttle{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "uc" = ( /obj/effect/turf_decal/weather/dirt{ @@ -595,15 +556,12 @@ /turf/open/floor/grass, /area/shuttle/escape) "vt" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, /obj/structure/table/reinforced, /obj/item/restraints/handcuffs{ pixel_y = 7 }, /obj/item/storage/fancy/donut_box, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "vx" = ( /obj/effect/turf_decal/stripes/line{ @@ -612,13 +570,9 @@ /turf/open/floor/plating, /area/shuttle/escape) "vP" = ( -/obj/effect/turf_decal/trimline/red/filled/line, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "vW" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, /obj/structure/table/reinforced, /obj/item/storage/box/handcuffs{ pixel_y = 5 @@ -626,7 +580,7 @@ /obj/machinery/light{ dir = 4 }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "wg" = ( /obj/effect/turf_decal/trimline/green/filled/end{ @@ -713,7 +667,7 @@ name = "Brig"; req_access_txt = "63; 42" }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/mineral/plastitanium/red/brig, /area/shuttle/escape) "Ai" = ( /obj/effect/turf_decal/weather/dirt{ @@ -926,8 +880,8 @@ /turf/open/floor/plasteel/white, /area/shuttle/escape) "Ia" = ( -/mob/living/carbon/monkey, /obj/structure/flora/ausbushes/sparsegrass, +/mob/living/carbon/monkey, /turf/open/floor/grass, /area/shuttle/escape) "Io" = ( @@ -1549,7 +1503,7 @@ gx WE VU Yu -jX +tL tL vt Yu @@ -1582,8 +1536,8 @@ gx VU Yu ht -jZ -WL +vP +vP vP zE HV @@ -1614,7 +1568,7 @@ WE (7,1,1) = {" VI eS -hC +lS lS lS vW diff --git a/auxmos.dll b/auxmos.dll index fc227f62c9..52e01b515a 100644 Binary files a/auxmos.dll and b/auxmos.dll differ diff --git a/auxmos.pdb b/auxmos.pdb index a2db349011..0f5a534a12 100644 Binary files a/auxmos.pdb and b/auxmos.pdb differ diff --git a/code/__DEFINES/achievements.dm b/code/__DEFINES/achievements.dm index c39531971c..20c68c015b 100644 --- a/code/__DEFINES/achievements.dm +++ b/code/__DEFINES/achievements.dm @@ -32,6 +32,9 @@ #define MEDAL_VOID_ASCENSION "Void" #define MEDAL_TOOLBOX_SOUL "Toolsoul" #define MEDAL_CHEM_TUT "Beginner Chemist" +#define MEDAL_HOT_DAMN "Hot Damn!" +#define MEDAL_CAYENNE_DISK "Very Important Piscis" +#define MEDAL_TRAM_SURFER "Tram Surfer" //Skill medal hub IDs #define MEDAL_LEGENDARY_MINER "Legendary Miner" @@ -106,3 +109,19 @@ // DB ID for amount of consumed maintenance pills #define MAINTENANCE_PILL_SCORE "Maintenance Pill Score" + +// DB ID for intento score +#define INTENTO_SCORE "Intento Score" + +// Tourist related achievements and scores + +//centcom grades (achievement) + +#define MEDAL_BAD_SERVICE "Bad Service" +#define MEDAL_OKAY_SERVICE "Okay Service" +#define MEDAL_GOOD_SERVICE "Good Service" + +//scores + +#define CHEF_TOURISTS_SERVED "Tourists Served As Chef" +#define BARTENDER_TOURISTS_SERVED "Tourists Served As Bartender" diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm index bd6e549d15..b485a5fa29 100644 --- a/code/__DEFINES/admin.dm +++ b/code/__DEFINES/admin.dm @@ -95,3 +95,6 @@ #define STICKYBAN_DB_CACHE_TIME 10 SECONDS #define STICKYBAN_ROGUE_CHECK_TIME 5 + +/// for asay pings, this is the index in the return list for [/proc/check_admin_pings] that contains the message modified with underlines for the spotted names +#define ADMINSAY_PING_UNDERLINE_NAME_INDEX "!underlined_names" diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index db78144689..04c91cfb9d 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -59,3 +59,4 @@ #define COLOR_SILVER "#C0C0C0" #define COLOR_GRAY "#808080" #define COLOR_HALF_TRANSPARENT_BLACK "#0000007A" +#define COLOR_BRIGHT_BLUE "#2CB2E8" diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm index 29c7a25dad..92231d3998 100644 --- a/code/__DEFINES/cooldowns.dm +++ b/code/__DEFINES/cooldowns.dm @@ -28,6 +28,11 @@ //INDEXES #define COOLDOWN_EMPLOYMENT_CABINET "employment cabinet" +//car cooldowns +#define COOLDOWN_CAR_HONK "car_honk" + +//clown car cooldowns +#define COOLDOWN_CLOWNCAR_RANDOMNESS "clown_car_randomness" //TIMER COOLDOWN MACROS diff --git a/code/__DEFINES/dcs/signals.dm b/code/__DEFINES/dcs/signals.dm index 66912fa787..33683d20ef 100644 --- a/code/__DEFINES/dcs/signals.dm +++ b/code/__DEFINES/dcs/signals.dm @@ -21,6 +21,10 @@ #define COMSIG_GLOB_PLAY_CINEMATIC "!play_cinematic" #define COMPONENT_GLOB_BLOCK_CINEMATIC 1 +#define COMSIG_GLOB_PRE_RANDOM_EVENT "!pre_random_event" + /// Do not allow this random event to continue. + #define CANCEL_PRE_RANDOM_EVENT (1<<0) + // signals from globally accessible objects /// from SSsun when the sun changes position : (primary_sun, suns) #define COMSIG_SUN_MOVED "sun_moved" diff --git a/code/__DEFINES/dynamic.dm b/code/__DEFINES/dynamic.dm index 6a15834ed8..dedf05396c 100644 --- a/code/__DEFINES/dynamic.dm +++ b/code/__DEFINES/dynamic.dm @@ -1,19 +1,17 @@ -#define CURRENT_LIVING_PLAYERS 1 -#define CURRENT_LIVING_ANTAGS 2 -#define CURRENT_DEAD_PLAYERS 3 -#define CURRENT_OBSERVERS 4 +/// This is the only ruleset that should be picked this round, used by admins and should not be on rulesets in code. +#define ONLY_RULESET (1 << 0) -#define NO_ASSASSIN (1<<0) -#define WAROPS_ALWAYS_ALLOWED (1<<1) -#define USE_PREF_WEIGHTS (1<<2) -#define FORCE_IF_WON (1<<3) -#define USE_PREV_ROUND_WEIGHTS (1<<4) +/// Only one ruleset with this flag will be picked. +#define HIGH_IMPACT_RULESET (1 << 1) -#define ONLY_RULESET (1<<0) -#define HIGHLANDER_RULESET (1<<1) -#define TRAITOR_RULESET (1<<2) -#define MINOR_RULESET (1<<3) -#define FAKE_ANTAG_RULESET (1<<4) -#define ALWAYS_MAX_WEIGHT_RULESET (1<<5) +/// This ruleset can only be picked once. Anything that does not have a scaling_cost MUST have this. +#define LONE_RULESET (1 << 2) -#define RULESET_STOP_PROCESSING 1 +/// No round event was hijacked this cycle +#define HIJACKED_NOTHING "HIJACKED_NOTHING" + +/// This cycle, a round event was hijacked when the last midround event was too recent. +#define HIJACKED_TOO_RECENT "HIJACKED_TOO_RECENT" + +/// This cycle, a round event was hijacked when the next midround event is too soon. +#define HIJACKED_TOO_SOON "HIJACKED_TOO_SOON" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 6a63ced634..bac40e3202 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -351,3 +351,9 @@ //Gremlins #define NPC_TAMPER_ACT_FORGET 1 //Don't try to tamper with this again #define NPC_TAMPER_ACT_NOMSG 2 //Don't produce a visible message + +//Game mode list indexes +#define CURRENT_LIVING_PLAYERS "living_players_list" +#define CURRENT_LIVING_ANTAGS "living_antags_list" +#define CURRENT_DEAD_PLAYERS "dead_players_list" +#define CURRENT_OBSERVERS "current_observers_list" diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index d47740f370..19ccf5fdc1 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -14,6 +14,7 @@ #define ROLE_MALF "malf AI" #define ROLE_REV "revolutionary" #define ROLE_REV_HEAD "Head Revolutionary" +#define ROLE_REV_SUCCESSFUL "Victorious Revolutionary" #define ROLE_ALIEN "xenomorph" #define ROLE_PAI "pAI" #define ROLE_CULTIST "cultist" @@ -44,6 +45,8 @@ #define ROLE_RESPAWN "respawnsystem" /// Not an actual antag. Lets players force all antags off. #define ROLE_NO_ANTAGONISM "NO_ANTAGS" +//Define for disabling individual antagonists for dynamic +#define HAS_ANTAG_PREF(C,ROLE) (!(ROLE_NO_ANTAGONISM in C.prefs.be_special) && (ROLE in C.prefs.be_special)) //Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR. //The gamemode specific ones are just so the gamemodes can query whether a player is old enough //(in game days played) to play that role diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 72543970ba..e315152252 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -81,7 +81,8 @@ #define SPACE list('sound/ambience/ambispace.ogg', 'sound/ambience/ambispace2.ogg', 'sound/ambience/title2.ogg', 'sound/ambience/ambiatmos.ogg') #define MAINTENANCE list('sound/ambience/ambimaint1.ogg', 'sound/ambience/ambimaint2.ogg', 'sound/ambience/ambimaint3.ogg', 'sound/ambience/ambimaint4.ogg',\ - 'sound/ambience/ambimaint5.ogg', 'sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg', 'sound/ambience/ambitech2.ogg' ) + 'sound/ambience/ambimaint5.ogg', 'sound/voice/lowHiss2.ogg', 'sound/voice/lowHiss3.ogg', 'sound/voice/lowHiss4.ogg', 'sound/ambience/ambitech2.ogg',\ + 'sound/ambience/ambimaint10.ogg' ) #define AWAY_MISSION list('sound/ambience/ambitech.ogg', 'sound/ambience/ambitech2.ogg', 'sound/ambience/ambiruin.ogg',\ 'sound/ambience/ambiruin2.ogg', 'sound/ambience/ambiruin3.ogg', 'sound/ambience/ambiruin4.ogg',\ diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm index 5c6c8b143c..b34e68e9ae 100644 --- a/code/__DEFINES/status_effects.dm +++ b/code/__DEFINES/status_effects.dm @@ -65,6 +65,8 @@ /// Blocks sprint #define STATUS_EFFECT_STAGGERED /datum/status_effect/staggered +#define STATUS_EFFECT_TASED_WEAK_NODMG /datum/status_effect/electrode/no_damage // no damage + #define STATUS_EFFECT_TASED_WEAK /datum/status_effect/electrode //not as crippling, just slows down #define STATUS_EFFECT_TASED /datum/status_effect/electrode/no_combat_mode //the affected has been tased, preventing fine muscle control diff --git a/code/__DEFINES/vehicles.dm b/code/__DEFINES/vehicles.dm index 48383546b9..1ff14f9506 100644 --- a/code/__DEFINES/vehicles.dm +++ b/code/__DEFINES/vehicles.dm @@ -1,9 +1,20 @@ -//Vehicle control flags +//Vehicle control flags. control flags describe access to actions in a vehicle. -#define VEHICLE_CONTROL_PERMISSION 1 -#define VEHICLE_CONTROL_DRIVE 2 -#define VEHICLE_CONTROL_KIDNAPPED 4 //Can't leave vehicle voluntarily, has to resist. +///controls the vehicles movement +#define VEHICLE_CONTROL_DRIVE (1<<0) +///Can't leave vehicle voluntarily, has to resist. +#define VEHICLE_CONTROL_KIDNAPPED (1<<1) +///melee attacks/shoves a vehicle may have +#define VEHICLE_CONTROL_MELEE (1<<2) +///using equipment/weapons on the vehicle +#define VEHICLE_CONTROL_EQUIPMENT (1<<3) +///changing around settings and the like. +#define VEHICLE_CONTROL_SETTINGS (1<<4) +//car_traits flags +///Will this car kidnap people by ramming into them? +#define CAN_KIDNAP (1<<0) -//Car trait flags -#define CAN_KIDNAP 1 +#define CLOWN_CANNON_INACTIVE 0 +#define CLOWN_CANNON_BUSY 1 +#define CLOWN_CANNON_READY 2 diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 2d0601d839..69dd54e810 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -26,6 +26,7 @@ #define reverseList(L) reverseRange(L.Copy()) #define LAZYADDASSOC(L, K, V) if(!L) { L = list(); } L[K] += list(V); #define LAZYREMOVEASSOC(L, K, V) if(L) { if(L[K]) { L[K] -= V; if(!length(L[K])) L -= K; } if(!length(L)) L = null; } +#define LAZYACCESSASSOC(L, I, K) L ? L[I] ? L[I][K] ? L[I][K] : null : null : null /// Passed into BINARY_INSERT to compare keys #define COMPARE_KEY __BIN_LIST[__BIN_MID] @@ -294,6 +295,22 @@ if (total <= 0) return item +/proc/pickweightAllowZero(list/L) //The original pickweight proc will sometimes pick entries with zero weight. I'm not sure if changing the original will break anything, so I left it be. + var/total = 0 + var/item + for (item in L) + if (!L[item]) + L[item] = 0 + total += L[item] + + total = rand(0, total) + for (item in L) + total -=L [item] + if (total <= 0 && L[item]) + return item + + return null + //Picks a number of elements from a list based on weight. //This is highly optimised and good for things like grabbing 200 items from a list of 40,000 //Much more efficient than many pickweight calls diff --git a/code/__HELPERS/config.dm b/code/__HELPERS/config.dm new file mode 100644 index 0000000000..1320851ef8 --- /dev/null +++ b/code/__HELPERS/config.dm @@ -0,0 +1,2 @@ +/proc/get_policy(keyword) + return global.config.policy[keyword] diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 02af6fab79..4693041f18 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -457,3 +457,7 @@ GLOBAL_LIST_EMPTY(species_datums) REMOVE_TRAIT(L, TRAIT_PASSTABLE, source) if(!HAS_TRAIT(L, TRAIT_PASSTABLE)) L.pass_flags &= ~PASSTABLE + +/// Gets the client of the mob, allowing for mocking of the client. +/// You only need to use this if you know you're going to be mocking clients somewhere else. +#define GET_CLIENT(mob) (##mob.client || ##mob.mock_client) diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index 9a59b2b0a9..edc9541abf 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -351,6 +351,7 @@ /datum/controller/subsystem/ticker/proc/survivor_report(popcount) var/list/parts = list() var/station_evacuated = EMERGENCY_ESCAPED_OR_ENDGAMED + var/datum/game_mode/dynamic/mode = SSticker.mode if(GLOB.round_id) var/statspage = CONFIG_GET(string/roundstatsurl) @@ -383,27 +384,14 @@ //ignore this comment, it fixes the broken sytax parsing caused by the " above else parts += "[FOURSPACES]Nobody died this shift!" - var/avg_threat = SSactivity.get_average_threat() - var/max_threat = SSactivity.get_max_threat() - parts += "[FOURSPACES]Threat at round end: [SSactivity.current_threat]" - parts += "[FOURSPACES]Average threat: [avg_threat]" - parts += "[FOURSPACES]Max threat: [max_threat]" if(istype(SSticker.mode, /datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - mode.update_playercounts() // ? - parts += "[FOURSPACES]Target threat: [mode.threat_level]" + parts += "[FOURSPACES]Initial threat level: [mode.threat_level]" + parts += "[FOURSPACES]Initial roundstart threat: [mode.initial_round_start_budget]" + parts += "[FOURSPACES]Roundstart budget after antags: [mode.round_start_budget]" + parts += "[FOURSPACES]Midround budget at round end: [mode.mid_round_budget]" parts += "[FOURSPACES]Executed rules:" for(var/datum/dynamic_ruleset/rule in mode.executed_rules) parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - [rule.name]: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat" - parts += "[FOURSPACES]Other threat changes:" - for(var/str in mode.threat_log) - parts += "[FOURSPACES][FOURSPACES][str]" - for(var/entry in mode.threat_tallies) - parts += "[FOURSPACES][FOURSPACES][entry] added [mode.threat_tallies[entry]]" - SSblackbox.record_feedback("tally","threat",mode.threat_level,"Target threat") - SSblackbox.record_feedback("tally","threat",SSactivity.current_threat,"Final Threat") - SSblackbox.record_feedback("tally","threat",avg_threat,"Average Threat") - SSblackbox.record_feedback("tally","threat",max_threat,"Max Threat") return parts.Join("
") /client/proc/roundend_report_file() diff --git a/code/_globalvars/game_modes.dm b/code/_globalvars/game_modes.dm index 960e1f8d59..7553c82502 100644 --- a/code/_globalvars/game_modes.dm +++ b/code/_globalvars/game_modes.dm @@ -1,5 +1,5 @@ -GLOBAL_VAR_INIT(master_mode, "traitor") //"extended" -GLOBAL_VAR_INIT(secret_force_mode, "secret") // if this is anything but "secret", the secret rotation will forceably choose this mode +GLOBAL_VAR_INIT(master_mode, "dynamic") //"extended" +GLOBAL_VAR_INIT(secret_force_mode, "dynamic") // if this is anything but "secret", the secret rotation will forceably choose this mode GLOBAL_VAR(common_report) //Contains common part of roundend report GLOBAL_VAR(survivor_report) //Contains shared survivor report for roundend report (part of personal report) diff --git a/code/_globalvars/lists/mobs.dm b/code/_globalvars/lists/mobs.dm index 64bac1f9af..53448a284a 100644 --- a/code/_globalvars/lists/mobs.dm +++ b/code/_globalvars/lists/mobs.dm @@ -44,6 +44,15 @@ GLOBAL_LIST_EMPTY(mob_config_movespeed_type_lookup_floating) GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traitor-target purposes. +/// All alive antags with clients. +GLOBAL_LIST_EMPTY(current_living_antags) + +/// All observers with clients that joined as observers. +GLOBAL_LIST_EMPTY(current_observers_list) + +//Dynamic Port +GLOBAL_LIST_EMPTY(new_player_list) //all /mob/dead/new_player, in theory all should have clients and those that don't are in the process of spawning and get deleted when done. + /proc/update_config_movespeed_type_lookup(update_mobs = TRUE) // NOTE: This is entirely based on the fact that byond typesof/subtypesof gets longer/deeper paths before shallower ones. // If that ever breaks this entire proc breaks. diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm index 2f5f4a3dd4..8590e056c9 100644 --- a/code/_onclick/hud/screen_objects.dm +++ b/code/_onclick/hud/screen_objects.dm @@ -189,7 +189,7 @@ var/image/item_overlay = image(holding) item_overlay.alpha = 92 - if(!user.can_equip(holding, slot_id, TRUE)) + if(!user.can_equip(holding, slot_id, TRUE, TRUE)) item_overlay.color = "#FF0000" else item_overlay.color = "#00ff00" diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm index 6a5a4c4610..bf89be1b51 100644 --- a/code/controllers/configuration/configuration.dm +++ b/code/controllers/configuration/configuration.dm @@ -20,7 +20,7 @@ var/list/mode_false_report_weight var/motd - // var/policy + var/policy var/static/regex/ic_filter_regex @@ -41,7 +41,6 @@ CRASH("/datum/controller/configuration/Load() called more than once!") InitEntries() LoadModes() - storyteller_cache = typecacheof(/datum/dynamic_storyteller, TRUE) if(fexists("[directory]/config.txt") && LoadEntries("config.txt") <= 1) var/list/legacy_configs = list("game_options.txt", "dbconfig.txt", "comms.txt") for(var/I in legacy_configs) @@ -52,7 +51,7 @@ break loadmaplist(CONFIG_MAPS_FILE) LoadMOTD() - // LoadPolicy() + LoadPolicy() LoadChatFilter() if (Master) @@ -266,7 +265,7 @@ if(M.votable) votable_modes += M.config_tag qdel(M) - votable_modes += "secret" + votable_modes += "dynamic" /datum/controller/configuration/proc/LoadMOTD() motd = file2text("[directory]/motd.txt") @@ -292,7 +291,7 @@ Example config: } */ -/* + /datum/controller/configuration/proc/LoadPolicy() policy = list() var/rawpolicy = file2text("[directory]/policy.json") @@ -303,7 +302,7 @@ Example config: DelayedMessageAdmins("JSON parsing failure for policy.json") else policy = parsed -*/ + /datum/controller/configuration/proc/loadmaplist(filename) log_config("Loading config file [filename]...") filename = "[directory]/[filename]" @@ -371,53 +370,7 @@ Example config: var/ct = initial(M.config_tag) if(ct && ct == mode_name) return new T - return new /datum/game_mode/extended() - -/// For dynamic. -/datum/controller/configuration/proc/pick_storyteller(storyteller_name) - for(var/T in storyteller_cache) - var/datum/dynamic_storyteller/S = T - var/name = initial(S.name) - if(name && name == storyteller_name) - return T - return /datum/dynamic_storyteller/classic - -/// Same with this -/datum/controller/configuration/proc/get_runnable_storytellers() - var/list/datum/dynamic_storyteller/runnable_storytellers = new - var/list/probabilities = Get(/datum/config_entry/keyed_list/storyteller_weight) - var/list/repeated_mode_adjust = Get(/datum/config_entry/number_list/repeated_mode_adjust) - var/list/min_player_counts = Get(/datum/config_entry/keyed_list/storyteller_min_players) - var/list/storyteller_min_chaos = Get(/datum/config_entry/keyed_list/storyteller_min_chaos) - var/list/storyteller_max_chaos = Get(/datum/config_entry/keyed_list/storyteller_max_chaos) - for(var/T in storyteller_cache) - var/datum/dynamic_storyteller/S = T - var/config_tag = initial(S.config_tag) - if(!config_tag) - continue - var/probability = (config_tag in probabilities) ? probabilities[config_tag] : initial(S.weight) - var/min_players = (config_tag in min_player_counts) ? min_player_counts[config_tag] : initial(S.min_players) - if(probability <= 0) - continue - if(length(GLOB.player_list) < min_players) - continue - if(!Get(/datum/config_entry/flag/no_storyteller_threat_removal)) - var/min_chaos = (probabilities in storyteller_min_chaos) ? storyteller_min_chaos[config_tag] : initial(S.min_chaos) - var/max_chaos = (probabilities in storyteller_max_chaos) ? storyteller_max_chaos[config_tag] : initial(S.max_chaos) - if(SSpersistence.average_threat + 50 < min_chaos) - continue - if(SSpersistence.average_threat + 50 > max_chaos) - continue - if(SSpersistence.saved_storytellers.len == repeated_mode_adjust.len) - var/name = initial(S.name) - var/recent_round = min(SSpersistence.saved_storytellers.Find(name),3) - var/adjustment = 0 - while(recent_round) - adjustment += repeated_mode_adjust[recent_round] - recent_round = SSpersistence.saved_modes.Find(name,recent_round+1,0) - probability *= max(0,((100-adjustment)/100)) - runnable_storytellers[S] = probability - return runnable_storytellers + return new /datum/game_mode/dynamic /datum/controller/configuration/proc/get_runnable_modes() var/list/datum/game_mode/runnable_modes = new diff --git a/code/controllers/configuration/entries/connections.dm b/code/controllers/configuration/entries/connections.dm index acdf588e5a..6ec41590f2 100644 --- a/code/controllers/configuration/entries/connections.dm +++ b/code/controllers/configuration/entries/connections.dm @@ -1,6 +1,12 @@ /datum/config_entry/flag/panic_bunker // prevents people the server hasn't seen before from connecting -/datum/config_entry/number/panic_bunker_living // living time in minutes that a player needs to pass the panic bunker +/datum/config_entry/number/panic_bunker_living // living time in minutes that a player needs to pass the panic bunker. they pass **if they are above this amount** + config_entry_value = 0 // default: <= 0 meaning any playtime works. -1 to disable criteria. + integer = TRUE + +/datum/config_entry/number/panic_bunker_living_vpn + config_entry_value = 0 // default: <= 0 meaning anytime works. -1 to disable criteria. + integer = TRUE /datum/config_entry/string/panic_bunker_message config_entry_value = "Sorry but the server is currently not accepting connections from never before seen players." diff --git a/code/controllers/configuration/entries/general.dm b/code/controllers/configuration/entries/general.dm index 182394bfa4..57c933edc5 100644 --- a/code/controllers/configuration/entries/general.dm +++ b/code/controllers/configuration/entries/general.dm @@ -345,3 +345,5 @@ /datum/config_entry/flag/atmos_equalize_enabled default = FALSE + +/datum/config_entry/flag/dynamic_config_enabled diff --git a/code/controllers/configuration/entries/server.dm b/code/controllers/configuration/entries/server.dm index 1acf8a11ca..ee40df573c 100644 --- a/code/controllers/configuration/entries/server.dm +++ b/code/controllers/configuration/entries/server.dm @@ -88,3 +88,6 @@ /datum/config_entry/number/rounds_until_hard_restart config_entry_value = -1 min_val = 0 + +/datum/config_entry/string/force_gamemode + config_entry_value = null diff --git a/code/controllers/subsystem/fail2topic.dm b/code/controllers/subsystem/fail2topic.dm index 78c4807c3f..fc18d7dabe 100644 --- a/code/controllers/subsystem/fail2topic.dm +++ b/code/controllers/subsystem/fail2topic.dm @@ -33,7 +33,7 @@ SUBSYSTEM_DEF(fail2topic) while(i <= length(rate_limiting)) var/ip = rate_limiting[i] var/last_attempt = rate_limiting[ip] - if(world.time - last_attempt > rate_limit) + if(REALTIMEOFDAY - last_attempt > rate_limit) rate_limiting -= ip fail_counts -= ip else //if we remove that, and the next element is in its place. check that instead of incrementing. @@ -58,12 +58,12 @@ SUBSYSTEM_DEF(fail2topic) if (active_bans[ip]) return TRUE - rate_limiting[ip] = world.time + rate_limiting[ip] = REALTIMEOFDAY if (isnull(last_attempt)) return FALSE - if (world.time - last_attempt > rate_limit) + if (REALTIMEOFDAY - last_attempt > rate_limit) fail_counts -= ip return FALSE else @@ -83,7 +83,7 @@ SUBSYSTEM_DEF(fail2topic) if (!enabled) return - active_bans[ip] = world.time + active_bans[ip] = REALTIMEOFDAY fail_counts -= ip rate_limiting -= ip diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm index 7e7efe398f..797ad92dd1 100644 --- a/code/controllers/subsystem/job.dm +++ b/code/controllers/subsystem/job.dm @@ -30,11 +30,13 @@ SUBSYSTEM_DEF(job) var/datum/job/new_overflow = GetJob(new_overflow_role) var/cap = CONFIG_GET(number/overflow_cap) + new_overflow.allow_bureaucratic_error = FALSE new_overflow.spawn_positions = cap new_overflow.total_positions = cap if(new_overflow_role != overflow_role) var/datum/job/old_overflow = GetJob(overflow_role) + old_overflow.allow_bureaucratic_error = initial(old_overflow.allow_bureaucratic_error) old_overflow.spawn_positions = initial(old_overflow.spawn_positions) old_overflow.total_positions = initial(old_overflow.total_positions) overflow_role = new_overflow_role @@ -719,7 +721,7 @@ SUBSYSTEM_DEF(job) if(length(i[LOADOUT_COLOR])) //handle loadout colors //handle polychromic items if((G.loadout_flags & LOADOUT_CAN_COLOR_POLYCHROMIC) && length(G.loadout_initial_colors)) - var/datum/element/polychromic/polychromic = I.comp_lookup["item_worn_overlays"] //stupid way to do it but GetElement does not work for this + var/datum/element/polychromic/polychromic = LAZYACCESS(I.comp_lookup, "item_worn_overlays") //stupid way to do it but GetElement does not work for this if(polychromic && istype(polychromic)) var/list/polychromic_entry = polychromic.colors_by_atom[I] if(polychromic_entry) diff --git a/code/controllers/subsystem/persistence/recent_votes_etc.dm b/code/controllers/subsystem/persistence/recent_votes_etc.dm index 45b866b1c6..68b5a3132d 100644 --- a/code/controllers/subsystem/persistence/recent_votes_etc.dm +++ b/code/controllers/subsystem/persistence/recent_votes_etc.dm @@ -5,24 +5,18 @@ var/list/saved_modes = list(1,2,3) var/list/saved_chaos = list(5,5,5) var/list/saved_dynamic_rules = list(list(),list(),list()) - var/list/saved_storytellers = list("foo","bar","baz") var/average_threat = 50 var/list/saved_maps /datum/controller/subsystem/persistence/SaveServerPersistence() . = ..() CollectRoundtype() - if(istype(SSticker.mode, /datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - CollectStoryteller(mode) - CollectRulesets(mode) RecordMaps() /datum/controller/subsystem/persistence/LoadServerPersistence() . = ..() LoadRecentModes() LoadRecentChaos() - LoadRecentStorytellers() LoadRecentRulesets() LoadRecentMaps() @@ -45,30 +39,6 @@ fdel(json_file) WRITE_FILE(json_file, json_encode(file_data)) -/datum/controller/subsystem/persistence/proc/CollectStoryteller(var/datum/game_mode/dynamic/mode) - saved_storytellers.len = 3 - saved_storytellers[3] = saved_storytellers[2] - saved_storytellers[2] = saved_storytellers[1] - saved_storytellers[1] = mode.storyteller.name - var/json_file = file("data/RecentStorytellers.json") - var/list/file_data = list() - file_data["data"] = saved_storytellers - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - -/datum/controller/subsystem/persistence/proc/CollectRulesets(var/datum/game_mode/dynamic/mode) - saved_dynamic_rules[3] = saved_dynamic_rules[2] - saved_dynamic_rules[2] = saved_dynamic_rules[1] - saved_dynamic_rules[1] = list() - for(var/r in mode.executed_rules) - var/datum/dynamic_ruleset/rule = r - saved_dynamic_rules[1] += rule.config_tag - var/json_file = file("data/RecentRulesets.json") - var/list/file_data = list() - file_data["data"] = saved_dynamic_rules - fdel(json_file) - WRITE_FILE(json_file, json_encode(file_data)) - /datum/controller/subsystem/persistence/proc/RecordMaps() saved_maps = saved_maps?.len ? list("[SSmapping.config.map_name]") | saved_maps : list("[SSmapping.config.map_name]") var/json_file = file("data/RecentMaps.json") @@ -107,15 +77,6 @@ return saved_dynamic_rules = json["data"] -/datum/controller/subsystem/persistence/proc/LoadRecentStorytellers() - var/json_file = file("data/RecentStorytellers.json") - if(!fexists(json_file)) - return - var/list/json = json_decode(file2text(json_file)) - if(!json) - return - saved_storytellers = json["data"] - /datum/controller/subsystem/persistence/proc/LoadRecentMaps() var/json_file = file("data/RecentMaps.json") if(!fexists(json_file)) diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index dfee659080..6f1fe6d8d0 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -71,6 +71,9 @@ SUBSYSTEM_DEF(ticker) var/station_integrity = 100 // stored at roundend for use in some antag goals var/emergency_reason + /// If the gamemode fails to be run too many times, we swap to a preset gamemode, this should give admins time to set their preferred one + var/emergency_swap = 0 + /datum/controller/subsystem/ticker/Initialize(timeofday) load_mode() @@ -179,7 +182,11 @@ SUBSYSTEM_DEF(ticker) timeLeft = 0 if(!modevoted) - send_gamemode_vote() + var/forcemode = CONFIG_GET(string/force_gamemode) + if(forcemode) + force_gamemode(forcemode) + if(!forcemode || (GLOB.master_mode == "dynamic" && CONFIG_GET(flag/dynamic_voting))) + send_gamemode_vote() //countdown if(timeLeft < 0) return @@ -227,36 +234,16 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/setup() to_chat(world, "Starting game...") var/init_start = world.timeofday - //Create and announce mode - var/list/datum/game_mode/runnable_modes - if(GLOB.master_mode == "random" || GLOB.master_mode == "secret") - runnable_modes = config.get_runnable_modes() - - if(GLOB.master_mode == "secret") - hide_mode = 1 - if(GLOB.secret_force_mode != "secret") - var/datum/game_mode/smode = config.pick_mode(GLOB.secret_force_mode) - if(!smode.can_start()) - message_admins("Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.") - else - mode = smode - - if(!mode) - if(!runnable_modes.len) - to_chat(world, "Unable to choose playable game mode. Reverting to pre-game lobby.") - return 0 - mode = pickweight(runnable_modes) - if(!mode) //too few roundtypes all run too recently - mode = pick(runnable_modes) - - else - mode = config.pick_mode(GLOB.master_mode) - if(!mode.can_start()) - to_chat(world, "Unable to start [mode.name]. Not enough players, [mode.required_players] players and [mode.required_enemies] eligible antagonists needed. Reverting to pre-game lobby.") - qdel(mode) - mode = null - SSjob.ResetOccupations() - return 0 + if(emergency_swap >= 10) + force_gamemode("extended") // If everything fails extended does not have hard requirements for starting, could be changed if needed. + mode = config.pick_mode(GLOB.master_mode) + if(!mode.can_start()) + to_chat(world, "Unable to start [mode.name]. Not enough players, [mode.required_players] players and [mode.required_enemies] eligible antagonists needed. Reverting to pre-game lobby.") + qdel(mode) + mode = null + SSjob.ResetOccupations() + emergency_swap++ + return 0 CHECK_TICK //Configure mode and assign player to special mode stuff @@ -274,6 +261,7 @@ SUBSYSTEM_DEF(ticker) QDEL_NULL(mode) to_chat(world, "Error setting up [GLOB.master_mode]. Reverting to pre-game lobby.") SSjob.ResetOccupations() + emergency_swap++ return 0 else message_admins("DEBUG: Bypassing prestart checks...") @@ -327,6 +315,19 @@ SUBSYSTEM_DEF(ticker) return TRUE +/datum/controller/subsystem/ticker/proc/force_gamemode(gamemode) + if(gamemode) + if(!modevoted) + modevoted = TRUE + if(gamemode in config.modes) + GLOB.master_mode = gamemode + SSticker.save_mode(gamemode) + message_admins("The gamemode has been set to [gamemode].") + else + GLOB.master_mode = "extended" + SSticker.save_mode("extended") + message_admins("force_gamemode proc received an invalid gamemode, defaulting to extended.") + /datum/controller/subsystem/ticker/proc/PostSetup() set waitfor = FALSE mode.post_setup() @@ -642,7 +643,7 @@ SUBSYSTEM_DEF(ticker) if(mode) GLOB.master_mode = mode else - GLOB.master_mode = "extended" + GLOB.master_mode = GLOB.dynamic_forced_extended log_game("Saved mode is '[GLOB.master_mode]'") /datum/controller/subsystem/ticker/proc/save_mode(the_mode) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 1153088a91..7b4a06c74d 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -104,7 +104,6 @@ SUBSYSTEM_DEF(vote) return . /datum/controller/subsystem/vote/proc/calculate_condorcet_votes(var/blackbox_text) - // https://en.wikipedia.org/wiki/Schulze_method#Implementation if((mode == "gamemode" || mode == "dynamic" || mode == "roundtype") && CONFIG_GET(flag/must_be_readied_to_vote_gamemode)) for(var/mob/dead/new_player/P in GLOB.player_list) if(P.ready != PLAYER_READY_TO_PLAY && voted[P.ckey]) @@ -322,51 +321,17 @@ SUBSYSTEM_DEF(vote) var/restart = 0 if(.) switch(mode) - if("roundtype") //CIT CHANGE - adds the roundstart extended/secret vote + if("roundtype") //CIT CHANGE - adds the roundstart extended/dynamic vote if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - GLOB.master_mode = . - SSticker.save_mode(.) + GLOB.master_mode = "dynamic" + if(. == "extended") + GLOB.dynamic_forced_extended = TRUE message_admins("The gamemode has been voted for, and has been changed to: [GLOB.master_mode]") log_admin("Gamemode has been voted for and switched to: [GLOB.master_mode].") - if(CONFIG_GET(flag/modetier_voting)) - reset() - started_time = 0 - initiate_vote("mode tiers","server", votesystem=SCORE_VOTING, forced=TRUE, vote_time = 30 MINUTES) - to_chat(world,"The vote will end right as the round starts.") - return . if("restart") if(. == "Restart Round") restart = 1 - if("gamemode") - if(GLOB.master_mode != .) - SSticker.save_mode(.) - if(SSticker.HasRoundStarted()) - restart = 1 - else - GLOB.master_mode = . - if("mode tiers") - var/list/raw_score_numbers = list() - for(var/score_name in scores) - sorted_insert(raw_score_numbers,scores[score_name],/proc/cmp_numeric_asc) - stored_modetier_results = scores.Copy() - for(var/score_name in stored_modetier_results) - if(stored_modetier_results[score_name] <= raw_score_numbers[CONFIG_GET(number/dropped_modes)]) - stored_modetier_results -= score_name - stored_modetier_results += "traitor" - if("dynamic") - if(SSticker.current_state > GAME_STATE_PREGAME)//Don't change the mode if the round already started. - return message_admins("A vote has tried to change the gamemode, but the game has already started. Aborting.") - var/list/runnable_storytellers = config.get_runnable_storytellers() - var/datum/dynamic_storyteller/picked - for(var/T in runnable_storytellers) - var/datum/dynamic_storyteller/S = T - if(stored_gamemode_votes[initial(S.name)] == 1 && CHECK_BITFIELD(initial(S.flags), FORCE_IF_WON)) - picked = S - runnable_storytellers[S] *= round(stored_gamemode_votes[initial(S.name)]*100000,1) - if(!picked) - picked = pickweight(runnable_storytellers, 0) - GLOB.dynamic_storyteller_type = picked if("map") var/datum/map_config/VM = config.maplist[.] message_admins("The map has been voted for and will change to: [VM.map_name]") @@ -483,24 +448,7 @@ SUBSYSTEM_DEF(vote) if("transfer") // austation begin -- Crew autotranfer vote choices.Add("Initiate Crew Transfer","Continue Playing") // austation end if("roundtype") //CIT CHANGE - adds the roundstart secret/extended vote - choices.Add("secret", "extended") - if("mode tiers") - var/list/modes_to_add = config.votable_modes - var/list/probabilities = CONFIG_GET(keyed_list/probability) - for(var/tag in modes_to_add) - if(probabilities[tag] <= 0) - modes_to_add -= tag - modes_to_add -= "traitor" // makes it so that traitor is always available - choices.Add(modes_to_add) - if("dynamic") - GLOB.master_mode = "dynamic" - var/list/probabilities = CONFIG_GET(keyed_list/storyteller_weight) - for(var/T in config.get_runnable_storytellers()) - var/datum/dynamic_storyteller/S = T - var/probability = ((initial(S.config_tag) in probabilities) ? probabilities[initial(S.config_tag)] : initial(S.weight)) - if(probability > 0) - choices.Add(initial(S.name)) - choice_descs.Add(initial(S.desc)) + choices.Add("dynamic", "extended") if("custom") question = stripped_input(usr,"What is the vote for?") if(!question) diff --git a/code/datums/achievements/_achievement_data.dm b/code/datums/achievements/_achievement_data.dm index 80f544a965..12c8256c74 100644 --- a/code/datums/achievements/_achievement_data.dm +++ b/code/datums/achievements/_achievement_data.dm @@ -109,7 +109,7 @@ /datum/achievement_data/ui_data(mob/user) var/ret_data = list() // screw standards (qustinnus you must rename src.data ok) - ret_data["categories"] = list("Bosses", "Misc", "Mafia", "Scores") + ret_data["categories"] = list("Bosses", "Jobs", "Misc", "Mafia", "Scores") ret_data["achievements"] = list() ret_data["user_key"] = user.ckey diff --git a/code/datums/achievements/_awards.dm b/code/datums/achievements/_awards.dm index 77485de8ba..22296b90f5 100644 --- a/code/datums/achievements/_awards.dm +++ b/code/datums/achievements/_awards.dm @@ -2,7 +2,7 @@ ///Name of the achievement, If null it won't show up in the achievement browser. (Handy for inheritance trees) var/name var/desc = "You did it." - ///Found in UI_Icons/Achievements + ///Found in ui_icons/achievements var/icon = "default" var/category = "Normal" @@ -78,7 +78,7 @@ /datum/award/achievement/on_unlock(mob/user) . = ..() - to_chat(user, "Achievement unlocked: [name]!") + to_chat(user, span_greenannounce("Achievement unlocked: [name]!")) ///Scores are for leaderboarded things, such as killcount of a specific boss /datum/award/score diff --git a/code/datums/achievements/boss_achievements.dm b/code/datums/achievements/boss_achievements.dm index 104a369405..f2ff90945f 100644 --- a/code/datums/achievements/boss_achievements.dm +++ b/code/datums/achievements/boss_achievements.dm @@ -12,7 +12,7 @@ name = "Boss Killer" desc = "You've come a long ways from asking how to switch hands." database_id = "Boss Killer" - // icon = "firstboss" + icon = "firstboss" /datum/award/achievement/boss/blood_miner_kill name = "Blood-Drunk Miner Killer" diff --git a/code/datums/achievements/job_achievements.dm b/code/datums/achievements/job_achievements.dm new file mode 100644 index 0000000000..13a68462ed --- /dev/null +++ b/code/datums/achievements/job_achievements.dm @@ -0,0 +1,34 @@ + +/datum/award/achievement/jobs + category = "Jobs" + icon = "basemisc" + +//chemistry + +/datum/award/achievement/jobs/chemistry_tut + name = "Perfect chemistry blossom" + desc = "Passed the chemistry tutorial with perfect purity!" + database_id = MEDAL_CHEM_TUT + icon = "chem_tut" + +//all of service! hip hip! + +/datum/award/achievement/jobs/service_bad + name = "Centcom Grade: Shitty Service" + desc = "Well, you at least tried. How about trying harder?" + database_id = MEDAL_BAD_SERVICE + icon = "chem_tut" + +/datum/award/achievement/jobs/service_okay + name = "Centcom Grade: Acceptable Service" + desc = "Well, it'll do! You and your department did just fine." + database_id = MEDAL_OKAY_SERVICE + icon = "chem_tut" + +/datum/award/achievement/jobs/service_good + name = "Centcom Grade: Exemplary Service" + desc = "Centcom is very impressed with your department!" + database_id = MEDAL_GOOD_SERVICE + icon = "chem_tut" + +//civilian achievies! while not recognized by the code, it is recognized by our hearts diff --git a/code/datums/achievements/job_scores.dm b/code/datums/achievements/job_scores.dm new file mode 100644 index 0000000000..d860c7e21a --- /dev/null +++ b/code/datums/achievements/job_scores.dm @@ -0,0 +1,14 @@ + +//chef + +/datum/award/score/chef_tourist_score + name = "Tourists Served as Chef Highscore" + desc = "Your highscore on serving tourist bots as chef." + database_id = CHEF_TOURISTS_SERVED + +//bartender + +/datum/award/score/bartender_tourist_score + name = "Tourists Served as Bartender Highscore" + desc = "Your highscore on serving tourist bots as bartender." + database_id = BARTENDER_TOURISTS_SERVED diff --git a/code/datums/achievements/misc_achievements.dm b/code/datums/achievements/misc_achievements.dm index 0da38df8f3..5ad337445b 100644 --- a/code/datums/achievements/misc_achievements.dm +++ b/code/datums/achievements/misc_achievements.dm @@ -154,8 +154,20 @@ database_id = MEDAL_TOOLBOX_SOUL icon = "toolbox_soul" -/datum/award/achievement/misc/chemistry_tut - name = "Perfect chemistry blossom" - desc = "Passed the chemistry tutorial with perfect purity!" - database_id = MEDAL_CHEM_TUT - icon = "chem_tut" +/datum/award/achievement/misc/hot_damn + name = "Hot Damn!" + desc = "Sometimes you need to make some noise to make a point." + database_id = MEDAL_HOT_DAMN + icon = "hotdamn" + +/datum/award/achievement/misc/cayenne_disk + name = "Very Important Piscis" + desc = "You can rest well now." + database_id = MEDAL_CAYENNE_DISK + icon = "cayenne_disk" + +/datum/award/achievement/misc/tram_surfer + name = "Tram Surfer" + desc = "Lights out, guerilla radio!" + database_id = MEDAL_TRAM_SURFER + icon = "tram_surfer" diff --git a/code/datums/achievements/misc_scores.dm b/code/datums/achievements/misc_scores.dm index 7ffc50c015..067cd68d7d 100644 --- a/code/datums/achievements/misc_scores.dm +++ b/code/datums/achievements/misc_scores.dm @@ -9,3 +9,9 @@ name = "Maintenance Pills Consumed" desc = "Wait why?" database_id = MAINTENANCE_PILL_SCORE + +///How high of a score on the Intento did we get? +/datum/award/score/intento_score + name = "Intento Score" + desc = "A blast from the future?" + database_id = INTENTO_SCORE diff --git a/code/datums/atmosphere/_atmosphere.dm b/code/datums/atmosphere/_atmosphere.dm index 5323b070cd..7fe8e44d75 100644 --- a/code/datums/atmosphere/_atmosphere.dm +++ b/code/datums/atmosphere/_atmosphere.dm @@ -16,6 +16,9 @@ /datum/atmosphere/New() generate_gas_string() +/datum/atmosphere/proc/check_for_sanity(datum/gas_mixture/mix) + return + /datum/atmosphere/proc/generate_gas_string() var/list/spicy_gas = restricted_gases.Copy() var/target_pressure = rand(minimum_pressure, maximum_pressure) @@ -52,6 +55,8 @@ gasmix.adjust_moles(gastype, -moles_to_remove) gasmix.set_moles(gastype, FLOOR(gasmix.get_moles(gastype), 0.1)) + check_for_sanity(gasmix) + // Now finally lets make that string var/list/gas_string_builder = list() for(var/id in gasmix.get_gases()) diff --git a/code/datums/atmosphere/planetary.dm b/code/datums/atmosphere/planetary.dm index a2d771af01..081777a247 100644 --- a/code/datums/atmosphere/planetary.dm +++ b/code/datums/atmosphere/planetary.dm @@ -20,9 +20,15 @@ minimum_pressure = HAZARD_LOW_PRESSURE + 10 maximum_pressure = LAVALAND_EQUIPMENT_EFFECT_PRESSURE - 1 - minimum_temp = BODYTEMP_COLD_DAMAGE_LIMIT + 1 + minimum_temp = 270 maximum_temp = 320 +/datum/atmosphere/lavaland/check_for_sanity(datum/gas_mixture/mix) + var/datum/breathing_class/o2_class = GLOB.gas_data.breathing_classes[BREATH_OXY] + while(o2_class.get_effective_pp(mix) < 10) + mix.adjust_moles(GAS_CO2, -0.5) + mix.adjust_moles(GAS_O2, 0.5) + /datum/atmosphere/icemoon id = ICEMOON_DEFAULT_ATMOS diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm index 279118d877..8010f5dc6f 100644 --- a/code/datums/brain_damage/phobia.dm +++ b/code/datums/brain_damage/phobia.dm @@ -83,13 +83,19 @@ return if(HAS_TRAIT(owner, TRAIT_FEARLESS)) return + + var/matches = FALSE + var/mainsource for(var/word in trigger_words) - var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "i") + var/regex/reg = regex("(\\b|\\A)[REGEX_QUOTE(word)]'?s*(\\b|\\Z)", "ig") if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg)) - addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message - hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$1") - break + hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$0") + matches = TRUE + mainsource = word + + if(matches) + addtimer(CALLBACK(src, .proc/freak_out, null, mainsource), 10) //to react AFTER the chat message /datum/brain_trauma/mild/phobia/handle_speech(datum/source, list/speech_args) if(HAS_TRAIT(owner, TRAIT_FEARLESS)) diff --git a/code/datums/components/crafting/recipes/recipes_primal.dm b/code/datums/components/crafting/recipes/recipes_primal.dm index aaae94df1d..73401a4198 100644 --- a/code/datums/components/crafting/recipes/recipes_primal.dm +++ b/code/datums/components/crafting/recipes/recipes_primal.dm @@ -93,7 +93,6 @@ /datum/crafting_recipe/quiver name = "Quiver" - always_availible = FALSE result = /obj/item/storage/belt/quiver time = 80 reqs = list(/obj/item/stack/sheet/leather = 3, @@ -104,19 +103,18 @@ name = "Bone Bow" result = /obj/item/gun/ballistic/bow/ashen time = 120 // 80+120 = 200 - always_availible = FALSE reqs = list(/obj/item/stack/sheet/bone = 8, /obj/item/stack/sheet/sinew = 4) category = CAT_PRIMAL -/datum/crafting_recipe/bow_tablet +/*/datum/crafting_recipe/bow_tablet name = "Sandstone Bow Making Manual" result = /obj/item/book/granter/crafting_recipe/bone_bow time = 200 //Scribing // don't care always_availible = FALSE reqs = list(/obj/item/stack/rods = 1, /obj/item/stack/sheet/mineral/sandstone = 4) - category = CAT_PRIMAL + category = CAT_PRIMAL*/ /datum/crafting_recipe/rib name = "Collosal Rib" @@ -154,3 +152,158 @@ /obj/item/shovel/spade = 1) result = /obj/item/shovel/serrated category = CAT_PRIMAL + +/datum/crafting_recipe/bone_screwdriver + name = "Bone Screwdriver" + result = /obj/item/screwdriver/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_crowbar + name = "Bone Crowbar" + result = /obj/item/crowbar/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_cutters + name = "Bone Wirecutters" + result = /obj/item/wirecutters/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_wrench + name = "Bone Wrench" + result = /obj/item/wrench/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/necropolis_welding + name = "Necropolis Welding Torch" + result = /obj/item/weldingtool/experimental/ashwalker + time = 120 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 2, + /obj/item/organ/regenerative_core = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/tribalbelt + name = "Hunter's Belt" + result = /obj/item/storage/belt/mining/primitive + time = 80 + reqs = list(/obj/item/stack/sheet/sinew = 4) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliath_gloves + name = "Goliath Gloves" + result = /obj/item/clothing/gloves/tackler/combat/goliath + time = 80 + reqs = list(/obj/item/stack/sheet/sinew = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2, + /obj/item/stack/sheet/cloth = 2, + /obj/item/stack/sheet/leather = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/goliath_drapes + name = "Goliath Drapes" + result = /obj/item/surgical_drapes/goliath + time = 80 + reqs = list(/obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/animalhide/goliath_hide = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/diamond_scalpel + name = "Diamond Scalpel" + result = /obj/item/scalpel/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1, + /obj/item/stack/sheet/mineral/diamond = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_retractor + name = "Bone Retractor" + result = /obj/item/retractor/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/diamond_bonesaw + name = "Diamond Bonesaw" + result = /obj/item/circular_saw/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1, + /obj/item/organ/regenerative_core = 1, + /obj/item/stack/sheet/mineral/diamond = 2) + category = CAT_PRIMAL + +/datum/crafting_recipe/femurstat + name = "Bone Hemostat" + result = /obj/item/hemostat/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_bonesetter + name = "Bone Bonersetter" + result = /obj/item/bonesetter/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/coretery + name = "Necropolis Cautery" + result = /obj/item/cautery/ashwalker + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/animalhide/goliath_hide = 1, + /obj/item/organ/regenerative_core = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_spade + name = "Bone Spade" + result = /obj/item/shovel/spade/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_hatchet + name = "Bone Hatchet" + result = /obj/item/hatchet/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 1, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_cultivator + name = "Bone Cultivator" + result = /obj/item/cultivator/bone + time = 80 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/sinew = 1) + category = CAT_PRIMAL + +/datum/crafting_recipe/bone_glaive + name = "Necropolis Glaive" + result = /obj/item/kinetic_crusher/glaive/bone + time = 120 + reqs = list(/obj/item/stack/sheet/bone = 2, + /obj/item/stack/sheet/mineral/wood = 4, + /obj/item/stack/sheet/sinew = 4, + /obj/item/organ/regenerative_core = 2, + /obj/item/stack/sheet/mineral/diamond = 2, + /obj/item/stack/sheet/animalhide/goliath_hide = 2, + /obj/item/stack/sheet/leather = 2) + category = CAT_PRIMAL diff --git a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm index 01ad269a8e..87ec5cdaab 100644 --- a/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm +++ b/code/datums/components/crafting/recipes/recipes_weapon_and_ammo.dm @@ -335,7 +335,6 @@ name = "Bone Arrow" result = /obj/item/ammo_casing/caseless/arrow/bone time = 5 - always_availible = FALSE reqs = list(/obj/item/stack/sheet/bone = 1, /obj/item/stack/sheet/sinew = 1, /obj/item/ammo_casing/caseless/arrow/ash = 1) @@ -347,7 +346,6 @@ result = /obj/item/ammo_casing/caseless/arrow/ash tools = list(TOOL_WELDER) time = 10 // 1.5 seconds minimum per actually worthwhile arrow excluding interface lag - always_availible = FALSE reqs = list(/obj/item/ammo_casing/caseless/arrow/wood = 1) category = CAT_WEAPONRY subcategory = CAT_AMMO diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index 4a9c558d39..433e57abbe 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -206,6 +206,9 @@ GLOBAL_LIST_EMPTY(uplinks) return data /datum/component/uplink/ui_act(action, params) + . = ..() + if(.) + return if(!active) return switch(action) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 897e2e7d71..fdd576067b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -71,6 +71,8 @@ ///What character we spawned in as- either at roundstart or latejoin, so we know for persistent scars if we ended as the same person or not var/mob/original_character + /// A lazy list of statuses to add next to this mind in the traitor panel + var/list/special_statuses /datum/mind/New(var/key) skill_holder = new(src) diff --git a/code/datums/mocking/client.dm b/code/datums/mocking/client.dm new file mode 100644 index 0000000000..4a665f828b --- /dev/null +++ b/code/datums/mocking/client.dm @@ -0,0 +1,7 @@ +/// This should match the interface of /client wherever necessary. +/datum/client_interface + /// Player preferences datum for the client + var/datum/preferences/prefs + + /// The view of the client, similar to /client/var/view. + var/view = "15x15" diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index 64b8692ccd..7a57e50364 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -331,6 +331,12 @@ name = "Space Diner" description = "Come, traveler of the bluespace planes. Sit, enjoy a drink and take one of the fair maidens for a night. The exit is the way you came in, via that teleporter thingy, but do remember to stay safe." +/datum/map_template/ruin/space/suspicious + id = "helterskelter" + suffix = "skelter.dmm" + name = "Helter Skelter" + description = "You're looking mighty suspicious. Why don't you go and take a seat over in that driver?" + //Space ruins for the station z /datum/map_template/ruin/spacenearstation prefix = "_maps/RandomRuins/SpaceRuinsStation/" diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index d6cde67198..b75676dbd2 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -194,6 +194,9 @@ C.adjustStaminaLoss(max(0, stamdmg_per_ds * diff)) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing. last_tick = world.time +/datum/status_effect/electrode/no_damage + stamdmg_per_ds = 0 + /datum/status_effect/electrode/no_combat_mode id = "tased_strong" movespeed_mod = /datum/movespeed_modifier/status_effect/tased/no_combat_mode diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm index 35e5a9a360..5c14968be4 100644 --- a/code/datums/weather/weather_types/radiation_storm.dm +++ b/code/datums/weather/weather_types/radiation_storm.dm @@ -18,7 +18,7 @@ area_type = /area protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer, - /area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle) + /area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/ruin/lavaland) target_trait = ZTRAIT_STATION immunity_type = "rad" diff --git a/code/game/area/areas/ruins/icemoon.dm b/code/game/area/areas/ruins/icemoon.dm index 6706a5faea..e993cf3bb1 100644 --- a/code/game/area/areas/ruins/icemoon.dm +++ b/code/game/area/areas/ruins/icemoon.dm @@ -1,9 +1,9 @@ // Icemoon Ruins -/area/ruin/unpowered/buried_library +/area/ruin/lavaland/unpowered/buried_library name = "Buried Library" icon_state = "dk_yellow" -/area/ruin/powered/bathhouse +/area/ruin/lavaland/powered/bathhouse name = "Bath House" icon_state = "dk_yellow" diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 66c4f8542b..a0cfcf2c04 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -1,90 +1,99 @@ //Lavaland Ruins -/area/ruin/powered/beach +/area/ruin/lavaland/unpowered + always_unpowered = FALSE + +/area/ruin/lavaland/unpowered/no_grav + has_gravity = FALSE + +/area/ruin/lavaland/powered + requires_power = FALSE + +/area/ruin/lavaland/powered/beach icon_state = "dk_yellow" -/area/ruin/powered/clownplanet +/area/ruin/lavaland/powered/clownplanet icon_state = "dk_yellow" -/area/ruin/powered/animal_hospital +/area/ruin/lavaland/powered/animal_hospital icon_state = "dk_yellow" -/area/ruin/powered/snow_biodome +/area/ruin/lavaland/powered/snow_biodome icon_state = "dk_yellow" -/area/ruin/powered/gluttony +/area/ruin/lavaland/powered/gluttony icon_state = "dk_yellow" -/area/ruin/powered/golem_ship +/area/ruin/lavaland/powered/golem_ship name = "Free Golem Ship" icon_state = "dk_yellow" -/area/ruin/powered/greed +/area/ruin/lavaland/powered/greed icon_state = "dk_yellow" -/area/ruin/unpowered/hierophant +/area/ruin/lavaland/unpowered/hierophant name = "Hierophant's Arena" icon_state = "dk_yellow" -/area/ruin/powered/pride +/area/ruin/lavaland/powered/pride icon_state = "dk_yellow" -/area/ruin/powered/seedvault +/area/ruin/lavaland/powered/seedvault icon_state = "dk_yellow" -/area/ruin/unpowered/elephant_graveyard +/area/ruin/lavaland/unpowered/elephant_graveyard name = "Elephant Graveyard" icon_state = "dk_yellow" -/area/ruin/powered/graveyard_shuttle +/area/ruin/lavaland/powered/graveyard_shuttle name = "Elephant Graveyard" icon_state = "green" -/area/ruin/unpowered/syndicate_lava_base +/area/ruin/lavaland/unpowered/syndicate_lava_base name = "Secret Base" icon_state = "dk_yellow" ambientsounds = HIGHSEC -/area/ruin/unpowered/syndicate_lava_base/engineering +/area/ruin/lavaland/unpowered/syndicate_lava_base/engineering name = "Syndicate Lavaland Engineering" -/area/ruin/unpowered/syndicate_lava_base/medbay +/area/ruin/lavaland/unpowered/syndicate_lava_base/medbay name = "Syndicate Lavaland Medbay" -/area/ruin/unpowered/syndicate_lava_base/arrivals +/area/ruin/lavaland/unpowered/syndicate_lava_base/arrivals name = "Syndicate Lavaland Arrivals" -/area/ruin/unpowered/syndicate_lava_base/bar +/area/ruin/lavaland/unpowered/syndicate_lava_base/bar name = "Syndicate Lavaland Bar" -/area/ruin/unpowered/syndicate_lava_base/main +/area/ruin/lavaland/unpowered/syndicate_lava_base/main name = "Syndicate Lavaland Primary Hallway" -/area/ruin/unpowered/syndicate_lava_base/cargo +/area/ruin/lavaland/unpowered/syndicate_lava_base/cargo name = "Syndicate Lavaland Cargo Bay" -/area/ruin/unpowered/syndicate_lava_base/chemistry +/area/ruin/lavaland/unpowered/syndicate_lava_base/chemistry name = "Syndicate Lavaland Chemistry" -/area/ruin/unpowered/syndicate_lava_base/virology +/area/ruin/lavaland/unpowered/syndicate_lava_base/virology name = "Syndicate Lavaland Virology" -/area/ruin/unpowered/syndicate_lava_base/testlab +/area/ruin/lavaland/unpowered/syndicate_lava_base/testlab name = "Syndicate Lavaland Experimentation Lab" -/area/ruin/unpowered/syndicate_lava_base/dormitories +/area/ruin/lavaland/unpowered/syndicate_lava_base/dormitories name = "Syndicate Lavaland Dormitories" -/area/ruin/unpowered/syndicate_lava_base/telecomms +/area/ruin/lavaland/unpowered/syndicate_lava_base/telecomms name = "Syndicate Lavaland Telecommunications" -/area/ruin/unpowered/syndicate_lava_base/circuits +/area/ruin/lavaland/unpowered/syndicate_lava_base/circuits name = "Syndicate Lavaland Circuit Lab" //Xeno Nest -/area/ruin/unpowered/xenonest +/area/ruin/lavaland/unpowered/xenonest name = "The Hive" always_unpowered = TRUE power_environ = FALSE @@ -93,5 +102,5 @@ poweralm = FALSE //ash walker nest -/area/ruin/unpowered/ash_walkers +/area/ruin/lavaland/unpowered/ash_walkers icon_state = "red" diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm index 8ff26d5125..e052f2e39f 100644 --- a/code/game/gamemodes/clock_cult/clock_cult.dm +++ b/code/game/gamemodes/clock_cult/clock_cult.dm @@ -196,7 +196,7 @@ Credit where due: ..() return 1 -/datum/game_mode/clockwork_cult/proc/greet_servant(mob/M) //Description of their role +/datum/game_mode/proc/greet_servant(mob/M) //Description of their role if(!M) return 0 to_chat(M, "You are a servant of Ratvar, the Clockwork Justiciar!") diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index c7fee7df96..be07a5c3b9 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -1,77 +1,45 @@ +#define RULESET_STOP_PROCESSING 1 -// -- Injection delays -GLOBAL_VAR_INIT(dynamic_latejoin_delay_min, (10 MINUTES)) -GLOBAL_VAR_INIT(dynamic_latejoin_delay_max, (30 MINUTES)) +#define FAKE_REPORT_CHANCE 8 +#define REPORT_NEG_DIVERGENCE -15 +#define REPORT_POS_DIVERGENCE 15 -GLOBAL_VAR_INIT(dynamic_midround_delay_min, (10 MINUTES)) -GLOBAL_VAR_INIT(dynamic_midround_delay_max, (30 MINUTES)) - -// -- Roundstart injection delays -GLOBAL_VAR_INIT(dynamic_first_latejoin_delay_min, (2 MINUTES)) -GLOBAL_VAR_INIT(dynamic_first_latejoin_delay_max, (30 MINUTES)) - -GLOBAL_VAR_INIT(dynamic_first_midround_delay_min, (20 MINUTES)) -GLOBAL_VAR_INIT(dynamic_first_midround_delay_max, (30 MINUTES)) - -// Are HIGHLANDER_RULESETs allowed to stack? +// Are HIGH_IMPACT_RULESETs allowed to stack? GLOBAL_VAR_INIT(dynamic_no_stacking, TRUE) -// A number between -5 and +5. -// A negative value will give a more peaceful round and -// a positive value will give a round with higher threat. -GLOBAL_VAR_INIT(dynamic_curve_centre, 0) -// A number between 0.5 and 4. -// Higher value will favour extreme rounds and -// lower value rounds closer to the average. -GLOBAL_VAR_INIT(dynamic_curve_width, 1.8) -// If enabled only picks a single starting rule and executes only autotraitor midround ruleset. -GLOBAL_VAR_INIT(dynamic_classic_secret, FALSE) -// How many roundstart players required for high population override to take effect. -GLOBAL_VAR_INIT(dynamic_high_pop_limit, 55) // If enabled does not accept or execute any rulesets. GLOBAL_VAR_INIT(dynamic_forced_extended, FALSE) -// How high threat is required for HIGHLANDER_RULESETs stacking. +// How high threat is required for HIGH_IMPACT_RULESETs stacking. // This is independent of dynamic_no_stacking. GLOBAL_VAR_INIT(dynamic_stacking_limit, 90) // List of forced roundstart rulesets. GLOBAL_LIST_EMPTY(dynamic_forced_roundstart_ruleset) // Forced threat level, setting this to zero or higher forces the roundstart threat to the value. GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) -// Storyteller picked by the voting. -GLOBAL_VAR_INIT(dynamic_storyteller_type, /datum/dynamic_storyteller/classic) -// Storyteller forced by admins during voting--will be used instead of above. -GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) /datum/game_mode/dynamic name = "dynamic mode" config_tag = "dynamic" - announce_span = "danger" announce_text = "Dynamic mode!" // This needs to be changed maybe - - reroll_friendly = FALSE; - // Current storyteller - var/datum/dynamic_storyteller/storyteller = null // Threat logging vars - /// Starting threat level, for things that increase it but can bring it back down. - var/initial_threat_level = 0 - /// Target threat level right now. Antags will try to keep the round at this level. + /// The "threat cap", threat shouldn't normally go above this and is used in ruleset calculations var/threat_level = 0 - /// The current antag threat. Recalculated every time a ruletype starts or ends. - var/threat = 0 - /// Things that cause a rolling threat adjustment to be displayed at roundend. - var/list/threat_tallies = list() + + /// Set at the beginning of the round. Spent by the mode to "purchase" rules. Everything else goes in the postround budget. + var/round_start_budget = 0 + + /// Set at the beginning of the round. Spent by midrounds and latejoins. + var/mid_round_budget = 0 + + /// The initial round start budget for logging purposes, set once at the beginning of the round. + var/initial_round_start_budget = 0 + /// Running information about the threat. Can store text or datum entries. var/list/threat_log = list() - /// As above, but with info such as refunds. - var/list/threat_log_verbose = list() - /// List of roundstart rules used for selecting the rules. - var/list/roundstart_rules = list() - /// List of minor roundstart rules used for selecting the rules. - var/list/minor_rules = list() /// List of latejoin rules used for selecting the rules. - var/list/latejoin_rules = list() + var/list/latejoin_rules /// List of midround rules used for selecting the rules. - var/list/midround_rules = list() + var/list/midround_rules /** # Pop range per requirement. * If the value is five the range is: * 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+ @@ -80,21 +48,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) * If it is seven the range is: * 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+ */ - var/pop_per_requirement = 9 - /// The requirement used for checking if a second rule should be selected. Index based on pop_per_requirement. - var/list/second_rule_req = list(100, 100, 80, 70, 60, 50, 30, 20, 10, 0) - /// The probability for a second ruleset with index being every ten threat. - var/list/second_rule_prob = list(0,0,60,80,80,80,100,100,100,100) - /// The requirement used for checking if a third rule should be selected. Index based on pop_per_requirement. - var/list/third_rule_req = list(100, 100, 100, 90, 80, 70, 60, 50, 40, 30) - /// The probability for a third ruleset with index being every ten threat. - var/list/third_rule_prob = list(0,0,0,0,60,60,80,90,100,100) - /// Threat requirement for a second ruleset when high pop override is in effect. - var/high_pop_second_rule_req = 40 - /// Threat requirement for a third ruleset when high pop override is in effect. - var/high_pop_third_rule_req = 60 - /// The amount of additional rulesets waiting to be picked. - var/extra_rulesets_amount = 0 + var/pop_per_requirement = 6 /// Number of players who were ready on roundstart. var/roundstart_pop_ready = 0 /// List of candidates used on roundstart rulesets. @@ -103,68 +57,120 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) var/list/current_rules = list() /// List of executed rulesets. var/list/executed_rules = list() - /// Associative list of current players, in order: living players, living antagonists, dead players and observers. - var/list/list/current_players = list(CURRENT_LIVING_PLAYERS, CURRENT_LIVING_ANTAGS, CURRENT_DEAD_PLAYERS, CURRENT_OBSERVERS) - /// When world.time is over this number the mode tries to inject a latejoin ruleset. - var/latejoin_injection_cooldown = 0 - /// When world.time is over this number the mode tries to inject a midround ruleset. - var/midround_injection_cooldown = 0 /// When TRUE GetInjectionChance returns 100. var/forced_injection = FALSE /// Forced ruleset to be executed for the next latejoin. var/datum/dynamic_ruleset/latejoin/forced_latejoin_rule = null - /// When current_players was updated last time. - var/pop_last_updated = 0 /// How many percent of the rounds are more peaceful. var/peaceful_percentage = 50 - /// If a highlander executed. No other highlander rulesets will be run. - var/highlander_executed = FALSE - /// If a only ruleset has been executed. No other rulesets will be run. + /// If a high impact ruleset was executed. Only one will run at a time in most circumstances. + var/high_impact_ruleset_executed = FALSE + /// If a only ruleset has been executed. var/only_ruleset_executed = FALSE - /// If the first picked ruleset was a minor ruleset. Minor antagonists will be weighted higher. - var/minor_ruleset_start = FALSE - /// Antags rolled by rules so far, to keep track of and discourage scaling past a certain ratio of crew/antags especially on lowpop. - var/antags_rolled = 0 - // Arbitrary threat addition, for fudging purposes. - var/added_threat = 50 + /// Dynamic configuration, loaded on pre_setup + var/list/configuration = null -/datum/game_mode/dynamic/New() // i have NO IDEA if this is the proper way to do this. - ..() - pop_per_requirement = CONFIG_GET(number/dynamic_pop_per_requirement) - second_rule_req = CONFIG_GET(number_list/dynamic_second_rule_requirements) - third_rule_req = CONFIG_GET(number_list/dynamic_third_rule_requirements) - if(second_rule_req.len<10) - second_rule_req = list(101, 101, 101, 101, 100, 90, 80, 70, 60, 50) - if(third_rule_req.len<10) - third_rule_req = list(101, 101, 101, 101, 101, 100, 90, 80, 70, 60) - high_pop_second_rule_req = CONFIG_GET(number/dynamic_second_rule_high_pop_requirement) - high_pop_third_rule_req = CONFIG_GET(number/dynamic_third_rule_high_pop_requirement) - added_threat = CONFIG_GET(number/dynamic_threat_baseline) - GLOB.dynamic_high_pop_limit = CONFIG_GET(number/dynamic_high_pop_limit) - GLOB.dynamic_latejoin_delay_min = CONFIG_GET(number/dynamic_latejoin_delay_min)*600 - GLOB.dynamic_latejoin_delay_max = CONFIG_GET(number/dynamic_latejoin_delay_max)*600 - GLOB.dynamic_midround_delay_min = CONFIG_GET(number/dynamic_midround_delay_min)*600 - GLOB.dynamic_midround_delay_max = CONFIG_GET(number/dynamic_midround_delay_max)*600 - GLOB.dynamic_first_latejoin_delay_min = CONFIG_GET(number/dynamic_first_latejoin_delay_min)*600 - GLOB.dynamic_first_latejoin_delay_max = CONFIG_GET(number/dynamic_first_latejoin_delay_max)*600 - GLOB.dynamic_first_midround_delay_min = CONFIG_GET(number/dynamic_first_midround_delay_min)*600 - GLOB.dynamic_first_midround_delay_max = CONFIG_GET(number/dynamic_first_midround_delay_max)*600 + /// When world.time is over this number the mode tries to inject a latejoin ruleset. + var/latejoin_injection_cooldown = 0 + + /// The minimum time the recurring latejoin ruleset timer is allowed to be. + var/latejoin_delay_min = (5 MINUTES) + + /// The maximum time the recurring latejoin ruleset timer is allowed to be. + var/latejoin_delay_max = (25 MINUTES) + + /// When world.time is over this number the mode tries to inject a midround ruleset. + var/midround_injection_cooldown = 0 + + /// The minimum time the recurring midround ruleset timer is allowed to be. + var/midround_delay_min = (15 MINUTES) + + /// The maximum time the recurring midround ruleset timer is allowed to be. + var/midround_delay_max = (35 MINUTES) + + /// If above this threat, increase the chance of injection + var/higher_injection_chance_minimum_threat = 70 + + /// The chance of injection increase when above higher_injection_chance_minimum_threat + var/higher_injection_chance = 15 + + /// If below this threat, decrease the chance of injection + var/lower_injection_chance_minimum_threat = 10 + + /// The chance of injection decrease when above lower_injection_chance_minimum_threat + var/lower_injection_chance = 15 + + /// A number between -5 and +5. + /// A negative value will give a more peaceful round and + /// a positive value will give a round with higher threat. + var/threat_curve_centre = 0 + + /// A number between 0.5 and 4. + /// Higher value will favour extreme rounds and + /// lower value rounds closer to the average. + var/threat_curve_width = 1.8 + + /// A number between -5 and +5. + /// Equivalent to threat_curve_centre, but for the budget split. + /// A negative value will weigh towards midround rulesets, and a positive + /// value will weight towards roundstart ones. + var/roundstart_split_curve_centre = 1 + + /// A number between 0.5 and 4. + /// Equivalent to threat_curve_width, but for the budget split. + /// Higher value will favour more variance in splits and + /// lower value rounds closer to the average. + var/roundstart_split_curve_width = 1.8 + + /// The minimum amount of time for antag random events to be hijacked. + var/random_event_hijack_minimum = 10 MINUTES + + /// The maximum amount of time for antag random events to be hijacked. + var/random_event_hijack_maximum = 18 MINUTES + + /// A list of recorded "snapshots" of the round, stored in the dynamic.json log + var/list/datum/dynamic_snapshot/snapshots + + /// The time when the last midround injection was attempted, whether or not it was successful + var/last_midround_injection_attempt = 0 + + /// The amount to inject when a round event is hijacked + var/hijacked_random_event_injection_chance = 50 + + /// Whether or not a random event has been hijacked this midround cycle + var/random_event_hijacked = HIJACKED_NOTHING + + /// The timer ID for the cancellable midround rule injection + var/midround_injection_timer_id + + /// The last drafted midround rulesets (without the current one included). + /// Used for choosing different midround injections. + var/list/current_midround_rulesets + + /// The amount of threat shown on the piece of paper. + /// Can differ from the actual threat amount. + var/shown_threat /datum/game_mode/dynamic/admin_panel() var/list/dat = list("Game Mode Panel

Game Mode Panel

") - dat += "Dynamic Mode \[VV\]\[Refresh\]
" - dat += "Target threat: [threat_level]
" + dat += "Dynamic Mode \[VV\] \[Refresh\]
" + dat += "Threat Level: [threat_level]
" + dat += "Budgets (Roundstart/Midrounds): [initial_round_start_budget]/[threat_level - initial_round_start_budget]
" - dat += "Current threat: [threat] \[Adjust\] \[View Log\]
" + dat += "Midround budget to spend: [mid_round_budget] \[Adjust\] \[View Log\]
" dat += "
" - dat += "Storyteller: [storyteller.name]
" - dat += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].
" + dat += "Parameters: centre = [threat_curve_centre] ; width = [threat_curve_width].
" + dat += "Split parameters: centre = [roundstart_split_curve_centre] ; width = [roundstart_split_curve_width].
" dat += "On average, [peaceful_percentage]% of the rounds are more peaceful.
" dat += "Forced extended: [GLOB.dynamic_forced_extended ? "On" : "Off"]
" - dat += "Classic secret (only autotraitor): [GLOB.dynamic_classic_secret ? "On" : "Off"]
" dat += "No stacking (only one round-ender): [GLOB.dynamic_no_stacking ? "On" : "Off"]
" dat += "Stacking limit: [GLOB.dynamic_stacking_limit] \[Adjust\]" dat += "
" + dat += "\[Force Next Latejoin Ruleset\]
" + if (forced_latejoin_rule) + dat += {"-> [forced_latejoin_rule.name] <-
"} + dat += "\[Execute Midround Ruleset\]
" + dat += "
" dat += "Executed rulesets: " if (executed_rules.len > 0) dat += "
" @@ -172,7 +178,7 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) dat += "[DR.ruletype] - [DR.name]
" else dat += "none.
" - dat += "
Injection Timers:
" + dat += "
Injection Timers: ([get_injection_chance(dry_run = TRUE)]% latejoin chance, [get_midround_injection_chance(dry_run = TRUE)]% midround chance)
" dat += "Latejoin: [(latejoin_injection_cooldown-world.time)>60*10 ? "[round((latejoin_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(latejoin_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" dat += "Midround: [(midround_injection_cooldown-world.time)>60*10 ? "[round((midround_injection_cooldown-world.time)/60/10,0.1)] minutes" : "[(midround_injection_cooldown-world.time)/10] seconds"] \[Now!\]
" usr << browse(dat.Join(), "window=gamemode_panel;size=500x500") @@ -188,92 +194,89 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) GLOB.dynamic_forced_extended = !GLOB.dynamic_forced_extended else if (href_list["no_stacking"]) GLOB.dynamic_no_stacking = !GLOB.dynamic_no_stacking - else if (href_list["classic_secret"]) - GLOB.dynamic_classic_secret = !GLOB.dynamic_classic_secret else if (href_list["adjustthreat"]) var/threatadd = input("Specify how much threat to add (negative to subtract). This can inflate the threat level.", "Adjust Threat", 0) as null|num if(!threatadd) return - create_threat(threatadd) + if(threatadd > 0) + create_threat(threatadd) + threat_log += "[worldtime2text()]: [key_name(usr)] increased threat by [threatadd] threat." + else + spend_midround_budget(-threatadd) + threat_log += "[worldtime2text()]: [key_name(usr)] decreased threat by [-threatadd] threat." else if (href_list["injectlate"]) latejoin_injection_cooldown = 0 forced_injection = TRUE - message_admins("[key_name(usr)] forced a latejoin injection.", 1) + message_admins("[key_name(usr)] forced a latejoin injection.") else if (href_list["injectmid"]) midround_injection_cooldown = 0 forced_injection = TRUE - message_admins("[key_name(usr)] forced a midround injection.", 1) + message_admins("[key_name(usr)] forced a midround injection.") else if (href_list["threatlog"]) show_threatlog(usr) else if (href_list["stacking_limit"]) GLOB.dynamic_stacking_limit = input(usr,"Change the threat limit at which round-endings rulesets will start to stack.", "Change stacking limit", null) as num - else if (href_list["change_storyteller"]) - var/list/choices = list() - for(var/T in config.storyteller_cache) - var/datum/dynamic_storyteller/S = T - choices[initial(S.name)] = T - var/selected_storyteller = choices[input("Select storyteller:", "Storyteller", storyteller.name) as null|anything in choices] - storyteller = new selected_storyteller - storyteller.on_start() - message_admins("[key_name(usr)] changed the storyteller to [storyteller].", 1) + else if(href_list["force_latejoin_rule"]) + var/added_rule = input(usr,"What ruleset do you want to force upon the next latejoiner? This will bypass threat level and population restrictions.", "Rigging Latejoin", null) as null|anything in sortNames(init_rulesets(/datum/dynamic_ruleset/latejoin)) + if (!added_rule) + return + forced_latejoin_rule = added_rule + log_admin("[key_name(usr)] set [added_rule] to proc on the next latejoin.") + message_admins("[key_name(usr)] set [added_rule] to proc on the next latejoin.") + else if(href_list["clear_forced_latejoin"]) + forced_latejoin_rule = null + log_admin("[key_name(usr)] cleared the forced latejoin ruleset.") + message_admins("[key_name(usr)] cleared the forced latejoin ruleset.") + else if(href_list["force_midround_rule"]) + var/added_rule = input(usr,"What ruleset do you want to force right now? This will bypass threat level and population restrictions.", "Execute Ruleset", null) as null|anything in sortNames(init_rulesets(/datum/dynamic_ruleset/midround)) + if (!added_rule) + return + log_admin("[key_name(usr)] executed the [added_rule] ruleset.") + message_admins("[key_name(usr)] executed the [added_rule] ruleset.") + picking_specific_rule(added_rule, TRUE) + else if(href_list["cancelmidround"]) + admin_cancel_midround(usr, href_list["cancelmidround"]) + return + else if (href_list["differentmidround"]) + admin_different_midround(usr, href_list["differentmidround"]) + return admin_panel() // Refreshes the window -// Checks if there are HIGHLANDER_RULESETs and calls the rule's round_result() proc +// Checks if there are HIGH_IMPACT_RULESETs and calls the rule's round_result() proc /datum/game_mode/dynamic/set_round_result() + // If it got to this part, just pick one high impact ruleset if it exists for(var/datum/dynamic_ruleset/rule in executed_rules) - if(rule.flags & HIGHLANDER_RULESET) - if(rule.check_finished()) // Only the rule that actually finished the round sets round result. - return rule.round_result() - // If it got to this part, just pick one highlander if it exists - for(var/datum/dynamic_ruleset/rule in executed_rules) - if(rule.flags & HIGHLANDER_RULESET) + if(rule.flags & HIGH_IMPACT_RULESET) return rule.round_result() return ..() -/datum/game_mode/dynamic/generate_report() - return "Mysterious signals that demonstrate strange dynamics have been detected in your sector. Watch out for oddities." - /datum/game_mode/dynamic/send_intercept() . = "Central Command Status Summary
" - switch(round(threat_level)) - if(-INFINITY to 20) - . += "Peaceful Waypoint
" - . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive. However, even deep in our territory there may be subversive elements, especially for such a high-value target as your station. Keep an eye out, but don't expect much trouble." - set_security_level(SEC_LEVEL_GREEN) - station_goals.len = 0 - for(var/T in subtypesof(/datum/station_goal)) - var/datum/station_goal/G = new T - if(!(G in station_goals)) - station_goals += G - if(21 to 79) - var/perc_green = 100-round(100*((threat_level-21)/(79-21))) - if(prob(perc_green)) + switch(round(shown_threat)) + if(0 to 19) + if(!current_players[CURRENT_LIVING_ANTAGS].len) + . += "Peaceful Waypoint
" + . += "Your station orbits deep within controlled, core-sector systems and serves as a waypoint for routine traffic through Nanotrasen's trade empire. Due to the combination of high security, interstellar traffic, and low strategic value, it makes any direct threat of violence unlikely. Your primary enemies will be incompetence and bored crewmen: try to organize team-building events to keep staffers interested and productive." + else . += "Core Territory
" . += "Your station orbits within reliably mundane, secure space. Although Nanotrasen has a firm grip on security in your region, the valuable resources and strategic position aboard your station make it a potential target for infiltrations. Monitor crew for non-loyal behavior, but expect a relatively tame shift free of large-scale destruction. We expect great things from your station." - set_security_level(SEC_LEVEL_GREEN) - station_goals.len = 0 - for(var/T in subtypesof(/datum/station_goal)) - var/datum/station_goal/G = new T - if(!(G in station_goals)) - station_goals += G - else if(prob(perc_green)) - . += "Contested System
" - . += "Your station's orbit passes along the edge of Nanotrasen's sphere of influence. While subversive elements remain the most likely threat against your station, hostile organizations are bolder here, where our grip is weaker. Exercise increased caution against elite Syndicate strike forces, or Executives forbid, some kind of ill-conceived unionizing attempt." - set_security_level(SEC_LEVEL_BLUE) - else - . += "Uncharted Space
" - . += "Congratulations and thank you for participating in the NT 'Frontier' space program! Your station is actively orbiting a high value system far from the nearest support stations. Little is known about your region of space, and the opportunity to encounter the unknown invites greater glory. You are encouraged to elevate security as necessary to protect Nanotrasen assets." - set_security_level(SEC_LEVEL_BLUE) - if(80 to 95) + if(20 to 39) + . += "Anomalous Exogeology
" + . += "Although your station lies within what is generally considered Nanotrasen-controlled space, the course of its orbit has caused it to cross unusually close to exogeological features with anomalous readings. Although these features offer opportunities for our research department, it is known that these little understood readings are often correlated with increased activity from competing interstellar organizations and individuals, among them the Wizard Federation and Cult of the Geometer of Blood - all known competitors for Anomaly Type B sites. Exercise elevated caution." + if(40 to 65) + . += "Contested System
" + . += "Your station's orbit passes along the edge of Nanotrasen's sphere of influence. While subversive elements remain the most likely threat against your station, hostile organizations are bolder here, where our grip is weaker. Exercise increased caution against elite Syndicate strike forces, or Executives forbid, some kind of ill-conceived unionizing attempt." + if(66 to 79) + . += "Uncharted Space
" + . += "Congratulations and thank you for participating in the NT 'Frontier' space program! Your station is actively orbiting a high value system far from the nearest support stations. Little is known about your region of space, and the opportunity to encounter the unknown invites greater glory. You are encouraged to elevate security as necessary to protect Nanotrasen assets." + if(80 to 99) . += "Black Orbit
" . += "As part of a mandatory security protocol, we are required to inform you that as a result of your orbital pattern directly behind an astrological body (oriented from our nearest observatory), your station will be under decreased monitoring and support. It is anticipated that your extreme location and decreased surveillance could pose security risks. Avoid unnecessary risks and attempt to keep your station in one piece." - set_security_level(SEC_LEVEL_AMBER) - if(96 to INFINITY) + if(100) . += "Impending Doom
" . += "Your station is somehow in the middle of hostile territory, in clear view of any enemy of the corporation. Your likelihood to survive is low, and station destruction is expected and almost inevitable. Secure any sensitive material and neutralize any enemy you will come across. It is important that you at least try to maintain the station.
" . += "Good luck." - set_security_level(SEC_LEVEL_RED) if(station_goals.len) . += "
Special Orders for [station_name()]:" @@ -282,340 +285,268 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) . += G.get_report() print_command_report(., "Central Command Status Summary", announce=FALSE) - if(GLOB.security_level >= SEC_LEVEL_BLUE) - priority_announce("A summary has been copied and printed to all communications consoles.", "Security level elevated.", "intercept") - else - priority_announce("Thanks to the tireless efforts of our security and intelligence divisions, there are currently no likely threats to [station_name()]. All station construction projects have been authorized. Have a secure shift!", "Security Report", "commandreport") - -// Yes, this is copy pasted from game_mode -/datum/game_mode/dynamic/check_finished(force_ending) - if(!SSticker.setup_done || !gamemode_ready) - return FALSE - if(replacementmode && round_converted == 2) - return replacementmode.check_finished() - if(SSshuttle.emergency && (SSshuttle.emergency.mode == SHUTTLE_ENDGAME)) - return TRUE - if(station_was_nuked) - return TRUE - if(force_ending) - return TRUE - for(var/datum/dynamic_ruleset/rule in executed_rules) - if(rule.flags & HIGHLANDER_RULESET) - return rule.check_finished() - -/datum/game_mode/dynamic/proc/log_threat(var/log_str,var/verbose = FALSE) - threat_log_verbose += ("[worldtime2text()]: "+log_str) - SSblackbox.record_feedback("tally","dynamic_threat_log",1,log_str) - if(!verbose) - threat_log += log_str + priority_announce("A summary has been copied and printed to all communications consoles.", "Enemy communication intercepted. Security level elevated.", "intercept") + if(GLOB.security_level < SEC_LEVEL_BLUE) + set_security_level(SEC_LEVEL_BLUE) /datum/game_mode/dynamic/proc/show_threatlog(mob/admin) if(!SSticker.HasRoundStarted()) - alert("The round hasn't started yet!") + tgui_alert(usr, "The round hasn't started yet!") return if(!check_rights(R_ADMIN)) return - var/list/out = list("Threat LogThreat Log
Starting Threat: [initial_threat_level]
") + var/list/out = list("Threat LogThreat Log
Starting Threat: [threat_level]
") - for(var/entry in threat_log_verbose) + for(var/entry in threat_log) if(istext(entry)) out += "[entry]
" - out += "Remaining threat/threat_level: [threat]/[threat_level]" + out += "Remaining threat/threat_level: [mid_round_budget]/[threat_level]" usr << browse(out.Join(), "window=threatlog;size=700x500") /// Generates the threat level using lorentz distribution and assigns peaceful_percentage. /datum/game_mode/dynamic/proc/generate_threat() - var/relative_threat = LORENTZ_DISTRIBUTION(GLOB.dynamic_curve_centre, GLOB.dynamic_curve_width) - threat_level = round(lorentz_to_threat(relative_threat), 0.1) + var/relative_threat = LORENTZ_DISTRIBUTION(threat_curve_centre, threat_curve_width) + threat_level = round(lorentz_to_amount(relative_threat), 0.1) - peaceful_percentage = round(LORENTZ_CUMULATIVE_DISTRIBUTION(relative_threat, GLOB.dynamic_curve_centre, GLOB.dynamic_curve_width), 0.01)*100 + peaceful_percentage = round(LORENTZ_CUMULATIVE_DISTRIBUTION(relative_threat, threat_curve_centre, threat_curve_width), 0.01)*100 SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Initial threat level") - SSblackbox.record_feedback("tally","dynamic_threat",GLOB.dynamic_curve_centre,"Curve centre") - SSblackbox.record_feedback("tally","dynamic_threat",GLOB.dynamic_curve_width,"Curve width") - SSblackbox.record_feedback("tally","dynamic_threat",peaceful_percentage,"Percent of same-vote rounds that are more peaceful") + SSblackbox.record_feedback("tally","dynamic_threat",threat_curve_centre,"Curve centre") + SSblackbox.record_feedback("tally","dynamic_threat",threat_curve_width,"Curve width") + SSblackbox.record_feedback("tally","dynamic_threat",peaceful_percentage,"Percent of same-center rounds that are more peaceful") -/datum/game_mode/dynamic/can_start() - if(GLOB.dynamic_forced_storyteller) - GLOB.dynamic_storyteller_type = GLOB.dynamic_forced_storyteller - storyteller = new GLOB.dynamic_storyteller_type // this is where all the initialization happens - storyteller.on_start() - SSblackbox.record_feedback("text","dynamic_storyteller",1,storyteller.name) - message_admins("Dynamic mode parameters for the round:\n\ - Storyteller is [storyteller.name].\n\ - Centre is [GLOB.dynamic_curve_centre], Width is [GLOB.dynamic_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].\n\ - Stacking limit is [GLOB.dynamic_stacking_limit], Classic secret is [GLOB.dynamic_classic_secret ? "Enabled" : "Disabled"], High population limit is [GLOB.dynamic_high_pop_limit].") +/// Generates the midround and roundstart budgets +/datum/game_mode/dynamic/proc/generate_budgets() + var/relative_round_start_budget_scale = LORENTZ_DISTRIBUTION(roundstart_split_curve_centre, roundstart_split_curve_width) + round_start_budget = round((lorentz_to_amount(relative_round_start_budget_scale) / 100) * threat_level, 0.1) + initial_round_start_budget = round_start_budget + mid_round_budget = threat_level - round_start_budget + +/datum/game_mode/dynamic/proc/setup_parameters() log_game("DYNAMIC: Dynamic mode parameters for the round:") - log_game("DYNAMIC: Centre is [GLOB.dynamic_curve_centre], Width is [GLOB.dynamic_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].") - log_game("DYNAMIC: Stacking limit is [GLOB.dynamic_stacking_limit], Classic secret is [GLOB.dynamic_classic_secret ? "Enabled" : "Disabled"], High population limit is [GLOB.dynamic_high_pop_limit].") + log_game("DYNAMIC: Centre is [threat_curve_centre], Width is [threat_curve_width], Forced extended is [GLOB.dynamic_forced_extended ? "Enabled" : "Disabled"], No stacking is [GLOB.dynamic_no_stacking ? "Enabled" : "Disabled"].") + log_game("DYNAMIC: Stacking limit is [GLOB.dynamic_stacking_limit].") if(GLOB.dynamic_forced_threat_level >= 0) threat_level = round(GLOB.dynamic_forced_threat_level, 0.1) - threat = threat_level - SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Threat level (forced)") else generate_threat() - - storyteller.start_injection_cooldowns() - log_game("DYNAMIC: Dynamic Mode initialized with a Threat Level of... [threat_level]!") - initial_threat_level = threat_level + generate_budgets() + set_cooldowns() + log_game("DYNAMIC: Dynamic Mode initialized with a Threat Level of... [threat_level]! ([round_start_budget] round start budget)") return TRUE +/datum/game_mode/dynamic/proc/setup_shown_threat() + if (prob(FAKE_REPORT_CHANCE)) + shown_threat = rand(1, 100) + else + shown_threat = clamp(threat_level + rand(REPORT_NEG_DIVERGENCE, REPORT_POS_DIVERGENCE), 0, 100) + +/datum/game_mode/dynamic/proc/set_cooldowns() + var/latejoin_injection_cooldown_middle = 0.5*(latejoin_delay_max + latejoin_delay_min) + latejoin_injection_cooldown = round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), latejoin_delay_min, latejoin_delay_max)) + world.time + + var/midround_injection_cooldown_middle = 0.5*(midround_delay_max + midround_delay_min) + midround_injection_cooldown = round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), midround_delay_min, midround_delay_max)) + world.time + /datum/game_mode/dynamic/pre_setup() - for (var/rule in subtypesof(/datum/dynamic_ruleset)) - var/datum/dynamic_ruleset/ruleset = new rule() - // Simple check if the ruleset should be added to the lists. - if(ruleset.name == "") - continue - switch(ruleset.ruletype) - if("Minor") - minor_rules += ruleset - if("Roundstart") - roundstart_rules += ruleset - if ("Latejoin") - latejoin_rules += ruleset - if ("Midround") - if (ruleset.weight) - midround_rules += ruleset - for(var/mob/dead/new_player/player in GLOB.player_list) - if(player.ready == PLAYER_READY_TO_PLAY && player.mind) + if(CONFIG_GET(flag/dynamic_config_enabled)) + var/json_file = file("[global.config.directory]/dynamic.json") + if(fexists(json_file)) + configuration = json_decode(file2text(json_file)) + if(configuration["Dynamic"]) + for(var/variable in configuration["Dynamic"]) + if(!(variable in vars)) + stack_trace("Invalid dynamic configuration variable [variable] in game mode variable changes.") + continue + vars[variable] = configuration["Dynamic"][variable] + + setup_parameters() + setup_hijacking() + setup_shown_threat() + setup_rulesets() + + //We do this here instead of with the midround rulesets and such because these rules can hang refs + //To new_player and such, and we want the datums to just free when the roundstart work is done + var/list/roundstart_rules = init_rulesets(/datum/dynamic_ruleset/roundstart) + + for(var/i in GLOB.new_player_list) + var/mob/dead/new_player/player = i + if(player.ready == PLAYER_READY_TO_PLAY && player.mind && player.check_preferences()) roundstart_pop_ready++ candidates.Add(player) log_game("DYNAMIC: Listing [roundstart_rules.len] round start rulesets, and [candidates.len] players ready.") if (candidates.len <= 0) log_game("DYNAMIC: [candidates.len] candidates.") return TRUE - if (roundstart_rules.len <= 0) - log_game("DYNAMIC: [roundstart_rules.len] rules.") - return TRUE SSblackbox.record_feedback("tally","dynamic",roundstart_rules.len,"Roundstart rules considered") SSblackbox.record_feedback("tally","dynamic",roundstart_pop_ready,"Players readied up") + if(GLOB.dynamic_forced_roundstart_ruleset.len > 0) rigged_roundstart() else - roundstart() - if(minor_ruleset_start) - log_game("DYNAMIC: Starting a minor ruleset round.") - else - var/starting_rulesets = "" - for (var/datum/dynamic_ruleset/roundstart/DR in executed_rules) - starting_rulesets += "[DR.name], " - log_game("DYNAMIC: Picked the following roundstart rules: [starting_rulesets]") + roundstart(roundstart_rules) + + log_game("DYNAMIC: [round_start_budget] round start budget was left, donating it to midrounds.") + threat_log += "[worldtime2text()]: [round_start_budget] round start budget was left, donating it to midrounds." + mid_round_budget += round_start_budget + + var/starting_rulesets = "" + for (var/datum/dynamic_ruleset/roundstart/DR in executed_rules) + starting_rulesets += "[DR.name], " + log_game("DYNAMIC: Picked the following roundstart rules: [starting_rulesets]") candidates.Cut() return TRUE /datum/game_mode/dynamic/post_setup(report) - update_playercounts() - if(minor_ruleset_start) - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/minor_roundstart),rand(1 MINUTES,3 MINUTES)) - else - for(var/datum/dynamic_ruleset/roundstart/rule in executed_rules) - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_roundstart_rule, rule), rule.delay) + for(var/datum/dynamic_ruleset/roundstart/rule in executed_rules) + rule.candidates.Cut() // The rule should not use candidates at this point as they all are null. + addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_roundstart_rule, rule), rule.delay) + ..() -/datum/game_mode/dynamic/proc/minor_roundstart() - message_admins("Dynamic beginning minor antag roundstart rolls.") - var/list/potential_minor_rulesets = storyteller.minor_rule_draft() - var/iterations = 0 - var/num_rulesets_executed = 0 - while(threat < threat_level && potential_minor_rulesets.len && (!CHECK_TICK || iterations < 100)) - var/datum/dynamic_ruleset/minor/rule = pickweight(potential_minor_rulesets) - rule.candidates = current_players[CURRENT_LIVING_PLAYERS].Copy() - rule.trim_candidates() - if(!check_blocking(rule.blocking_rules, executed_rules) && rule.ready()) - rule.execute() - executed_rules |= rule - log_threat("[rule.ruletype] - [rule.name] [rule.cost] threat", verbose = TRUE) - num_rulesets_executed++ - else - potential_minor_rulesets -= rule - update_playercounts() - iterations++ - message_admins("Minor antag roundstart rolls completed, with [iterations] rolls done and [num_rulesets_executed] antags or antag teams made.") - log_game("DYNAMIC: Minor antag roundstart made [num_rulesets_executed] antags or antag teams.") +/// Initializes the internal ruleset variables +/datum/game_mode/dynamic/proc/setup_rulesets() + midround_rules = init_rulesets(/datum/dynamic_ruleset/midround) + latejoin_rules = init_rulesets(/datum/dynamic_ruleset/latejoin) +/// Returns a list of the provided rulesets. +/// Configures their variables to match config. +/datum/game_mode/dynamic/proc/init_rulesets(ruleset_subtype) + var/list/rulesets = list() + + for (var/datum/dynamic_ruleset/ruleset_type as anything in subtypesof(ruleset_subtype)) + if (initial(ruleset_type.name) == "") + continue + + if (initial(ruleset_type.weight) == 0) + continue + + var/ruleset = new ruleset_type + configure_ruleset(ruleset) + rulesets += ruleset + + return rulesets /// A simple roundstart proc used when dynamic_forced_roundstart_ruleset has rules in it. /datum/game_mode/dynamic/proc/rigged_roundstart() message_admins("[GLOB.dynamic_forced_roundstart_ruleset.len] rulesets being forced. Will now attempt to draft players for them.") log_game("DYNAMIC: [GLOB.dynamic_forced_roundstart_ruleset.len] rulesets being forced. Will now attempt to draft players for them.") for (var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset) + configure_ruleset(rule) message_admins("Drafting players for forced ruleset [rule.name].") log_game("DYNAMIC: Drafting players for forced ruleset [rule.name].") rule.mode = src - rule.acceptable(roundstart_pop_ready, threat_level) // Assigns some vars in the modes, running it here for consistency + rule.acceptable(roundstart_pop_ready, threat_level) // Assigns some vars in the modes, running it here for consistency rule.candidates = candidates.Copy() rule.trim_candidates() - if (rule.ready(TRUE)) - picking_roundstart_rule(list(rule), forced = TRUE) + if (rule.ready(roundstart_pop_ready, TRUE)) + var/cost = rule.cost + var/scaled_times = 0 + if (rule.scaling_cost) + scaled_times = round(max(round_start_budget - cost, 0) / rule.scaling_cost) + cost += rule.scaling_cost * scaled_times -/datum/game_mode/dynamic/proc/roundstart() + spend_roundstart_budget(picking_roundstart_rule(rule, scaled_times, forced = TRUE)) + +/datum/game_mode/dynamic/proc/roundstart(list/roundstart_rules) if (GLOB.dynamic_forced_extended) log_game("DYNAMIC: Starting a round of forced extended.") return TRUE - if(prob(storyteller.minor_start_chance())) - minor_ruleset_start = TRUE - message_admins("Dynamic has initialized a minor antag start. Antags will be assigned in 1-5 minutes.") - log_game("DYNAMIC: Minor start initialized.") - return TRUE - var/list/drafted_rules = storyteller.roundstart_draft() - if(!drafted_rules.len) - message_admins("No roundstart antags drafted! Falling back to minor ruleset start.") - log_game("DYNAMIC: No roundstart antags drafted! Falling back to minor ruleset start.") - minor_ruleset_start = TRUE - return FALSE - var/indice_pop = min(10,round(roundstart_pop_ready/pop_per_requirement)+1) - extra_rulesets_amount = 0 - if (GLOB.dynamic_classic_secret) - extra_rulesets_amount = 0 - else - if (roundstart_pop_ready > GLOB.dynamic_high_pop_limit) - message_admins("High Population Override is in effect! Threat Level will have more impact on which roles will appear, and player population less.") - log_game("DYNAMIC: High Population Override is in effect! Threat Level will have more impact on which roles will appear, and player population less.") - if (threat_level > high_pop_second_rule_req) - extra_rulesets_amount++ - if (threat_level > high_pop_third_rule_req) - extra_rulesets_amount++ - else - var/threat_indice = min(10, max(round(threat_level ? threat_level/10 : 1), 1)) // 0-9 threat = 1, 10-19 threat = 2 ... - if (threat_level >= second_rule_req[indice_pop] && prob(second_rule_prob[threat_indice])) - extra_rulesets_amount++ - if (threat_level >= third_rule_req[indice_pop] && prob(third_rule_prob[threat_indice])) - extra_rulesets_amount++ - log_game("DYNAMIC: Trying to roll [extra_rulesets_amount + 1] roundstart rulesets. Picking from [drafted_rules.len] eligible rulesets.") + var/list/drafted_rules = list() + for (var/datum/dynamic_ruleset/roundstart/rule in roundstart_rules) + if (!rule.weight) + continue + if (rule.acceptable(roundstart_pop_ready, threat_level) && round_start_budget >= rule.cost) // If we got the population and threat required + rule.candidates = candidates.Copy() + rule.trim_candidates() + if (rule.ready(roundstart_pop_ready) && rule.candidates.len > 0) + drafted_rules[rule] = rule.weight - if (drafted_rules.len > 0 && picking_roundstart_rule(drafted_rules)) - log_game("DYNAMIC: First ruleset picked successfully. [extra_rulesets_amount] remaining.") - while(extra_rulesets_amount > 0 && drafted_rules.len > 0) // We had enough threat for one or two more rulesets - for (var/datum/dynamic_ruleset/roundstart/rule in drafted_rules) - if (rule.cost > threat) - drafted_rules -= rule - if(drafted_rules.len) - picking_roundstart_rule(drafted_rules) - extra_rulesets_amount-- - log_game("DYNAMIC: Additional ruleset picked successfully, now [executed_rules.len] picked. [extra_rulesets_amount] remaining.") - else + var/list/rulesets_picked = list() - if(threat_level >= 50) - message_admins("DYNAMIC: Picking first roundstart ruleset failed. You should report this. Falling back to minor antag start.") - log_game("DYNAMIC: Picking first roundstart ruleset failed. drafted_rules.len = [drafted_rules.len] and threat = [threat]/[threat_level]") - minor_ruleset_start = TRUE - return FALSE - return TRUE + // Kept in case a ruleset can't be initialized for whatever reason, we want to be able to only spend what we can use. + var/round_start_budget_left = round_start_budget -/// Picks a random roundstart rule from the list given as an argument and executes it. -/datum/game_mode/dynamic/proc/picking_roundstart_rule(list/drafted_rules = list(), forced = FALSE) - var/datum/dynamic_ruleset/roundstart/starting_rule = pickweight(drafted_rules) - if(!starting_rule) - log_game("DYNAMIC: Couldn't pick a starting ruleset. No rulesets available") - return FALSE + while (round_start_budget_left > 0) + var/datum/dynamic_ruleset/roundstart/ruleset = pickweightAllowZero(drafted_rules) + if (isnull(ruleset)) + log_game("DYNAMIC: No more rules can be applied, stopping with [round_start_budget] left.") + break - if(!forced) - if(only_ruleset_executed) - return FALSE - // Check if a blocking ruleset has been executed. - else if(check_blocking(starting_rule.blocking_rules, executed_rules)) // Should already be filtered out, but making sure. Check filtering at end of proc if reported. - drafted_rules -= starting_rule - if(drafted_rules.len <= 0) - log_game("DYNAMIC: Picking [starting_rule.name] failed due to blocking_rules and no more rulesets available. Report this.") - return FALSE - starting_rule = pickweight(drafted_rules) - // Check if the ruleset is highlander and if a highlander ruleset has been executed - else if(starting_rule.flags & HIGHLANDER_RULESET) // Should already be filtered out, but making sure. Check filtering at end of proc if reported. - if(threat_level <= GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) - if(highlander_executed) - drafted_rules -= starting_rule - if(drafted_rules.len <= 0) - log_game("DYNAMIC: Picking [starting_rule.name] failed due to no highlander stacking and no more rulesets available. Report this.") - return FALSE - starting_rule = pickweight(drafted_rules) - // With low pop and high threat there might be rulesets that get executed with no valid candidates. - else if(!starting_rule.ready()) // Should already be filtered out, but making sure. Check filtering at end of proc if reported. - drafted_rules -= starting_rule - if(drafted_rules.len <= 0) - log_game("DYNAMIC: Picking [starting_rule.name] failed because there were not enough candidates and no more rulesets available. Report this.") - return FALSE - starting_rule = pickweight(drafted_rules) + var/cost = (ruleset in rulesets_picked) ? ruleset.scaling_cost : ruleset.cost + if (cost == 0) + stack_trace("[ruleset] cost 0, this is going to result in an infinite loop.") + drafted_rules[ruleset] = null + continue - log_game("DYNAMIC: Picked a ruleset: [starting_rule.name]") + if (cost > round_start_budget_left) + drafted_rules[ruleset] = null + continue - roundstart_rules -= starting_rule - drafted_rules -= starting_rule + if (check_blocking(ruleset.blocking_rules, rulesets_picked)) + drafted_rules[ruleset] = null + continue - starting_rule.trim_candidates() - if (starting_rule.pre_execute()) - log_threat("[starting_rule.ruletype] - [starting_rule.name] [starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat", verbose = TRUE) - if(starting_rule.flags & HIGHLANDER_RULESET) - highlander_executed = TRUE - else if(starting_rule.flags & ONLY_RULESET) + round_start_budget_left -= cost + + rulesets_picked[ruleset] += 1 + + if (ruleset.flags & HIGH_IMPACT_RULESET) + for (var/_other_ruleset in drafted_rules) + var/datum/dynamic_ruleset/other_ruleset = _other_ruleset + if (other_ruleset.flags & HIGH_IMPACT_RULESET) + drafted_rules[other_ruleset] = null + + if (ruleset.flags & LONE_RULESET) + drafted_rules[ruleset] = null + + for (var/ruleset in rulesets_picked) + spend_roundstart_budget(picking_roundstart_rule(ruleset, rulesets_picked[ruleset] - 1)) + + update_log() + +/// Initializes the round start ruleset provided to it. Returns how much threat to spend. +/datum/game_mode/dynamic/proc/picking_roundstart_rule(datum/dynamic_ruleset/roundstart/ruleset, scaled_times = 0, forced = FALSE) + log_game("DYNAMIC: Picked a ruleset: [ruleset.name], scaled [scaled_times] times") + + ruleset.trim_candidates() + var/added_threat = ruleset.scale_up(roundstart_pop_ready, scaled_times) + + if(ruleset.pre_execute(roundstart_pop_ready)) + threat_log += "[worldtime2text()]: Roundstart [ruleset.name] spent [ruleset.cost + added_threat]. [ruleset.scaling_cost ? "Scaled up [ruleset.scaled_times]/[scaled_times] times." : ""]" + if(ruleset.flags & ONLY_RULESET) only_ruleset_executed = TRUE - executed_rules += starting_rule - for(var/datum/dynamic_ruleset/roundstart/rule in drafted_rules) - if(check_blocking(rule.blocking_rules, executed_rules)) - drafted_rules -= rule - if(highlander_executed && rule.flags & HIGHLANDER_RULESET) - drafted_rules -= rule - if(!rule.ready()) - drafted_rules -= rule // And removing rules that are no longer eligible - return TRUE + if(ruleset.flags & HIGH_IMPACT_RULESET) + high_impact_ruleset_executed = TRUE + executed_rules += ruleset + return ruleset.cost + added_threat else - stack_trace("The starting rule \"[starting_rule.name]\" failed to pre_execute.") - return FALSE + stack_trace("The starting rule \"[ruleset.name]\" failed to pre_execute.") + return 0 /// Mainly here to facilitate delayed rulesets. All roundstart rulesets are executed with a timered callback to this proc. /datum/game_mode/dynamic/proc/execute_roundstart_rule(sent_rule) var/datum/dynamic_ruleset/rule = sent_rule if(rule.execute()) - current_rules += rule - SSblackbox.record_feedback("associative","dynamic_rulesets",1,rule.get_blackbox_info()) + if(rule.persistent) + current_rules += rule + new_snapshot(rule) return TRUE - rule.clean_up() // Refund threat, delete teams and so on. + rule.clean_up() // Refund threat, delete teams and so on. executed_rules -= rule stack_trace("The starting rule \"[rule.name]\" failed to execute.") return FALSE -/// Picks a random midround OR latejoin rule from the list given as an argument and executes it. -/// Also this could be named better. -/datum/game_mode/dynamic/proc/picking_midround_latejoin_rule(list/drafted_rules = list(), forced = FALSE) - var/datum/dynamic_ruleset/rule = pickweight(drafted_rules) - if(!rule) - return FALSE - - if(!forced) - if(only_ruleset_executed) - return FALSE - // Check if a blocking ruleset has been executed. - else if(check_blocking(rule.blocking_rules, executed_rules)) - drafted_rules -= rule - if(drafted_rules.len <= 0) - return FALSE - rule = pickweight(drafted_rules) - // Check if the ruleset is highlander and if a highlander ruleset has been executed - else if(rule.flags & HIGHLANDER_RULESET) - if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) - if(highlander_executed) - drafted_rules -= rule - if(drafted_rules.len <= 0) - return FALSE - rule = pickweight(drafted_rules) - - if(!rule.repeatable) - if(rule.ruletype == "Latejoin") - latejoin_rules = remove_from_list(latejoin_rules, rule.type) - else if(rule.ruletype == "Midround") - midround_rules = remove_from_list(midround_rules, rule.type) - message_admins("DYNAMIC: Picked [rule]; executing soon...") - addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_midround_latejoin_rule, rule), rule.delay) - return TRUE - /// An experimental proc to allow admins to call rules on the fly or have rules call other rules. /datum/game_mode/dynamic/proc/picking_specific_rule(ruletype, forced = FALSE) var/datum/dynamic_ruleset/midround/new_rule if(ispath(ruletype)) new_rule = new ruletype() // You should only use it to call midround rules though. + configure_ruleset(new_rule) // This makes sure the rule is set up properly. else if(istype(ruletype, /datum/dynamic_ruleset)) new_rule = ruletype else @@ -630,119 +561,113 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) // Check if a blocking ruleset has been executed. else if(check_blocking(new_rule.blocking_rules, executed_rules)) return FALSE - // Check if the ruleset is highlander and if a highlander ruleset has been executed - else if(new_rule.flags & HIGHLANDER_RULESET) - if(threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) - if(highlander_executed) + // Check if the ruleset is high impact and if a high impact ruleset has been executed + else if(new_rule.flags & HIGH_IMPACT_RULESET) + if(threat_level < GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) + if(high_impact_ruleset_executed) return FALSE - update_playercounts() - if ((forced || (new_rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && new_rule.cost <= threat))) + var/population = current_players[CURRENT_LIVING_PLAYERS].len + if((new_rule.acceptable(population, threat_level) && new_rule.cost <= mid_round_budget) || forced) new_rule.trim_candidates() if (new_rule.ready(forced)) - log_threat("[new_rule.ruletype] - [new_rule.name] [new_rule.cost] threat", verbose = TRUE) + spend_midround_budget(new_rule.cost) + threat_log += "[worldtime2text()]: Forced rule [new_rule.name] spent [new_rule.cost]" + new_rule.pre_execute(population) if (new_rule.execute()) // This should never fail since ready() returned 1 - if(new_rule.flags & HIGHLANDER_RULESET) - highlander_executed = TRUE + if(new_rule.flags & HIGH_IMPACT_RULESET) + high_impact_ruleset_executed = TRUE else if(new_rule.flags & ONLY_RULESET) only_ruleset_executed = TRUE log_game("DYNAMIC: Making a call to a specific ruleset...[new_rule.name]!") - SSblackbox.record_feedback("associative","dynamic_rulesets",1,new_rule.get_blackbox_info()) executed_rules += new_rule - current_rules += new_rule + if (new_rule.persistent) + current_rules += new_rule return TRUE else if (forced) - log_game("DYNAMIC: The ruleset [new_rule.name] couldn't be executed due to lack of eligible players.") - return FALSE - -/// Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc. -/datum/game_mode/dynamic/proc/execute_midround_latejoin_rule(sent_rule) - var/datum/dynamic_ruleset/rule = sent_rule - if (rule.execute()) - message_admins("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].") - log_game("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].") - log_threat("[rule.ruletype] [rule.name] added [rule.cost]", verbose = TRUE) - if(rule.flags & HIGHLANDER_RULESET) - highlander_executed = TRUE - else if(rule.flags & ONLY_RULESET) - only_ruleset_executed = TRUE - if(rule.ruletype == "Latejoin") - var/mob/M = pick(rule.candidates) - message_admins("[key_name(M)] joined the station, and was selected by the [rule.name] ruleset.") - log_game("DYNAMIC: [key_name(M)] joined the station, and was selected by the [rule.name] ruleset.") - executed_rules += rule - SSblackbox.record_feedback("associative","dynamic_rulesets",1,rule.get_blackbox_info()) - rule.candidates.Cut() - if (rule.persistent) - current_rules += rule - return TRUE - stack_trace("The [rule.ruletype] rule \"[rule.name]\" failed to execute.") + log_game("DYNAMIC: The ruleset [new_rule.name] couldn't be executed due to lack of elligible players.") return FALSE /datum/game_mode/dynamic/process() - if (pop_last_updated < world.time - (120 SECONDS)) - pop_last_updated = world.time - update_playercounts() - for (var/datum/dynamic_ruleset/rule in current_rules) if(rule.rule_process() == RULESET_STOP_PROCESSING) // If rule_process() returns 1 (RULESET_STOP_PROCESSING), stop processing. current_rules -= rule SSblackbox.record_feedback("tally","dynamic",1,"Rulesets finished") - SSblackbox.record_feedback("associative","dynamic_rulesets_finished",1,rule.get_blackbox_info()) - - storyteller.do_process() + midround_rule_draft() +/datum/game_mode/dynamic/proc/midround_rule_draft() + set waitfor = FALSE if (midround_injection_cooldown < world.time) - if (GLOB.dynamic_forced_extended) - return + /*if (GLOB.dynamic_forced_extended) + return*/ // Somehow it managed to trigger midround multiple times so this was moved here. // There is no way this should be able to trigger an injection twice now. - midround_injection_cooldown = storyteller.get_midround_cooldown() + world.time + var/midround_injection_cooldown_middle = 0.5*(midround_delay_max + midround_delay_min) + midround_injection_cooldown = (round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), midround_delay_min, midround_delay_max)) + world.time) // Time to inject some threat into the round if(EMERGENCY_ESCAPED_OR_ENDGAMED) // Unless the shuttle is gone return - if(SSshuttle.endvote_passed) // no rules after shuttle call is voted - return + message_admins("DYNAMIC: Checking for midround injection.") log_game("DYNAMIC: Checking for midround injection.") - update_playercounts() - if (storyteller.should_inject_antag()) - SSblackbox.record_feedback("tally","dynamic",1,"Attempted midround injections") - do_midround_injection() + last_midround_injection_attempt = world.time -/datum/game_mode/dynamic/proc/do_midround_injection() - set waitfor = FALSE - var/list/drafted_rules = storyteller.midround_draft() - if (drafted_rules.len > 0) - SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections") - picking_midround_latejoin_rule(drafted_rules) - - -/// Updates current_players. -/datum/game_mode/dynamic/proc/update_playercounts() - current_players[CURRENT_LIVING_PLAYERS] = list() - current_players[CURRENT_LIVING_ANTAGS] = list() - current_players[CURRENT_DEAD_PLAYERS] = list() - current_players[CURRENT_OBSERVERS] = list() - for (var/mob/M in GLOB.player_list) - if (istype(M, /mob/dead/new_player)) - continue - if (M.stat != DEAD) - current_players[CURRENT_LIVING_PLAYERS].Add(M) - if (M.mind && (M.mind.special_role || M.mind.antag_datums?.len > 0)) - current_players[CURRENT_LIVING_ANTAGS].Add(M) - else - if (isobserver(M)) - var/mob/dead/observer/O = M - if (O.started_as_observer) // Observers - current_players[CURRENT_OBSERVERS].Add(M) + if (prob(get_midround_injection_chance())) + var/list/drafted_rules = list() + for (var/datum/dynamic_ruleset/midround/rule in midround_rules) + if (!rule.weight) continue - if(!M.voluntary_ghosted) - current_players[CURRENT_DEAD_PLAYERS].Add(M) // Players who actually died (and admins who ghosted, would be nice to avoid counting them somehow) - threat = (SSactivity.current_threat * 0.6 + SSactivity.get_max_threat() * 0.2 + SSactivity.get_average_threat() * 0.2) + added_threat + if (rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && mid_round_budget >= rule.cost) + rule.trim_candidates() + if (rule.ready()) + drafted_rules[rule] = rule.get_weight() + if (drafted_rules.len > 0) + pick_midround_rule(drafted_rules) + else if (random_event_hijacked == HIJACKED_TOO_SOON) + log_game("DYNAMIC: Midround injection failed when random event was hijacked. Spawning another random event in its place.") + + // A random event antag would have rolled had this injection check passed. + // As a refund, spawn a non-ghost-role random event. + SSevents.spawnEvent() + SSevents.reschedule() + + random_event_hijacked = HIJACKED_NOTHING + +/// Gets the chance for latejoin injection, the dry_run argument is only used for forced injection. +/datum/game_mode/dynamic/proc/get_injection_chance(dry_run = FALSE) + if(forced_injection) + forced_injection = dry_run + return 100 + var/chance = 0 + var/max_pop_per_antag = max(5,15 - round(threat_level/10) - round(current_players[CURRENT_LIVING_PLAYERS].len/5)) + if (!current_players[CURRENT_LIVING_ANTAGS].len) + chance += 50 // No antags at all? let's boost those odds! + else + var/current_pop_per_antag = current_players[CURRENT_LIVING_PLAYERS].len / current_players[CURRENT_LIVING_ANTAGS].len + if (current_pop_per_antag > max_pop_per_antag) + chance += min(50, 25+10*(current_pop_per_antag-max_pop_per_antag)) + else + chance += 25-10*(max_pop_per_antag-current_pop_per_antag) + if (current_players[CURRENT_DEAD_PLAYERS].len > current_players[CURRENT_LIVING_PLAYERS].len) + chance -= 30 // More than half the crew died? ew, let's calm down on antags + if (mid_round_budget > higher_injection_chance_minimum_threat) + chance += higher_injection_chance + if (mid_round_budget < lower_injection_chance_minimum_threat) + chance -= lower_injection_chance + return round(max(0,chance)) + +/// Gets the chance for midround injection, the dry_run argument is only used for forced injection. +/// Usually defers to the latejoin injection chance. +/datum/game_mode/dynamic/proc/get_midround_injection_chance(dry_run) + var/chance = get_injection_chance(dry_run) + + if (random_event_hijacked != HIJACKED_NOTHING) + chance += hijacked_random_event_injection_chance + + return chance /// Removes type from the list /datum/game_mode/dynamic/proc/remove_from_list(list/type_list, type) @@ -755,12 +680,12 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) /datum/game_mode/dynamic/proc/check_blocking(list/blocking_list, list/rule_list) if(blocking_list.len > 0) for(var/blocking in blocking_list) - for(var/datum/executed in rule_list) + for(var/_executed in rule_list) + var/datum/executed = _executed if(blocking == executed.type) return TRUE return FALSE -/// Checks if client age is age or older. /datum/game_mode/dynamic/proc/check_age(client/C, age) enemy_minimum_age = age if(get_remaining_days(C) == 0) @@ -774,44 +699,71 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) return if(EMERGENCY_ESCAPED_OR_ENDGAMED) // No more rules after the shuttle has left return - if(SSshuttle.endvote_passed) // no rules after shuttle is auto-called - return - update_playercounts() if (forced_latejoin_rule) forced_latejoin_rule.candidates = list(newPlayer) forced_latejoin_rule.trim_candidates() log_game("DYNAMIC: Forcing ruleset [forced_latejoin_rule]") if (forced_latejoin_rule.ready(TRUE)) - picking_midround_latejoin_rule(list(forced_latejoin_rule), forced = TRUE) + if (!forced_latejoin_rule.repeatable) + latejoin_rules = remove_from_list(latejoin_rules, forced_latejoin_rule.type) + addtimer(CALLBACK(src, /datum/game_mode/dynamic/.proc/execute_midround_latejoin_rule, forced_latejoin_rule), forced_latejoin_rule.delay) forced_latejoin_rule = null - else if (storyteller.should_inject_antag()) - SSblackbox.record_feedback("tally","dynamic",1,"Attempted latejoin injections") - var/list/drafted_rules = storyteller.latejoin_draft(newPlayer) - if (drafted_rules.len > 0 && picking_midround_latejoin_rule(drafted_rules)) - SSblackbox.record_feedback("tally","dynamic",1,"Successful latejoin injections") + else if (latejoin_injection_cooldown < world.time && prob(get_injection_chance())) + var/list/drafted_rules = list() + for (var/datum/dynamic_ruleset/latejoin/rule in latejoin_rules) + if (!rule.weight) + continue + if (rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && mid_round_budget >= rule.cost) + // No stacking : only one round-ender, unless threat level > stacking_limit. + if (threat_level < GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) + if(rule.flags & HIGH_IMPACT_RULESET && high_impact_ruleset_executed) + continue -/// Increase the threat level. + rule.candidates = list(newPlayer) + rule.trim_candidates() + if (rule.ready()) + drafted_rules[rule] = rule.get_weight() + + if (drafted_rules.len > 0 && pick_latejoin_rule(drafted_rules)) + var/latejoin_injection_cooldown_middle = 0.5*(latejoin_delay_max + latejoin_delay_min) + latejoin_injection_cooldown = round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), latejoin_delay_min, latejoin_delay_max)) + world.time + +/// Apply configurations to rule. +/datum/game_mode/dynamic/proc/configure_ruleset(datum/dynamic_ruleset/ruleset) + var/rule_conf = LAZYACCESSASSOC(configuration, ruleset.ruletype, ruleset.name) + for(var/variable in rule_conf) + if(!(variable in ruleset.vars)) + stack_trace("Invalid dynamic configuration variable [variable] in [ruleset.ruletype] [ruleset.name].") + continue + ruleset.vars[variable] = rule_conf[variable] + if(CONFIG_GET(flag/protect_roles_from_antagonist)) + ruleset.restricted_roles |= ruleset.protected_roles + if(CONFIG_GET(flag/protect_assistant_from_antagonist)) + ruleset.restricted_roles |= "Assistant" + +/// Refund threat, but no more than threat_level. +/datum/game_mode/dynamic/proc/refund_threat(regain) + mid_round_budget = min(threat_level, mid_round_budget + regain) + +/// Generate threat and increase the threat_level if it goes beyond, capped at 100 /datum/game_mode/dynamic/proc/create_threat(gain) - threat_level += gain - SSblackbox.record_feedback("tally","dynamic_threat",gain,"Created threat level") - log_threat("[gain] created. Threat level is now [threat_level].", verbose = TRUE) + mid_round_budget = min(100, mid_round_budget + gain) + if(mid_round_budget > threat_level) + threat_level = mid_round_budget -/// Decrease the threat level. -/datum/game_mode/dynamic/proc/remove_threat(loss) - threat_level -= loss - SSblackbox.record_feedback("tally","dynamic_threat",loss,"Removed threat level") - log_threat("[loss] removed. Threat level is now [threat_level].", verbose = TRUE) +/// Expend round start threat, can't fall under 0. +/datum/game_mode/dynamic/proc/spend_roundstart_budget(cost) + round_start_budget = max(round_start_budget - cost,0) -/// Fill up more of the threat level. -/datum/game_mode/dynamic/proc/spend_threat(cost) - added_threat += cost - SSblackbox.record_feedback("tally","dynamic_threat",cost,"Threat added") - log_threat("[cost] added. Threat is now [threat].", verbose = TRUE) +/// Expend midround threat, can't fall under 0. +/datum/game_mode/dynamic/proc/spend_midround_budget(cost) + mid_round_budget = max(mid_round_budget - cost,0) -/// Turns the value generated by lorentz distribution to threat value between 0 and 100. -/datum/game_mode/dynamic/proc/lorentz_to_threat(x) +/// Turns the value generated by lorentz distribution to number between 0 and 100. +/// Used for threat level and splitting the budgets. +/datum/game_mode/dynamic/proc/lorentz_to_amount(x) switch (x) if (-INFINITY to -20) return rand(0, 10) @@ -834,10 +786,11 @@ GLOBAL_VAR_INIT(dynamic_forced_storyteller, null) if (20 to INFINITY) return rand(90, 100) -/datum/game_mode/dynamic/ghost_info() - . = list() - . += "Current threat: [threat]" - . += "Target threat: [threat_level]" - . += "Storyteller: [storyteller.name]
" - . += "Parameters: centre = [GLOB.dynamic_curve_centre] ; width = [GLOB.dynamic_curve_width].
" - . += "On average, [peaceful_percentage]% of the rounds are more peaceful.
" +/// Log to messages and to the game +/datum/game_mode/dynamic/proc/dynamic_log(text) + message_admins("DYNAMIC: [text]") + log_game("DYNAMIC: [text]") + +#undef FAKE_REPORT_CHANCE +#undef REPORT_NEG_DIVERGENCE +#undef REPORT_POS_DIVERGENCE diff --git a/code/game/gamemodes/dynamic/dynamic_hijacking.dm b/code/game/gamemodes/dynamic/dynamic_hijacking.dm new file mode 100644 index 0000000000..04892ad153 --- /dev/null +++ b/code/game/gamemodes/dynamic/dynamic_hijacking.dm @@ -0,0 +1,27 @@ +/datum/game_mode/dynamic/proc/setup_hijacking() + RegisterSignal(SSdcs, COMSIG_GLOB_PRE_RANDOM_EVENT, .proc/on_pre_random_event) + +/datum/game_mode/dynamic/proc/on_pre_random_event(datum/source, datum/round_event_control/round_event_control) + SIGNAL_HANDLER + if (!round_event_control.dynamic_should_hijack) + return + + if (random_event_hijacked != HIJACKED_NOTHING) + dynamic_log("Random event [round_event_control.name] tried to roll, but Dynamic vetoed it (random event has already ran).") + SSevents.spawnEvent() + SSevents.reschedule() + return CANCEL_PRE_RANDOM_EVENT + + var/time_range = rand(random_event_hijack_minimum, random_event_hijack_maximum) + + if (world.time - last_midround_injection_attempt < time_range) + random_event_hijacked = HIJACKED_TOO_RECENT + dynamic_log("Random event [round_event_control.name] tried to roll, but the last midround injection \ + was too recent. Injection chance has been raised to [get_midround_injection_chance(dry_run = TRUE)]%.") + return CANCEL_PRE_RANDOM_EVENT + + if (midround_injection_cooldown - world.time < time_range) + random_event_hijacked = HIJACKED_TOO_SOON + dynamic_log("Random event [round_event_control.name] tried to roll, but the next midround injection \ + is too soon. Injection chance has been raised to [get_midround_injection_chance(dry_run = TRUE)]%.") + return CANCEL_PRE_RANDOM_EVENT diff --git a/code/game/gamemodes/dynamic/dynamic_logging.dm b/code/game/gamemodes/dynamic/dynamic_logging.dm new file mode 100644 index 0000000000..095b28c4e5 --- /dev/null +++ b/code/game/gamemodes/dynamic/dynamic_logging.dm @@ -0,0 +1,101 @@ +/// A "snapshot" of dynamic at an important point in time. +/// Exported to JSON in the dynamic.json log file. +/datum/dynamic_snapshot + /// The remaining midround threat + var/remaining_threat + + /// The world.time when the snapshot was taken + var/time + + /// The total number of players in the server + var/total_players + + /// The number of alive players + var/alive_players + + /// The number of dead players + var/dead_players + + /// The number of observers + var/observers + + /// The number of alive antags + var/alive_antags + + /// The rulesets chosen this snapshot + var/datum/dynamic_snapshot_ruleset/ruleset_chosen + + /// The cached serialization of this snapshot + var/serialization + +/// A ruleset chosen during a snapshot +/datum/dynamic_snapshot_ruleset + /// The name of the ruleset chosen + var/name + + /// If it is a round start ruleset, how much it was scaled by + var/scaled + + /// The number of assigned antags + var/assigned + +/datum/dynamic_snapshot_ruleset/New(datum/dynamic_ruleset/ruleset) + name = ruleset.name + assigned = ruleset.assigned.len + + if (istype(ruleset, /datum/dynamic_ruleset/roundstart)) + scaled = ruleset.scaled_times + +/// Convert the snapshot to an associative list +/datum/dynamic_snapshot/proc/to_list() + if (!isnull(serialization)) + return serialization + + serialization = list( + "remaining_threat" = remaining_threat, + "time" = time, + "total_players" = total_players, + "alive_players" = alive_players, + "dead_players" = dead_players, + "observers" = observers, + "alive_antags" = alive_antags, + "ruleset_chosen" = list( + "name" = ruleset_chosen.name, + "scaled" = ruleset_chosen.scaled, + "assigned" = ruleset_chosen.assigned, + ), + ) + + return serialization + +/// Updates the log for the current snapshots. +/datum/game_mode/dynamic/proc/update_log() + var/list/serialized = list() + serialized["threat_level"] = threat_level + serialized["round_start_budget"] = initial_round_start_budget + serialized["mid_round_budget"] = threat_level - initial_round_start_budget + serialized["shown_threat"] = shown_threat + + var/list/serialized_snapshots = list() + for (var/datum/dynamic_snapshot/snapshot as anything in snapshots) + serialized_snapshots += list(snapshot.to_list()) + serialized["snapshots"] = serialized_snapshots + + rustg_file_write(json_encode(serialized), "[GLOB.log_directory]/dynamic.json") + +/// Creates a new snapshot with the given rulesets chosen, and writes to the JSON output. +/datum/game_mode/dynamic/proc/new_snapshot(datum/dynamic_ruleset/ruleset_chosen) + var/datum/dynamic_snapshot/new_snapshot = new + + new_snapshot.remaining_threat = mid_round_budget + new_snapshot.time = world.time + new_snapshot.alive_players = current_players[CURRENT_LIVING_PLAYERS].len + new_snapshot.dead_players = current_players[CURRENT_DEAD_PLAYERS].len + new_snapshot.observers = current_players[CURRENT_OBSERVERS].len + new_snapshot.total_players = new_snapshot.alive_players + new_snapshot.dead_players + new_snapshot.observers + new_snapshot.alive_antags = current_players[CURRENT_LIVING_ANTAGS].len + new_snapshot.ruleset_chosen = new /datum/dynamic_snapshot_ruleset(ruleset_chosen) + + LAZYADD(snapshots, new_snapshot) + + update_log() diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm index f1e48eb31c..30004a3b69 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm @@ -1,16 +1,13 @@ -#define EXTRA_RULESET_PENALTY 20 // Changes how likely a gamemode is to scale based on how many other roundstart rulesets are waiting to be rolled. -#define POP_SCALING_PENALTY 50 // Discourages scaling up rulesets if ratio of antags to crew is high. - #define REVOLUTION_VICTORY 1 #define STATION_VICTORY 2 /datum/dynamic_ruleset /// For admin logging and round end screen. + // If you want to change this variable name, the force latejoin/midround rulesets + // to not use sortNames. var/name = "" /// For admin logging and round end screen, do not change this unless making a new rule type. var/ruletype = "" - /// For config purposes, similar to config_tag for secret game modes. - var/config_tag = null /// If set to TRUE, the rule won't be discarded after being executed, and dynamic will call rule_process() every time it ticks. var/persistent = FALSE /// If set to TRUE, dynamic mode will be able to draft this ruleset again later on. (doesn't apply for roundstart rules) @@ -31,7 +28,7 @@ var/list/protected_roles = list() /// If set, rule will deny candidates from those roles always. var/list/restricted_roles = list() - /// If set, rule will only accept candidates from those roles, IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. + /// If set, rule will only accept candidates from those roles. If on a roundstart ruleset, requires the player to have the correct antag pref enabled and any of the possible roles enabled. var/list/exclusive_roles = list() /// If set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS. var/list/enemy_roles = list() @@ -39,7 +36,7 @@ var/required_enemies = list(1,1,0,0,0,0,0,0,0,0) /// The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start) var/required_candidates = 0 - /// 1 -> 9, probability for this rule to be picked against other rules + /// 0 -> 9, probability for this rule to be picked against other rules. If zero this will effectively disable the rule. var/weight = 5 /// Threat cost for this rule, this is decreased from the mode's threat when the rule is executed. var/cost = 0 @@ -49,21 +46,13 @@ var/scaled_times = 0 /// Used for the roundend report var/total_cost = 0 - /// A flag that determines how the ruleset is handled - /// ONLY_RULESET are rulesets that prevent ALL other rulesets from rolling. - /// HIGHLANDER_RULESET are rulesets can end the round. - /// TRAITOR_RULESET are the "default" ruleset--they should always be addable to a round, if the round type allows antags and dynamic thinks there should be another. - /// MINOR_RULESET is for rulesets whose antags can have multiple instances without causing too much issue. As roundstarts, they have their weights reduced based on the storyteller's minor-antag-round chance. - /// FAKE_ANTAG_RULESET is for rulesets whose antags aren't actually antagonistic--essentially just flavor meant to spice the round up. - /// ALWAYS_MAX_WEIGHT_RULESET means that the ruleset doesn't have its weight reduced based on recency. - var/flags = 0 + /// A flag that determines how the ruleset is handled. Check __DEFINES/dynamic.dm for an explanation of the accepted values. + var/flags = NONE /// Pop range per requirement. If zero defaults to mode's pop_per_requirement. var/pop_per_requirement = 0 /// Requirements are the threat level requirements per pop range. /// With the default values, The rule will never get drafted below 10 threat level (aka: "peaceful extended"), and it requires a higher threat level at lower pops. var/list/requirements = list(40,30,20,10,10,10,10,10,10,10) - /// An alternative, static requirement used instead when pop is over mode's high_pop_limit. - var/high_population_requirement = 10 /// Reference to the mode, use this instead of SSticker.mode. var/datum/game_mode/dynamic/mode = null /// If a role is to be considered another for the purpose of banning. @@ -77,53 +66,31 @@ var/maximum_players = 0 /// Calculated during acceptable(), used in scaling and team sizes. var/indice_pop = 0 - /// Population scaling. Used by team antags and scaling for solo antags. - var/list/antag_cap = list() /// Base probability used in scaling. The higher it is, the more likely to scale. Kept as a var to allow for config editing._SendSignal(sigtype, list/arguments) var/base_prob = 60 /// Delay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin). /// Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure. var/delay = 0 - /// List of tags for use in storytellers. - var/list/property_weights = list() - /// Weight reduction by recent-rounds. Saved on new. - var/weight_mult = 1 + + /// Judges the amount of antagonists to apply, for both solo and teams. + /// Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled. + /// Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant. + /// If written as a linear equation, will be in the form of `list("denominator" = denominator, "offset" = offset). + var/antag_cap = 0 /datum/dynamic_ruleset/New() + // Rulesets can be instantiated more than once, such as when an admin clicks + // "Execute Midround Ruleset". Thus, it would be wrong to perform any + // side effects here. Dynamic rulesets should be stateless anyway. + SHOULD_NOT_OVERRIDE(TRUE) + + mode = SSticker.mode + ..() - if(CONFIG_GET(flag/protect_roles_from_antagonist)) - restricted_roles += protected_roles - if(CONFIG_GET(flag/protect_assistant_from_antagonist)) - restricted_roles += "Assistant" - var/weights = CONFIG_GET(keyed_list/dynamic_weight) - var/costs = CONFIG_GET(keyed_list/dynamic_cost) - var/requirementses = CONFIG_GET(keyed_list/dynamic_requirements) // can't damn well use requirements - var/high_population_requirements = CONFIG_GET(keyed_list/dynamic_high_population_requirement) - var/list/repeated_mode_adjust = CONFIG_GET(number_list/repeated_mode_adjust) - if(config_tag in weights) - if(!(flags & ALWAYS_MAX_WEIGHT_RULESET) && SSpersistence.saved_dynamic_rules.len == 3 && repeated_mode_adjust.len == 3) - var/saved_dynamic_rules = SSpersistence.saved_dynamic_rules - for(var/i in 1 to 3) - if(config_tag in saved_dynamic_rules[i]) - weight_mult -= (repeated_mode_adjust[i]/100) - weight_mult = max(0,weight_mult) - if(config_tag in costs) - cost = costs[config_tag] - if(config_tag in requirementses) - requirements = requirementses[config_tag] - if(config_tag in high_population_requirements) - high_population_requirement = high_population_requirements[config_tag] - if (istype(SSticker.mode, /datum/game_mode/dynamic)) - mode = SSticker.mode - else if (GLOB.master_mode != "dynamic") // This is here to make roundstart forced ruleset function. - qdel(src) /datum/dynamic_ruleset/roundstart // One or more of those drafted at roundstart ruletype = "Roundstart" -/datum/dynamic_ruleset/minor // drafted at roundstart in minor rounds, one antag at a time, for a "mixed" round - ruletype = "Minor" - // Can be drafted when a player joins the server /datum/dynamic_ruleset/latejoin ruletype = "Latejoin" @@ -131,55 +98,47 @@ /// By default, a rule is acceptable if it satisfies the threat level/population requirements. /// If your rule has extra checks, such as counting security officers, do that in ready() instead /datum/dynamic_ruleset/proc/acceptable(population = 0, threat_level = 0) + pop_per_requirement = pop_per_requirement > 0 ? pop_per_requirement : mode.pop_per_requirement + indice_pop = min(requirements.len,round(population/pop_per_requirement)+1) + if(minimum_players > population) SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to low pop") return FALSE if(maximum_players > 0 && population > maximum_players) SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to high pop") return FALSE - if (population >= GLOB.dynamic_high_pop_limit) - indice_pop = 10 - if(threat_level < high_population_requirement) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat level") - log_game("DYNAMIC: [name] did not reach threat level threshold: [threat_level]/[high_population_requirement]") - return FALSE - else - return TRUE - else - pop_per_requirement = pop_per_requirement > 0 ? pop_per_requirement : mode.pop_per_requirement - if(antag_cap.len && requirements.len != antag_cap.len) - message_admins("DYNAMIC: requirements and antag_cap lists have different lengths in ruleset [name]. Likely config issue, report this.") - log_game("DYNAMIC: requirements and antag_cap lists have different lengths in ruleset [name]. Likely config issue, report this.") - indice_pop = min(requirements.len,round(population/pop_per_requirement)+1) - if(threat_level < requirements[indice_pop]) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat level") - log_game("DYNAMIC: [name] did not reach threat level threshold: [threat_level]/[requirements[indice_pop]]") - return FALSE - else - return TRUE + return (threat_level >= requirements[indice_pop]) -/// Called when a suitable rule is picked during roundstart(). Will some times attempt to scale a rule up when there is threat remaining. Returns the amount of scaled steps. -/datum/dynamic_ruleset/proc/scale_up(extra_rulesets = 0, remaining_threat_level = 0) - remaining_threat_level -= cost - if(scaling_cost && scaling_cost <= remaining_threat_level) // Only attempts to scale the modes with a scaling cost explicitly set. - var/new_prob - var/pop_to_antags = (mode.antags_rolled + (antag_cap[indice_pop] * (scaled_times + 1))) / mode.roundstart_pop_ready - log_game("DYNAMIC: [name] roundstart ruleset attempting to scale up with [extra_rulesets] rulesets waiting and [remaining_threat_level] threat remaining.") - for(var/i in 1 to 3) //Can scale a max of 3 times - if(remaining_threat_level >= scaling_cost && pop_to_antags < 0.25) - new_prob = base_prob + (remaining_threat_level) - (scaled_times * scaling_cost) - (extra_rulesets * EXTRA_RULESET_PENALTY) - (pop_to_antags * POP_SCALING_PENALTY) - if (!prob(new_prob)) - break - remaining_threat_level -= scaling_cost - scaled_times++ - pop_to_antags = (mode.antags_rolled + (antag_cap[indice_pop] * (scaled_times + 1))) / mode.roundstart_pop_ready - log_game("DYNAMIC: [name] roundstart ruleset failed scaling up at [new_prob ? new_prob : 0]% chance after [scaled_times]/3 successful scaleups. [remaining_threat_level] threat remaining, antag to crew ratio: [pop_to_antags*100]%.") - mode.antags_rolled += (1 + scaled_times) * antag_cap[indice_pop] - return scaled_times * scaling_cost +/// When picking rulesets, if dynamic picks the same one multiple times, it will "scale up". +/// However, doing this blindly would result in lowpop rounds (think under 10 people) where over 80% of the crew is antags! +/// This function is here to ensure the antag ratio is kept under control while scaling up. +/// Returns how much threat to actually spend in the end. +/datum/dynamic_ruleset/proc/scale_up(population, max_scale) + if (!scaling_cost) + return 0 + + var/antag_fraction = 0 + for(var/_ruleset in (mode.executed_rules + list(src))) // we care about the antags we *will* assign, too + var/datum/dynamic_ruleset/ruleset = _ruleset + antag_fraction += ((1 + ruleset.scaled_times) * ruleset.get_antag_cap(population)) / mode.roundstart_pop_ready + + for(var/i in 1 to max_scale) + if(antag_fraction < 0.25) + scaled_times += 1 + antag_fraction += get_antag_cap(population) / mode.roundstart_pop_ready // we added new antags, gotta update the % + + return scaled_times * scaling_cost + +/// Returns what the antag cap with the given population is. +/datum/dynamic_ruleset/proc/get_antag_cap(population) + if (isnum(antag_cap)) + return antag_cap + + return CEILING(population / antag_cap["denominator"], 1) + (antag_cap["offset"] || 0) /// This is called if persistent variable is true everytime SSTicker ticks. /datum/dynamic_ruleset/proc/rule_process() - return TRUE + return /// Called on game mode pre_setup for roundstart rulesets. /// Do everything you need to do before job is assigned here. @@ -206,7 +165,8 @@ /// Runs from gamemode process() if ruleset fails to start, like delayed rulesets not getting valid candidates. /// This one only handles refunding the threat, override in ruleset to clean up the rest. /datum/dynamic_ruleset/proc/clean_up() - return + mode.refund_threat(cost + (scaled_times * scaling_cost)) + mode.threat_log += "[worldtime2text()]: [ruletype] [name] refunded [cost + (scaled_times * scaling_cost)]. Failed to execute." /// Gets weight of the ruleset /// Note that this decreases weight if repeatable is TRUE and repeatable_weight_decrease is higher than 0 @@ -225,32 +185,9 @@ return /// Set mode result and news report here. -/// Only called if ruleset is flagged as HIGHLANDER_RULESET +/// Only called if ruleset is flagged as HIGH_IMPACT_RULESET /datum/dynamic_ruleset/proc/round_result() -/// Checks if round is finished, return true to end the round. -/// Only called if ruleset is flagged as HIGHLANDER_RULESET -/datum/dynamic_ruleset/proc/check_finished() - return FALSE - -/// Returns a list to be displayed on statbus. -/datum/dynamic_ruleset/proc/get_blackbox_info() - var/list/ruleset_data = list() - ruleset_data["name"] = name - ruleset_data["rule_type"] = ruletype - ruleset_data["cost"] = total_cost - ruleset_data["weight"] = weight - ruleset_data["scaled_times"] = scaled_times - ruleset_data["antagonist_type"] = antag_datum - ruleset_data["population_tier"] = indice_pop - ruleset_data["assigned"] = list() - for (var/datum/mind/M in assigned) - var/assigned_data = list() - assigned_data["key"] = M.key - assigned_data["name"] = M.name - ruleset_data["assigned"] += list(assigned_data) - return ruleset_data - ////////////////////////////////////////////// // // // ROUNDSTART RULESETS // @@ -259,26 +196,49 @@ /// Checks if candidates are connected and if they are banned or don't want to be the antagonist. /datum/dynamic_ruleset/roundstart/trim_candidates() - for(var/mob/dead/new_player/P in candidates) - if (!P.client || !P.mind) // Are they connected? - candidates.Remove(P) + for(var/mob/dead/new_player/candidate_player in candidates) + var/client/candidate_client = GET_CLIENT(candidate_player) + if (!candidate_client || !candidate_player.mind) // Are they connected? + candidates.Remove(candidate_player) continue - if(!mode.check_age(P.client, minimum_required_age)) - candidates.Remove(P) + + else if(!mode.check_age(candidate_client, minimum_required_age)) + candidates.Remove(candidate_player) continue - if(P.mind.special_role) // We really don't want to give antag to an antag. - candidates.Remove(P) + + if(candidate_player.mind.special_role) // We really don't want to give antag to an antag. + candidates.Remove(candidate_player) continue + + if(ROLE_NO_ANTAGONISM in candidate_player.client.prefs.be_special) + candidates.Remove(candidate_player) + continue + if(antag_flag_override) - if(!(antag_flag_override in P.client.prefs.be_special) || jobban_isbanned(P.ckey, antag_flag_override)) - candidates.Remove(P) + if(!(HAS_ANTAG_PREF(candidate_player.client, antag_flag_override))) + candidates.Remove(candidate_player) continue else - if(!(antag_flag in P.client.prefs.be_special) || jobban_isbanned(P.ckey, antag_flag)) - candidates.Remove(P) + if(!(HAS_ANTAG_PREF(candidate_player.client, antag_flag))) + candidates.Remove(candidate_player) continue + // If this ruleset has exclusive_roles set, we want to only consider players who have those + // job prefs enabled and are eligible to play that job. Otherwise, continue as before. + if(length(exclusive_roles)) + var/exclusive_candidate = FALSE + for(var/role in exclusive_roles) + var/datum/job/job = SSjob.GetJob(role) + if((role in candidate_client.prefs.job_preferences) && !jobban_isbanned(candidate_player.ckey, role) && !job.required_playtime_remaining(candidate_client)) + exclusive_candidate = TRUE + break + + // If they didn't have any of the required job prefs enabled or were banned from all enabled prefs, + // they're not eligible for this antag type. + if(!exclusive_candidate) + candidates.Remove(candidate_player) + /// Do your checks if the ruleset is ready to be executed here. /// Should ignore certain checks if forced is TRUE -/datum/dynamic_ruleset/roundstart/ready(forced = FALSE) +/datum/dynamic_ruleset/roundstart/ready(population, forced = FALSE) return ..() diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm index 7842c6e0f7..76f09793fb 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm @@ -6,26 +6,22 @@ /datum/dynamic_ruleset/latejoin/trim_candidates() for(var/mob/P in candidates) - if (!P.client || !P.mind || !P.mind.assigned_role) // Are they connected? + if(!P.client || !P.mind || !P.mind.assigned_role) // Are they connected? candidates.Remove(P) - continue - if(!mode.check_age(P.client, minimum_required_age)) + else if(!mode.check_age(P.client, minimum_required_age)) candidates.Remove(P) - continue - if(antag_flag_override) - if(!(antag_flag_override in P.client.prefs.be_special) || jobban_isbanned(P.ckey, list(antag_flag_override))) + else if(P.mind.assigned_role in restricted_roles) // Does their job allow for it? + candidates.Remove(P) + else if((exclusive_roles.len > 0) && !(P.mind.assigned_role in exclusive_roles)) // Is the rule exclusive to their job? + candidates.Remove(P) + else if(ROLE_NO_ANTAGONISM in P.client.prefs.be_special) + candidates.Remove(P) + else if(antag_flag_override) + if(!(HAS_ANTAG_PREF(P.client, antag_flag_override))) candidates.Remove(P) - continue else - if(!(antag_flag in P.client.prefs.be_special) || jobban_isbanned(P.ckey, list(antag_flag, ROLE_SYNDICATE))) + if(!(HAS_ANTAG_PREF(P.client, antag_flag))) candidates.Remove(P) - continue - if (P.mind.assigned_role in restricted_roles) // Does their job allow for it? - candidates.Remove(P) - continue - if ((exclusive_roles.len > 0) && !(P.mind.assigned_role in exclusive_roles)) // Is the rule exclusive to their job? - candidates.Remove(P) - continue /datum/dynamic_ruleset/latejoin/ready(forced = 0) if (!forced) @@ -34,8 +30,9 @@ for (var/mob/M in mode.current_players[CURRENT_LIVING_PLAYERS]) if (M.stat == DEAD) continue // Dead players cannot count as opponents - if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) + if (M.mind && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it + var/threat = round(mode.threat_level/10) if (job_check < required_enemies[threat]) SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles") @@ -48,7 +45,6 @@ M.mind.special_role = antag_flag M.mind.add_antag_datum(antag_datum) log_admin("[M.name] was made into a [name] by dynamic.") - message_admins("[M.name] was made into a [name] by dynamic.") return TRUE ////////////////////////////////////////////// @@ -59,19 +55,16 @@ /datum/dynamic_ruleset/latejoin/infiltrator name = "Syndicate Infiltrator" - config_tag = "latejoin_traitor" antag_datum = /datum/antagonist/traitor - antag_flag = ROLE_TRAITOR - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + antag_flag = "traitor late" + antag_flag_override = ROLE_TRAITOR + protected_roles = list("Security Officer", "Warden", "Head of Personnel", "Detective", "Head of Security", "Captain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") + restricted_roles = list("AI","Cyborg") required_candidates = 1 weight = 7 cost = 5 - requirements = list(40,30,20,15,15,15,15,15,15,15) - high_population_requirement = 15 + requirements = list(40,30,20,10,10,10,10,10,10,10) repeatable = TRUE - flags = TRAITOR_RULESET | MINOR_RULESET | ALWAYS_MAX_WEIGHT_RULESET - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1) ////////////////////////////////////////////// // // @@ -82,23 +75,23 @@ /datum/dynamic_ruleset/latejoin/provocateur name = "Provocateur" persistent = TRUE - config_tag = "latejoin_revolution" antag_datum = /datum/antagonist/rev/head - antag_flag = ROLE_REV_HEAD + antag_flag = "rev head late" antag_flag_override = ROLE_REV - restricted_roles = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director") enemy_roles = list("AI", "Cyborg", "Security Officer","Detective","Head of Security", "Captain", "Warden") - required_enemies = list(4,4,3,3,3,3,3,2,2,1) + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 weight = 2 - delay = 1 MINUTES // Prevents rule start while head is offstation. + delay = 1 MINUTES // Prevents rule start while head is offstation. cost = 20 - requirements = list(101,101,70,40,40,40,40,40,40,40) - high_population_requirement = 40 - flags = HIGHLANDER_RULESET - property_weights = list("trust" = -2, "chaos" = 2, "extended" = -2, "valid" = 2, "conversion" = 1) + requirements = list(101,101,101,101,50,20,20,20,20,20) + flags = HIGH_IMPACT_RULESET + blocking_rules = list(/datum/dynamic_ruleset/roundstart/revs) var/required_heads_of_staff = 3 var/finished = FALSE + /// How much threat should be injected when the revolution wins? + var/revs_win_threat_injection = 20 var/datum/team/revolution/revolution /datum/dynamic_ruleset/latejoin/provocateur/ready(forced=FALSE) @@ -113,8 +106,8 @@ return (head_check >= required_heads_of_staff) /datum/dynamic_ruleset/latejoin/provocateur/execute() - var/mob/M = pick(candidates) // This should contain a single player, but in case. - if(check_eligible(M.mind)) // Didnt die/run off z-level/get implanted since leaving shuttle. + var/mob/M = pick(candidates) // This should contain a single player, but in case. + if(check_eligible(M.mind)) // Didnt die/run off z-level/get implanted since leaving shuttle. assigned += M.mind M.mind.special_role = antag_flag revolution = new() @@ -125,9 +118,7 @@ new_head = M.mind.add_antag_datum(new_head, revolution) revolution.update_objectives() revolution.update_heads() - SSshuttle.registerHostileEnvironment(src) - log_admin("[M.name] was made into a revolutionary by dynamic.") - message_admins("[M.name] was made into a revolutionary by dynamic.") + SSshuttle.registerHostileEnvironment(revolution) return TRUE else log_game("DYNAMIC: [ruletype] [name] discarded [M.name] from head revolutionary due to ineligibility.") @@ -135,153 +126,38 @@ return FALSE /datum/dynamic_ruleset/latejoin/provocateur/rule_process() - if(check_rev_victory()) - finished = REVOLUTION_VICTORY - return RULESET_STOP_PROCESSING - else if (check_heads_victory()) - finished = STATION_VICTORY - SSshuttle.clearHostileEnvironment(src) - priority_announce("It appears the mutiny has been quelled. Please return yourself and your colleagues to work. \ - We have remotely blacklisted the head revolutionaries from your cloning software to prevent accidental cloning.", null, "attention", null, "Central Command Loyalty Monitoring Division") - for(var/datum/mind/M in revolution.members) // Remove antag datums and prevent headrev cloning then restarting rebellions. - if(M.has_antag_datum(/datum/antagonist/rev/head)) - var/datum/antagonist/rev/head/R = M.has_antag_datum(/datum/antagonist/rev/head) - R.remove_revolutionary(FALSE, "gamemode") - var/mob/living/carbon/C = M.current - if(C.stat == DEAD) - C.makeUncloneable() - if(M.has_antag_datum(/datum/antagonist/rev)) - var/datum/antagonist/rev/R = M.has_antag_datum(/datum/antagonist/rev) - R.remove_revolutionary(FALSE, "gamemode") - return RULESET_STOP_PROCESSING + var/winner = revolution.process_victory(revs_win_threat_injection) + if (isnull(winner)) + return + + finished = winner + return RULESET_STOP_PROCESSING /// Checks for revhead loss conditions and other antag datums. -/datum/dynamic_ruleset/latejoin/provocateur/proc/check_eligible(var/datum/mind/M) +/datum/dynamic_ruleset/latejoin/provocateur/proc/check_eligible(datum/mind/M) var/turf/T = get_turf(M.current) if(!considered_afk(M) && considered_alive(M) && is_station_level(T.z) && !M.antag_datums?.len && !HAS_TRAIT(M, TRAIT_MINDSHIELD)) return TRUE return FALSE -/datum/dynamic_ruleset/latejoin/provocateur/check_finished() - if(finished == REVOLUTION_VICTORY) - return TRUE - else - return ..() - -/datum/dynamic_ruleset/latejoin/provocateur/proc/check_rev_victory() - for(var/datum/objective/mutiny/objective in revolution.objectives) - if(!(objective.check_completion())) - return FALSE - return TRUE - -/datum/dynamic_ruleset/latejoin/provocateur/proc/check_heads_victory() - for(var/datum/mind/rev_mind in revolution.head_revolutionaries()) - var/turf/T = get_turf(rev_mind.current) - if(!considered_afk(rev_mind) && considered_alive(rev_mind) && is_station_level(T.z)) - if(ishuman(rev_mind.current) || ismonkey(rev_mind.current)) - return FALSE - return TRUE - /datum/dynamic_ruleset/latejoin/provocateur/round_result() - if(finished == REVOLUTION_VICTORY) - SSticker.mode_result = "win - heads killed" - SSticker.news_report = REVS_WIN - else if(finished == STATION_VICTORY) - SSticker.mode_result = "loss - rev heads killed" - SSticker.news_report = REVS_LOSE + revolution.round_result(finished) ////////////////////////////////////////////// // // -// HERETIC SMUGGLER // +// HERETIC SMUGGLER // // // ////////////////////////////////////////////// /datum/dynamic_ruleset/latejoin/heretic_smuggler name = "Heretic Smuggler" antag_datum = /datum/antagonist/heretic - antag_flag = "latejoin_heretic" - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + antag_flag = "heretic late" + antag_flag_override = ROLE_HERETIC + protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain","Prisoner", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") restricted_roles = list("AI","Cyborg") required_candidates = 1 weight = 4 - cost = 25 - requirements = list(60,60,60,55,50,50,50,50,50,50) - flags = MINOR_RULESET - high_population_requirement = 50 - property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2) - repeatable = TRUE - -////////////////////////////////////////////// -// // -// BLOODSUCKERS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/latejoin/bloodsucker - name = "Bloodsucker Infiltrator" - config_tag = "latejoin_bloodsucker" - antag_datum = ANTAG_DATUM_BLOODSUCKER - antag_flag = ROLE_TRAITOR - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - required_candidates = 1 - weight = 3 cost = 10 - property_weights = list("story_potential" = 2, "extended" = 2, "trust" = -2, "valid" = 1) - requirements = list(70,65,60,55,50,45,40,35,30,30) - flags = MINOR_RULESET - high_population_requirement = 30 + requirements = list(101,101,101,50,40,10,10,10,10,10) repeatable = TRUE - -/datum/dynamic_ruleset/latejoin/bloodsucker/execute() - var/mob/M = pick(candidates) - assigned += M.mind - M.mind.special_role = antag_flag - if(mode.make_bloodsucker(M.mind)) - mode.bloodsuckers += M - log_admin("[M.name] was made into a bloodsucker by dynamic.") - message_admins("[M.name] was made into a bloodsucker by dynamic.") - return TRUE - -////////////////////////////////////////////// -// // -// CHANGELINGS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/latejoin/changeling - name = "Changeling Infiltrator" - config_tag = "latejoin_changeling" - antag_flag = ROLE_CHANGELING - antag_datum = /datum/antagonist/changeling - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - required_candidates = 1 - weight = 3 - cost = 15 - flags = MINOR_RULESET - requirements = list(101,101,101,101,101,101,101,101,101,101) - property_weights = list("trust" = -2, "valid" = 2) - high_population_requirement = 101 - -////////////////////////////////////////////// -// // -// COLLECTOR // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/latejoin/collector - name = "Contraband Collector" - config_tag = "latejoin_collector" - antag_datum = /datum/antagonist/collector - antag_flag = ROLE_MINOR_ANTAG - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - required_candidates = 1 - weight = 5 - cost = 1 - requirements = list(10,10,10,10,10,10,10,10,10,10) - high_population_requirement = 10 - repeatable = TRUE - flags = TRAITOR_RULESET | MINOR_RULESET | FAKE_ANTAG_RULESET - property_weights = list("story_potential" = 1, "trust" = -1, "extended" = 2) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 61732b30eb..a89ca65e3a 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -1,5 +1,7 @@ -#define REVENANT_SPAWN_THRESHOLD 20 -#define ABDUCTOR_MAX_TEAMS 4 // blame TG for not using the defines files +/// Probability the AI going malf will be accompanied by an ion storm announcement and some ion laws. +#define MALF_ION_PROB 33 +/// The probability to replace an existing law with an ion law instead of adding a new ion law. +#define REPLACE_LAW_WITH_ION_PROB 10 ////////////////////////////////////////////// // // @@ -17,24 +19,20 @@ var/list/living_antags = list() var/list/dead_players = list() var/list/list_observers = list() - var/list/ghost_eligible = list() /datum/dynamic_ruleset/midround/from_ghosts weight = 0 + required_type = /mob/dead/observer /// Whether the ruleset should call generate_ruleset_body or not. var/makeBody = TRUE + /// The rule needs this many applicants to be properly executed. + var/required_applicants = 1 /datum/dynamic_ruleset/midround/trim_candidates() - // - // All you need to know is that here, the candidates list contains 4 lists itself, indexed with the following defines: - // Candidates = list(CURRENT_LIVING_PLAYERS, CURRENT_LIVING_ANTAGS, CURRENT_DEAD_PLAYERS, CURRENT_OBSERVERS) - // So for example you can get the list of all current dead players with var/list/dead_players = candidates[CURRENT_DEAD_PLAYERS] - // Make sure to properly typecheck the mobs in those lists, as the dead_players list could contain ghosts, or dead players still in their bodies. - // We're still gonna trim the obvious (mobs without clients, jobbanned players, etc) living_players = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) living_antags = trim_list(mode.current_players[CURRENT_LIVING_ANTAGS]) + dead_players = trim_list(mode.current_players[CURRENT_DEAD_PLAYERS]) list_observers = trim_list(mode.current_players[CURRENT_OBSERVERS]) - ghost_eligible = trim_list(get_all_ghost_role_eligible()) /datum/dynamic_ruleset/midround/proc/trim_list(list/L = list()) var/list/trimmed_list = L.Copy() @@ -42,24 +40,21 @@ if (!istype(M, required_type)) trimmed_list.Remove(M) continue - if (HAS_TRAIT(M, TRAIT_NO_MIDROUND_ANTAG)) - trimmed_list.Remove(M) - continue if (!M.client) // Are they connected? trimmed_list.Remove(M) continue - if(M.client.prefs && M.client.prefs.toggles & MIDROUND_ANTAG) - trimmed_list.Remove(M) - continue if(!mode.check_age(M.client, minimum_required_age)) trimmed_list.Remove(M) continue + if(ROLE_NO_ANTAGONISM in M.client.prefs.be_special) + trimmed_list.Remove(M) + continue if(antag_flag_override) - if(!(antag_flag_override in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag_override)) + if(!(HAS_ANTAG_PREF(M.client, antag_flag_override))) trimmed_list.Remove(M) continue else - if(!(antag_flag in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag)) + if(!(HAS_ANTAG_PREF(M.client, antag_flag))) trimmed_list.Remove(M) continue if (M.mind) @@ -74,56 +69,35 @@ continue return trimmed_list -/datum/dynamic_ruleset/midround/from_ghosts/trim_list(list/L = list()) - var/list/trimmed_list = L.Copy() - for(var/mob/M in trimmed_list) - if (!M.client) // Are they connected? - trimmed_list.Remove(M) - continue - if(!mode.check_age(M.client, minimum_required_age)) - trimmed_list.Remove(M) - continue - if(antag_flag_override) - if(!(antag_flag_override in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag_override)) - trimmed_list.Remove(M) - continue - else - if(!(antag_flag in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag)) - trimmed_list.Remove(M) - continue - return trimmed_list - // You can then for example prompt dead players in execute() to join as strike teams or whatever // Or autotator someone // IMPORTANT, since /datum/dynamic_ruleset/midround may accept candidates from both living, dead, and even antag players, you need to manually check whether there are enough candidates -// (see /datum/dynamic_ruleset/midround/autotraitor/ready(var/forced = FALSE) for example) +// (see /datum/dynamic_ruleset/midround/autotraitor/ready(forced = FALSE) for example) /datum/dynamic_ruleset/midround/ready(forced = FALSE) if (!forced) var/job_check = 0 if (enemy_roles.len > 0) for (var/mob/M in mode.current_players[CURRENT_LIVING_PLAYERS]) - if (M.stat == DEAD) - continue // Dead players cannot count as opponents - if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) + if (M.stat == DEAD || !M.client) + continue // Dead/disconnected players cannot count as opponents + if (M.mind && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles))) job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it - var/threat = clamp(round(mode.threat_level/10),1,10) + var/threat = round(mode.threat_level/10) if (job_check < required_enemies[threat]) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles") return FALSE return TRUE -/datum/dynamic_ruleset/midround/from_ghosts/ready(forced = FALSE) - if (required_candidates > ghost_eligible.len) - SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts") - return FALSE - return ..() - - /datum/dynamic_ruleset/midround/from_ghosts/execute() - var/application_successful = send_applications(ghost_eligible) - return assigned.len > 0 && application_successful + var/list/possible_candidates = list() + possible_candidates.Add(dead_players) + possible_candidates.Add(list_observers) + send_applications(possible_candidates) + if(assigned.len > 0) + return TRUE + else + return FALSE /// This sends a poll to ghosts if they want to be a ghost spawn from a ruleset. /datum/dynamic_ruleset/midround/from_ghosts/proc/send_applications(list/possible_volunteers = list()) @@ -133,25 +107,24 @@ message_admins("Polling [possible_volunteers.len] players to apply for the [name] ruleset.") log_game("DYNAMIC: Polling [possible_volunteers.len] players to apply for the [name] ruleset.") - candidates = pollGhostCandidates("The mode is looking for volunteers to become a [name]", antag_flag, SSticker.mode, antag_flag, poll_time = 300) + candidates = pollGhostCandidates("The mode is looking for volunteers to become [antag_flag] for [name]", antag_flag, be_special_flag = antag_flag_override ? antag_flag_override : antag_flag, poll_time = 300) - if(!candidates || candidates.len < required_candidates) - message_admins("The ruleset [name] did not receive enough applications.") - if(candidates) - message_admins("Only received [candidates.len], needed [required_candidates].") - else - message_admins("There were no candidates.") - log_game("DYNAMIC: The ruleset [name] did not receive enough applications.") - return FALSE + if(!candidates || candidates.len <= 0) + mode.dynamic_log("The ruleset [name] received no applications.") + mode.executed_rules -= src + attempt_replacement() + return message_admins("[candidates.len] players volunteered for the ruleset [name].") log_game("DYNAMIC: [candidates.len] players volunteered for [name].") review_applications() - return TRUE /// Here is where you can check if your ghost applicants are valid for the ruleset. /// Called by send_applications(). /datum/dynamic_ruleset/midround/from_ghosts/proc/review_applications() + if(candidates.len < required_applicants) + mode.executed_rules -= src + return for (var/i = 1, i <= required_candidates, i++) if(candidates.len <= 0) break @@ -175,7 +148,7 @@ finish_setup(new_character, i) assigned += applicant - notify_ghosts("[new_character] has been picked for the ruleset [name]!", source = new_character, action = NOTIFY_ORBIT) + notify_ghosts("[new_character] has been picked for the ruleset [name]!", source = new_character, action = NOTIFY_ORBIT, header="Something Interesting!") /datum/dynamic_ruleset/midround/from_ghosts/proc/generate_ruleset_body(mob/applicant) var/mob/living/carbon/human/new_character = makeBody(applicant) @@ -191,6 +164,20 @@ /datum/dynamic_ruleset/midround/from_ghosts/proc/setup_role(datum/antagonist/new_role) return +/// Fired when there are no valid candidates. Will spawn a sleeper agent or latejoin traitor. +/datum/dynamic_ruleset/midround/from_ghosts/proc/attempt_replacement() + var/datum/dynamic_ruleset/midround/autotraitor/sleeper_agent = new + + // Otherwise, it has a chance to fail. We don't want that, since this is already pretty unlikely. + sleeper_agent.has_failure_chance = FALSE + + mode.configure_ruleset(sleeper_agent) + + if (!mode.picking_specific_rule(sleeper_agent)) + return + + mode.picking_specific_rule(/datum/dynamic_ruleset/latejoin/infiltrator) + ////////////////////////////////////////////// // // // SYNDICATE TRAITORS // @@ -199,39 +186,45 @@ /datum/dynamic_ruleset/midround/autotraitor name = "Syndicate Sleeper Agent" - config_tag = "midround_traitor" antag_datum = /datum/antagonist/traitor - antag_flag = ROLE_TRAITOR - restricted_roles = list("AI", "Cyborg", "Positronic Brain") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + antag_flag = "traitor mid" + protected_roles = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") + restricted_roles = list("Cyborg", "AI", "Positronic Brain") required_candidates = 1 weight = 7 cost = 10 - requirements = list(30,25,20,15,15,15,15,15,15,15) + requirements = list(101,40,30,20,10,10,10,10,10,10) repeatable = TRUE - high_population_requirement = 15 - flags = TRAITOR_RULESET | MINOR_RULESET | ALWAYS_MAX_WEIGHT_RULESET - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1) + + /// Whether or not this instance of sleeper agent should be randomly acceptable. + /// If TRUE, then this has a threat level% chance to succeed. + var/has_failure_chance = TRUE /datum/dynamic_ruleset/midround/autotraitor/acceptable(population = 0, threat = 0) var/player_count = mode.current_players[CURRENT_LIVING_PLAYERS].len var/antag_count = mode.current_players[CURRENT_LIVING_ANTAGS].len var/max_traitors = round(player_count / 10) + 1 - if ((antag_count < max_traitors) && prob(min(100,mode.threat_level)))//adding traitors if the antag population is getting low - return ..() - else + + // adding traitors if the antag population is getting low + var/too_little_antags = antag_count < max_traitors + if (!too_little_antags) + log_game("DYNAMIC: Too many living antags compared to living players ([antag_count] living antags, [player_count] living players, [max_traitors] max traitors)") return FALSE + if (has_failure_chance && !prob(mode.threat_level)) + log_game("DYNAMIC: Random chance to roll autotraitor failed, it was a [mode.threat_level]% chance.") + return FALSE + + return ..() + /datum/dynamic_ruleset/midround/autotraitor/trim_candidates() ..() for(var/mob/living/player in living_players) if(issilicon(player)) // Your assigned role doesn't change when you are turned into a silicon. living_players -= player - continue - if(is_centcom_level(player.z)) + else if(is_centcom_level(player.z)) living_players -= player // We don't autotator people in CentCom - continue - if(player.mind && (player.mind.special_role || player.mind.antag_datums?.len > 0)) + else if(player.mind && (player.mind.special_role || player.mind.antag_datums?.len > 0)) living_players -= player // We don't autotator people with roles already /datum/dynamic_ruleset/midround/autotraitor/ready(forced = FALSE) @@ -245,63 +238,55 @@ living_players -= M var/datum/antagonist/traitor/newTraitor = new M.mind.add_antag_datum(newTraitor) - log_admin("[M] was made into a traitor by dynamic.") - message_admins("[M] was made into a traitor by dynamic.") + message_admins("[ADMIN_LOOKUPFLW(M)] was selected by the [name] ruleset and has been made into a midround traitor.") + log_game("DYNAMIC: [key_name(M)] was selected by the [name] ruleset and has been made into a midround traitor.") return TRUE - ////////////////////////////////////////////// // // // Malfunctioning AI // -// // +// // ////////////////////////////////////////////// /datum/dynamic_ruleset/midround/malf name = "Malfunctioning AI" - config_tag = "midround_malf_ai" antag_datum = /datum/antagonist/traitor antag_flag = ROLE_MALF enemy_roles = list("Security Officer", "Warden","Detective","Head of Security", "Captain", "Scientist", "Chemist", "Research Director", "Chief Engineer") exclusive_roles = list("AI") - required_enemies = list(6,6,6,4,4,4,2,2,2,1) + required_enemies = list(4,4,4,4,4,4,2,2,2,0) required_candidates = 1 - weight = 2 + weight = 3 cost = 35 - requirements = list(101,101,70,50,50,50,40,30,30,30) - high_population_requirement = 30 + requirements = list(101,101,80,70,60,60,50,50,40,40) required_type = /mob/living/silicon/ai - property_weights = list("story_potential" = 2, "trust" = 1, "chaos" = 2) - var/ion_announce = 33 - var/removeDontImproveChance = 10 - -/datum/dynamic_ruleset/midround/malf/ready() - if(!candidates || !candidates.len) - return FALSE - return ..() /datum/dynamic_ruleset/midround/malf/trim_candidates() ..() - for(var/mob/living/player in living_players) + candidates = living_players + for(var/mob/living/player in candidates) if(!isAI(player)) candidates -= player continue + if(is_centcom_level(player.z)) candidates -= player continue + if(player.mind && (player.mind.special_role || player.mind.antag_datums?.len > 0)) candidates -= player /datum/dynamic_ruleset/midround/malf/execute() + if(!candidates || !candidates.len) + return FALSE var/mob/living/silicon/ai/M = pick_n_take(candidates) assigned += M.mind var/datum/antagonist/traitor/AI = new M.mind.special_role = antag_flag M.mind.add_antag_datum(AI) - log_admin("[M] was made into a malf AI by dynamic.") - message_admins("[M] was made into a malf AI by dynamic.") - if(prob(ion_announce)) + if(prob(MALF_ION_PROB)) priority_announce("Ion storm detected near the station. Please check all AI-controlled equipment for errors.", "Anomaly Alert", "ionstorm") - if(prob(removeDontImproveChance)) + if(prob(REPLACE_LAW_WITH_ION_PROB)) M.replace_random_law(generate_ion_law(), list(LAW_INHERENT, LAW_SUPPLIED, LAW_ION)) else M.add_ion_law(generate_ion_law()) @@ -315,21 +300,21 @@ /datum/dynamic_ruleset/midround/from_ghosts/wizard name = "Wizard" - config_tag = "midround_wizard" antag_datum = /datum/antagonist/wizard - antag_flag = ROLE_WIZARD + antag_flag = "wizard mid" + antag_flag_override = ROLE_WIZARD enemy_roles = list("Security Officer","Detective","Head of Security", "Captain") - required_enemies = list(4,4,3,2,2,1,1,0,0,0) + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 - weight = 1 + weight = 2 cost = 20 - requirements = list(90,90,70,50,50,50,50,40,30,30) - high_population_requirement = 30 + requirements = list(101,101,100,80,50,30,20,10,10,10) repeatable = TRUE - property_weights = list("story_potential" = 2, "trust" = 1, "chaos" = 2, "extended" = -2) var/datum/mind/wizard /datum/dynamic_ruleset/midround/from_ghosts/wizard/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + return FALSE if(GLOB.wizardstart.len == 0) log_admin("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.") message_admins("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.") @@ -341,7 +326,7 @@ new_character.forceMove(pick(GLOB.wizardstart)) wizard = new_character.mind -/datum/dynamic_ruleset/midround/from_ghosts/wizard/rule_process() // i can literally copy this from are_special_antags_dead it's great +/datum/dynamic_ruleset/midround/from_ghosts/wizard/rule_process() if(isliving(wizard.current) && wizard.current.stat!=DEAD) return FALSE for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead() @@ -362,34 +347,31 @@ /datum/dynamic_ruleset/midround/from_ghosts/nuclear name = "Nuclear Assault" - config_tag = "midround_nuclear" - antag_flag = ROLE_OPERATIVE + antag_flag = "nukie mid" antag_datum = /datum/antagonist/nukeop + antag_flag_override = ROLE_OPERATIVE enemy_roles = list("AI", "Cyborg", "Security Officer", "Warden","Detective","Head of Security", "Captain") - required_enemies = list(5,5,4,3,3,2,2,2,1,1) + required_enemies = list(3,3,3,3,3,2,1,1,0,0) required_candidates = 5 - weight = 5 + weight = 3 cost = 35 - requirements = list(90,90,90,80,70,60,50,40,40,40) - high_population_requirement = 40 - property_weights = list("story_potential" = 2, "trust" = 2, "chaos" = 2, "extended" = -2, "valid" = 2) - var/operative_cap = list(2,2,3,3,4,5,5,5,5,5) + requirements = list(101,101,101,80,50,40,30,15,10,10) + var/list/operative_cap = list(2,2,3,3,3,4,5,5,5,5) var/datum/team/nuclear/nuke_team - flags = HIGHLANDER_RULESET + flags = HIGH_IMPACT_RULESET /datum/dynamic_ruleset/midround/from_ghosts/nuclear/acceptable(population=0, threat=0) if (locate(/datum/dynamic_ruleset/roundstart/nuclear) in mode.executed_rules) return FALSE // Unavailable if nuke ops were already sent at roundstart - indice_pop = min(10, round(living_players.len/5)+1) - /* NOTE: The above line's magic value of "10" is a hack due to the fact that byond was - not recognizing operative_cap as a defined variable. It should be operative_cap.len-- - and yes, this means that if the len is changed, this variable must be changed along with it. - One day, once the mystery of why this issue was occuring is figured out, - we may change it back, but until this day comes, we must make it simply 10. - */ + indice_pop = min(operative_cap.len, round(living_players.len/5)+1) required_candidates = operative_cap[indice_pop] return ..() +/datum/dynamic_ruleset/midround/from_ghosts/nuclear/ready(forced = FALSE) + if (required_candidates > (dead_players.len + list_observers.len)) + return FALSE + return ..() + /datum/dynamic_ruleset/midround/from_ghosts/nuclear/finish_setup(mob/new_character, index) new_character.mind.special_role = "Nuclear Operative" new_character.mind.assigned_role = "Nuclear Operative" @@ -408,24 +390,55 @@ /datum/dynamic_ruleset/midround/from_ghosts/blob name = "Blob" - config_tag = "blob" antag_datum = /datum/antagonist/blob antag_flag = ROLE_BLOB enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") - required_enemies = list(3,3,2,2,2,1,1,1,1,0) + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 - blocking_rules = list(/datum/dynamic_ruleset/roundstart/clockcult) - weight = 4 - cost = 20 - requirements = list(101,101,101,80,60,50,50,50,50,50) - high_population_requirement = 50 + weight = 2 + cost = 10 + requirements = list(101,101,101,101,70,40,25,20,10,10) repeatable = TRUE - property_weights = list("story_potential" = -1, "trust" = 2, "chaos" = 2, "extended" = -2, "valid" = 2) /datum/dynamic_ruleset/midround/from_ghosts/blob/generate_ruleset_body(mob/applicant) var/body = applicant.become_overmind() return body +/// Infects a random player, making them explode into a blob. +/datum/dynamic_ruleset/midround/blob_infection + name = "Blob Infection" + antag_datum = /datum/antagonist/blob + antag_flag = "blob mid" + protected_roles = list("Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") + restricted_roles = list("Cyborg", "AI", "Positronic Brain") + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 1 + weight = 2 + cost = 10 + requirements = list(101,101,101,101,70,40,25,20,10,10) + repeatable = TRUE + +/datum/dynamic_ruleset/midround/blob_infection/trim_candidates() + ..() + candidates = living_players + for(var/mob/living/player as anything in candidates) + var/turf/player_turf = get_turf(player) + if(!player_turf || !is_station_level(player_turf.z)) + candidates -= player + continue + + if(player.mind && (player.mind.special_role || length(player.mind.antag_datums) > 0)) + candidates -= player + +/datum/dynamic_ruleset/midround/blob_infection/execute() + if(!candidates || !candidates.len) + return FALSE + var/mob/living/carbon/human/blob_antag = pick_n_take(candidates) + assigned += blob_antag.mind + blob_antag.mind.special_role = antag_flag + return ..() + ////////////////////////////////////////////// // // // XENOMORPH (GHOST) // @@ -434,22 +447,20 @@ /datum/dynamic_ruleset/midround/from_ghosts/xenomorph name = "Alien Infestation" - config_tag = "xenos" antag_datum = /datum/antagonist/xeno antag_flag = ROLE_ALIEN enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") - required_enemies = list(3,3,2,2,1,1,1,1,1,0) + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 weight = 3 cost = 10 - requirements = list(101,101,101,70,50,50,50,50,50,50) - high_population_requirement = 50 - repeatable_weight_decrease = 2 + requirements = list(101,101,101,101,60,50,30,20,10,10) repeatable = TRUE - property_weights = list("story_potential" = -1, "trust" = 1, "chaos" = 2, "extended" = -2, "valid" = 2) var/list/vents = list() -/datum/dynamic_ruleset/midround/from_ghosts/xenomorph/ready() +/datum/dynamic_ruleset/midround/from_ghosts/xenomorph/execute() + // 50% chance of being incremented by one + required_candidates += prob(50) for(var/obj/machinery/atmospherics/components/unary/vent_pump/temp_vent in GLOB.machines) if(QDELETED(temp_vent)) continue @@ -463,18 +474,12 @@ vents += temp_vent if(!vents.len) return FALSE - return ..() - - -/datum/dynamic_ruleset/midround/from_ghosts/xenomorph/execute() - // 50% chance of being incremented by one - required_candidates += prob(50) . = ..() /datum/dynamic_ruleset/midround/from_ghosts/xenomorph/generate_ruleset_body(mob/applicant) var/obj/vent = pick_n_take(vents) var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc) - applicant.transfer_ckey(new_xeno, FALSE) + new_xeno.key = applicant.key message_admins("[ADMIN_LOOKUPFLW(new_xeno)] has been made into an alien by the midround ruleset.") log_game("DYNAMIC: [key_name(new_xeno)] was spawned as an alien by the midround ruleset.") return new_xeno @@ -487,24 +492,19 @@ /datum/dynamic_ruleset/midround/from_ghosts/nightmare name = "Nightmare" - config_tag = "nightmare" antag_datum = /datum/antagonist/nightmare antag_flag = "Nightmare" antag_flag_override = ROLE_ALIEN enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 - weight = 3 + weight = 4 cost = 10 - flags = MINOR_RULESET - requirements = list(101,101,101,70,50,40,20,15,15,15) - high_population_requirement = 50 - repeatable_weight_decrease = 2 + requirements = list(101,101,101,40,30,20,10,10,10,10) repeatable = TRUE - property_weights = list("story_potential" = 1, "trust" = 1, "extended" = 1, "valid" = 2, "integrity" = 1) var/list/spawn_locs = list() -/datum/dynamic_ruleset/midround/from_ghosts/nightmare/ready() +/datum/dynamic_ruleset/midround/from_ghosts/nightmare/execute() for(var/X in GLOB.xeno_spawn) var/turf/T = X var/light_amount = T.get_lumcount() @@ -512,7 +512,7 @@ spawn_locs += T if(!spawn_locs.len) return FALSE - return ..() + . = ..() /datum/dynamic_ruleset/midround/from_ghosts/nightmare/generate_ruleset_body(mob/applicant) var/datum/mind/player_mind = new /datum/mind(applicant.key) @@ -525,161 +525,263 @@ player_mind.add_antag_datum(/datum/antagonist/nightmare) S.set_species(/datum/species/shadow/nightmare) - playsound(S, 'sound/magic/ethereal_exit.ogg', 50, 1, -1) + playsound(S, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Nightmare by the midround ruleset.") log_game("DYNAMIC: [key_name(S)] was spawned as a Nightmare by the midround ruleset.") return S ////////////////////////////////////////////// // // -// SLAUGHTER DEMON // +// SPACE DRAGON (GHOST) // // // ////////////////////////////////////////////// - -/datum/dynamic_ruleset/midround/from_ghosts/slaughter_demon - name = "Slaughter Demon" - config_tag = "slaughter_demon" - antag_flag = ROLE_ALIEN - enemy_roles = list("Security Officer","Shaft Miner","Head of Security","Captain","Janitor","AI","Cyborg","Bartender") - required_enemies = list(3,2,2,2,2,1,1,1,1,0) +/datum/dynamic_ruleset/midround/from_ghosts/space_dragon + name = "Space Dragon" + antag_datum = /datum/antagonist/space_dragon + antag_flag = ROLE_SPACE_DRAGON + antag_flag_override = ROLE_SPACE_DRAGON + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 - weight = 4 - cost = 15 - requirements = list(101,101,101,90,80,70,60,50,40,30) - property_weights = list("story_potential" = -2, "extended" = -2, "integrity" = 2, "valid" = 2, "trust" = 2) - high_population_requirement = 30 + weight = 3 + cost = 10 + requirements = list(101,101,101,101,60,50,30,20,10,10) + repeatable = TRUE var/list/spawn_locs = list() -/datum/dynamic_ruleset/midround/from_ghosts/slaughter_demon/ready(forced = FALSE) - for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) - if(isturf(L.loc)) - spawn_locs += L.loc - +/datum/dynamic_ruleset/midround/from_ghosts/space_dragon/execute() + for(var/obj/effect/landmark/carpspawn/C in GLOB.landmarks_list) + spawn_locs += (C.loc) if(!spawn_locs.len) - return FALSE - return ..() + message_admins("No valid spawn locations found, aborting...") + return MAP_ERROR + . = ..() -/datum/dynamic_ruleset/midround/from_ghosts/slaughter_demon/generate_ruleset_body(mob/applicant) +/datum/dynamic_ruleset/midround/from_ghosts/space_dragon/generate_ruleset_body(mob/applicant) var/datum/mind/player_mind = new /datum/mind(applicant.key) - player_mind.active = 1 - var/obj/effect/dummy/phased_mob/slaughter/holder = new /obj/effect/dummy/phased_mob/slaughter((pick(spawn_locs))) - var/mob/living/simple_animal/slaughter/S = new (holder) - S.holder = holder + player_mind.active = TRUE + + var/mob/living/simple_animal/hostile/space_dragon/S = new (pick(spawn_locs)) player_mind.transfer_to(S) - player_mind.assigned_role = "Slaughter Demon" - player_mind.special_role = "Slaughter Demon" - player_mind.add_antag_datum(/datum/antagonist/slaughter) - to_chat(S, S.playstyle_string) - to_chat(S, "You are currently not currently in the same plane of existence as the station. Blood Crawl near a blood pool to manifest.") - SEND_SOUND(S, 'sound/magic/demon_dies.ogg') - message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a slaughter demon by dynamic.") - log_game("[key_name(S)] was spawned as a slaughter demon by dynamic.") + player_mind.assigned_role = "Space Dragon" + player_mind.special_role = ROLE_SPACE_DRAGON + player_mind.add_antag_datum(/datum/antagonist/space_dragon) + + playsound(S, 'sound/magic/ethereal_exit.ogg', 50, TRUE, -1) + message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a Space Dragon by the midround ruleset.") + log_game("DYNAMIC: [key_name(S)] was spawned as a Space Dragon by the midround ruleset.") + priority_announce("A large organic energy flux has been recorded near of [station_name()], please stand-by.", "Lifesign Alert") return S ////////////////////////////////////////////// // // -// ABDUCTORS // +// ABDUCTORS (GHOST) // // // ////////////////////////////////////////////// +#define ABDUCTOR_MAX_TEAMS 4 /datum/dynamic_ruleset/midround/from_ghosts/abductors name = "Abductors" - config_tag = "abductors" - antag_flag = ROLE_ABDUCTOR - // Has two antagonist flags, in fact - enemy_roles = list("AI", "Cyborg", "Security Officer", "Warden","Detective","Head of Security", "Captain") - required_enemies = list(3,3,2,2,1,1,0,0,0,0) + antag_flag = "Abductor" + antag_flag_override = ROLE_ABDUCTOR + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 2 - weight = 8 + required_applicants = 2 + weight = 3 cost = 10 - requirements = list(101,101,70,50,40,30,30,30,30,30) - blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear) - high_population_requirement = 15 - var/datum/team/abductor_team/team - property_weights = list("extended" = -2, "valid" = 1, "trust" = -1, "chaos" = 2) - repeatable_weight_decrease = 4 + requirements = list(101,101,101,101,101,40,25,20,10,10) repeatable = TRUE + var/datum/team/abductor_team/new_team /datum/dynamic_ruleset/midround/from_ghosts/abductors/ready(forced = FALSE) - team = new /datum/team/abductor_team - if(team.team_number > ABDUCTOR_MAX_TEAMS) + if (required_candidates > (dead_players.len + list_observers.len)) return FALSE return ..() /datum/dynamic_ruleset/midround/from_ghosts/abductors/finish_setup(mob/new_character, index) - switch(index) - if(1) // yeah this seems like a baffling anti-pattern but it's actually the best way to do this, shit you not - var/mob/living/carbon/human/agent = new_character - agent.mind.add_antag_datum(/datum/antagonist/abductor/agent, team) - log_game("[key_name(agent)] has been selected as [team.name] abductor agent.") - if(2) - var/mob/living/carbon/human/scientist = new_character - scientist.mind.add_antag_datum(/datum/antagonist/abductor/scientist, team) - log_game("[key_name(scientist)] has been selected as [team.name] abductor scientist.") + if (index == 1) // Our first guy is the scientist. We also initialize the team here as well since this should only happen once per pair of abductors. + new_team = new + if(new_team.team_number > ABDUCTOR_MAX_TEAMS) + return MAP_ERROR + var/datum/antagonist/abductor/scientist/new_role = new + new_character.mind.add_antag_datum(new_role, new_team) + else // Our second guy is the agent, team is already created, don't need to make another one. + var/datum/antagonist/abductor/agent/new_role = new + new_character.mind.add_antag_datum(new_role, new_team) + +#undef ABDUCTOR_MAX_TEAMS ////////////////////////////////////////////// // // -// SPACE NINJA // +// SWARMERS (GHOST) // // // ////////////////////////////////////////////// -/datum/dynamic_ruleset/midround/from_ghosts/ninja +/datum/dynamic_ruleset/midround/swarmers + name = "Swarmers" + antag_flag = "Swarmer" + antag_flag_override = ROLE_ALIEN + required_type = /mob/dead/observer + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 0 + weight = 3 + cost = 10 + requirements = list(101,101,101,101,60,50,30,20,10,10) + repeatable = TRUE + +/datum/dynamic_ruleset/midround/swarmers/execute() + var/list/spawn_locs = list() + for(var/x in GLOB.xeno_spawn) + var/turf/spawn_turf = x + var/light_amount = spawn_turf.get_lumcount() + if(light_amount < SHADOW_SPECIES_LIGHT_THRESHOLD) + spawn_locs += spawn_turf + if(!spawn_locs.len) + message_admins("No valid spawn locations found in GLOB.xeno_spawn, aborting swarmer spawning...") + return MAP_ERROR + new /obj/effect/mob_spawn/swarmer(get_turf(GLOB.the_gateway)) + log_game("A Swarmer was spawned via Dynamic Mode.") + return ..() + +////////////////////////////////////////////// +// // +// SPACE NINJA (GHOST) // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/midround/from_ghosts/space_ninja name = "Space Ninja" - config_tag = "ninja" - antag_flag = ROLE_NINJA - enemy_roles = list("Security Officer","Head of Security","Captain","AI","Cyborg") - required_enemies = list(3,2,2,2,2,1,1,1,1,0) + antag_datum = /datum/antagonist/ninja + antag_flag = "Space Ninja" + antag_flag_override = ROLE_NINJA + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) required_candidates = 1 weight = 4 - cost = 15 - flags = MINOR_RULESET - requirements = list(101,101,101,90,80,70,60,50,40,30) - high_population_requirement = 30 - property_weights = list("story_potential" = 1, "extended" = -2, "valid" = 2) + cost = 10 + requirements = list(101,101,101,80,60,50,30,20,10,10) + repeatable = TRUE var/list/spawn_locs = list() - var/spawn_loc -/datum/dynamic_ruleset/midround/from_ghosts/ninja/ready(forced = FALSE) - if(!spawn_loc) - var/list/spawn_locs = list() - for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list) - if(isturf(L.loc)) - spawn_locs += L.loc - for(var/obj/effect/landmark/loneopspawn/L in GLOB.landmarks_list) - if(isturf(L.loc)) - spawn_locs += L.loc - if(!spawn_locs.len) - return FALSE - spawn_loc = pick(spawn_locs) - if(!spawn_loc) +/datum/dynamic_ruleset/midround/from_ghosts/space_ninja/execute() + for(var/obj/effect/landmark/carpspawn/carp_spawn in GLOB.landmarks_list) + if(!isturf(carp_spawn.loc)) + stack_trace("Carp spawn found not on a turf: [carp_spawn.type] on [isnull(carp_spawn.loc) ? "null" : carp_spawn.loc.type]") + continue + spawn_locs += carp_spawn.loc + if(!spawn_locs.len) + message_admins("No valid spawn locations found, aborting...") + return MAP_ERROR + return ..() + +/datum/dynamic_ruleset/midround/from_ghosts/space_ninja/generate_ruleset_body(mob/applicant) + var/mob/living/carbon/human/ninja = create_space_ninja(pick(spawn_locs)) + ninja.key = applicant.key + ninja.mind.add_antag_datum(/datum/antagonist/ninja) + + message_admins("[ADMIN_LOOKUPFLW(ninja)] has been made into a Space Ninja by the midround ruleset.") + log_game("DYNAMIC: [key_name(ninja)] was spawned as a Space Ninja by the midround ruleset.") + return ninja + +////////////////////////////////////////////// +// // +// Revenant (GHOST) // +// // +////////////////////////////////////////////// + +/// Revenant ruleset +/datum/dynamic_ruleset/midround/from_ghosts/revenant + name = "Revenant" + antag_datum = /datum/antagonist/revenant + antag_flag = "Revenant" + antag_flag_override = ROLE_REVENANT + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 1 + weight = 4 + cost = 10 + requirements = list(101,101,101,70,50,40,20,15,10,10) + repeatable = TRUE + var/dead_mobs_required = 20 + var/need_extra_spawns_value = 15 + var/list/spawn_locs = list() + +/datum/dynamic_ruleset/midround/from_ghosts/revenant/acceptable(population=0, threat=0) + if(GLOB.dead_mob_list.len < dead_mobs_required) return FALSE return ..() -/datum/dynamic_ruleset/midround/from_ghosts/ninja/generate_ruleset_body(mob/applicant) - var/key = applicant.key +/datum/dynamic_ruleset/midround/from_ghosts/revenant/execute() + for(var/mob/living/corpse in GLOB.dead_mob_list) //look for any dead bodies + var/turf/corpse_turf = get_turf(corpse) + if(corpse_turf && is_station_level(corpse_turf.z)) + spawn_locs += corpse_turf + if(!spawn_locs.len || spawn_locs.len < need_extra_spawns_value) //look for any morgue trays, crematoriums, ect if there weren't alot of dead bodies on the station to pick from + for(var/obj/structure/bodycontainer/corpse_container in GLOB.bodycontainers) + var/turf/container_turf = get_turf(corpse_container) + if(container_turf && is_station_level(container_turf.z)) + spawn_locs += container_turf + if(!spawn_locs.len) //If we can't find any valid spawnpoints, try the carp spawns + for(var/obj/effect/landmark/carpspawn/carp_spawnpoint in GLOB.landmarks_list) + if(isturf(carp_spawnpoint.loc)) + spawn_locs += carp_spawnpoint.loc + if(!spawn_locs.len) //If we can't find THAT, then just give up and cry + return FALSE + . = ..() - //Prepare ninja player mind - var/datum/mind/Mind = new /datum/mind(key) - Mind.assigned_role = ROLE_NINJA - Mind.special_role = ROLE_NINJA - Mind.active = 1 +/datum/dynamic_ruleset/midround/from_ghosts/revenant/generate_ruleset_body(mob/applicant) + var/mob/living/simple_animal/revenant/revenant = new(pick(spawn_locs)) + revenant.key = applicant.key + message_admins("[ADMIN_LOOKUPFLW(revenant)] has been made into a revenant by the midround ruleset.") + log_game("[key_name(revenant)] was spawned as a revenant by the midround ruleset.") + return revenant - //spawn the ninja and assign the candidate - var/mob/living/carbon/human/Ninja = create_space_ninja(spawn_loc) - Mind.transfer_to(Ninja) - var/datum/antagonist/ninja/ninjadatum = new - Mind.add_antag_datum(ninjadatum) +/// Sentient Disease ruleset +/datum/dynamic_ruleset/midround/from_ghosts/sentient_disease + name = "Sentient Disease" + antag_datum = /datum/antagonist/disease + antag_flag = "Sentient Disease" + antag_flag_override = ROLE_ALIEN + required_candidates = 1 + weight = 4 + cost = 10 + requirements = list(101,101,101,70,50,40,20,15,10,10) + repeatable = TRUE - if(Ninja.mind != Mind) //something has gone wrong! - stack_trace("Ninja created with incorrect mind") +/datum/dynamic_ruleset/midround/from_ghosts/sentient_disease/generate_ruleset_body(mob/applicant) + var/mob/camera/disease/virus = new /mob/camera/disease(SSmapping.get_station_center()) + virus.key = applicant.key + INVOKE_ASYNC(virus, /mob/camera/disease/proc/pick_name) + message_admins("[ADMIN_LOOKUPFLW(virus)] has been made into a sentient disease by the midround ruleset.") + log_game("[key_name(virus)] was spawned as a sentient disease by the midround ruleset.") + return virus - message_admins("[ADMIN_LOOKUPFLW(Ninja)] has been made into a ninja by dynamic.") - log_game("[key_name(Ninja)] was spawned as a ninja by dynamic.") - return Ninja +/// Space Pirates ruleset +/datum/dynamic_ruleset/midround/pirates + name = "Space Pirates" + antag_flag = "Space Pirates" + required_type = /mob/dead/observer + enemy_roles = list("Security Officer", "Detective", "Head of Security", "Captain") + required_enemies = list(2,2,1,1,1,1,1,0,0,0) + required_candidates = 0 + weight = 4 + cost = 10 + requirements = list(101,101,101,50,40,25,10,10,10,10) + repeatable = TRUE -/datum/dynamic_ruleset/midround/from_ghosts/ninja/finish_setup(mob/new_character, index) - return +/datum/dynamic_ruleset/midround/pirates/acceptable(population=0, threat=0) + if (!SSmapping.empty_space) + return FALSE + return ..() -#undef ABDUCTOR_MAX_TEAMS -#undef REVENANT_SPAWN_THRESHOLD +/datum/dynamic_ruleset/midround/pirates/execute() + send_pirate_threat() + return ..() + +/// Probability the AI going malf will be accompanied by an ion storm announcement and some ion laws. +#undef MALF_ION_PROB +/// The probability to replace an existing law with an ion law instead of adding a new ion law. +#undef REPLACE_LAW_WITH_ION_PROB diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_minor.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_minor.dm deleted file mode 100644 index 74a61bd3ff..0000000000 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_minor.dm +++ /dev/null @@ -1,255 +0,0 @@ -/datum/dynamic_ruleset/minor/proc/trim_list(list/L = list()) - var/list/trimmed_list = L.Copy() - for(var/mob/M in trimmed_list) - if (!ishuman(M)) - trimmed_list.Remove(M) - continue - if (HAS_TRAIT(M, TRAIT_NO_MIDROUND_ANTAG)) - trimmed_list.Remove(M) - continue - if (!M.client) // Are they connected? - trimmed_list.Remove(M) - continue - if(!mode.check_age(M.client, minimum_required_age)) - trimmed_list.Remove(M) - continue - if(antag_flag_override) - if(!(antag_flag_override in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag_override)) - trimmed_list.Remove(M) - continue - else - if(!(antag_flag in M.client.prefs.be_special) || jobban_isbanned(M.ckey, antag_flag)) - trimmed_list.Remove(M) - continue - if (M.mind) - if ((M.mind.assigned_role in GLOB.exp_specialmap[EXP_TYPE_SPECIAL])) // Are they playing a ghost role? - trimmed_list.Remove(M) - continue - if (M.mind.assigned_role in restricted_roles) // Does their job allow it? - trimmed_list.Remove(M) - continue - if ((exclusive_roles.len > 0) && !(M.mind.assigned_role in exclusive_roles)) // Is the rule exclusive to their job? - trimmed_list.Remove(M) - continue - return trimmed_list - -/datum/dynamic_ruleset/minor/trim_candidates() - // - // All you need to know is that here, the candidates list contains 4 lists itself, indexed with the following defines: - // Candidates = list(CURRENT_LIVING_PLAYERS, CURRENT_LIVING_ANTAGS, CURRENT_DEAD_PLAYERS, CURRENT_OBSERVERS) - // So for example you can get the list of all current dead players with var/list/dead_players = candidates[CURRENT_DEAD_PLAYERS] - // Make sure to properly typecheck the mobs in those lists, as the dead_players list could contain ghosts, or dead players still in their bodies. - // We're still gonna trim the obvious (mobs without clients, jobbanned players, etc) - candidates = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) - -////////////////////////////////////////////// -// // -// SYNDICATE TRAITORS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/minor/traitor - name = "Traitors" - config_tag = "traitor" // these having identical config tags to the roundstart modes is 100% intentional, so that config edits are simpler - persistent = TRUE - antag_flag = ROLE_TRAITOR - antag_datum = /datum/antagonist/traitor/ - minimum_required_age = 0 - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster", "Cyborg") - restricted_roles = list("Cyborg", "AI") - required_candidates = 1 - weight = 5 - flags = TRAITOR_RULESET | ALWAYS_MAX_WEIGHT_RULESET - cost = 10 // Avoid raising traitor threat above 10, as it is the default low cost ruleset. - requirements = list(50,50,50,50,50,50,50,50,50,50) - high_population_requirement = 40 - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1, "valid" = 1) - -/datum/dynamic_ruleset/minor/traitor/execute() - var/mob/M = pick_n_take(candidates) - assigned += M - var/datum/antagonist/traitor/newTraitor = new - M.mind.add_antag_datum(newTraitor) - log_admin("[M] was made into a traitor by dynamic.") - message_admins("[M] was made into a traitor by dynamic.") - return TRUE - -////////////////////////////////////////// -// // -// BLOOD BROTHERS // -// // -////////////////////////////////////////// - -/datum/dynamic_ruleset/minor/traitorbro - name = "Blood Brothers" - config_tag = "traitorbro" - antag_flag = ROLE_BROTHER - antag_datum = /datum/antagonist/brother - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - required_candidates = 2 - weight = 4 - cost = 10 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - antag_cap = list(2,2,2,2,2,2,2,2,2,2) // Can pick 3 per team, but rare enough it doesn't matter. - property_weights = list("story_potential" = 1, "trust" = -1, "extended" = 1, "valid" = 1) - var/list/datum/team/brother_team/pre_brother_teams = list() - var/const/min_team_size = 2 - -/datum/dynamic_ruleset/minor/traitorbro/execute() - if(candidates.len < min_team_size || candidates.len < required_candidates) - return FALSE - var/datum/team/brother_team/team = new - var/team_size = prob(10) ? min(3, candidates.len) : 2 - for(var/k = 1 to team_size) - var/mob/bro = pick_n_take(candidates) - assigned += bro.mind - team.add_member(bro.mind) - bro.mind.special_role = "brother" - bro.mind.restricted_roles = restricted_roles - team.pick_meeting_area() - team.forge_brother_objectives() - for(var/datum/mind/M in team.members) - M.add_antag_datum(/datum/antagonist/brother, team) - team.update_name() - mode.brother_teams += team - -////////////////////////////////////////////// -// // -// CHANGELINGS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/minor/changeling - name = "Changelings" - config_tag = "changeling" - antag_flag = ROLE_CHANGELING - antag_datum = /datum/antagonist/changeling - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - required_candidates = 1 - weight = 3 - cost = 15 - scaling_cost = 15 - requirements = list(101,101,101,101,101,101,101,101,101,101) - property_weights = list("trust" = -2, "valid" = 2) - high_population_requirement = 10 - antag_cap = list(1,1,1,1,1,2,2,2,2,3) - var/team_mode_probability = 30 - -/datum/dynamic_ruleset/minor/changeling/execute() - var/mob/M = pick_n_take(candidates) - assigned += M.mind - M.mind.restricted_roles = restricted_roles - M.mind.special_role = ROLE_CHANGELING - var/datum/antagonist/changeling/new_antag = new antag_datum() - M.mind.add_antag_datum(new_antag) - return TRUE - -////////////////////////////////////////////// -// // -// ELDRITCH CULT // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/minor/heretics - name = "Heretic" - antag_flag = "heretic" - antag_datum = /datum/antagonist/heretic - protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain") - restricted_roles = list("AI", "Cyborg") - required_candidates = 1 - weight = 3 - cost = 25 - scaling_cost = 15 - requirements = list(60,60,60,55,50,50,50,50,50,50) - property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2) - antag_cap = list(1,1,1,1,2,2,2,2,3,3) - high_population_requirement = 50 - - -/datum/dynamic_ruleset/minor/heretics/pre_execute() - var/mob/picked_candidate = pick_n_take(candidates) - assigned += picked_candidate.mind - picked_candidate.mind.restricted_roles = restricted_roles - picked_candidate.mind.special_role = ROLE_HERETIC - var/datum/antagonist/heretic/new_antag = new antag_datum() - picked_candidate.mind.add_antag_datum(new_antag) - return TRUE - -////////////////////////////////////////////// -// // -// DEVIL // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/minor/devil - name = "Devil" - config_tag = "devil" - antag_flag = ROLE_DEVIL - antag_datum = /datum/antagonist/devil - restricted_roles = list("Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI") - required_candidates = 1 - weight = 3 - cost = 0 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - antag_cap = list(1,1,1,2,2,2,3,3,3,4) - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/minor/devil/pre_execute() - var/mob/devil = pick_n_take(candidates) - assigned += devil.mind - devil.mind.special_role = ROLE_DEVIL - devil.mind.restricted_roles = restricted_roles - - log_game("[key_name(devil)] has been selected as a devil") - add_devil(devil, ascendable = TRUE) - add_devil_objectives(devil.mind,2) - return TRUE - -/datum/dynamic_ruleset/minor/devil/proc/add_devil_objectives(datum/mind/devil_mind, quantity) - var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) - var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil) - for(var/i = 1 to quantity) - var/type = pick(validtypes) - var/datum/objective/devil/objective = new type(null) - objective.owner = devil_mind - D.objectives += objective - if(!istype(objective, /datum/objective/devil/buy_target)) - validtypes -= type - else - objective.find_target() - -////////////////////////////////////////////// -// // -// BLOODSUCKERS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/minor/bloodsucker - name = "Bloodsuckers" - config_tag = "bloodsucker" - antag_flag = ROLE_BLOODSUCKER - antag_datum = ANTAG_DATUM_BLOODSUCKER - minimum_required_age = 0 - protected_roles = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - restricted_roles = list("Cyborg", "AI") - required_candidates = 1 - weight = 2 - cost = 15 - scaling_cost = 10 - property_weights = list("story_potential" = 1, "extended" = 1, "trust" = -2, "valid" = 1) - requirements = list(70,65,60,55,50,50,50,50,50,50) - high_population_requirement = 50 - -/datum/dynamic_ruleset/minor/bloodsucker/execute() - var/mob/M = pick_n_take(candidates) - assigned += M.mind - M.mind.special_role = ROLE_BLOODSUCKER - M.mind.restricted_roles = restricted_roles - mode.check_start_sunlight() - if(mode.make_bloodsucker(M.mind)) - mode.bloodsuckers += M.mind - return TRUE diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index 1be5cb3c57..a37c387283 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -7,25 +7,25 @@ /datum/dynamic_ruleset/roundstart/traitor name = "Traitors" - config_tag = "traitor" + persistent = TRUE antag_flag = ROLE_TRAITOR - antag_datum = /datum/antagonist/traitor/ + antag_datum = /datum/antagonist/traitor minimum_required_age = 0 - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster", "Cyborg") - restricted_roles = list("Cyborg", "AI") + protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") + restricted_roles = list("AI", "Cyborg") required_candidates = 1 - flags = TRAITOR_RULESET | MINOR_RULESET | ALWAYS_MAX_WEIGHT_RULESET weight = 5 - cost = 10 // Avoid raising traitor threat above 10, as it is the default low cost ruleset. - scaling_cost = 10 - requirements = list(50,50,50,50,50,50,50,50,50,50) - high_population_requirement = 40 - antag_cap = list(1,1,1,1,2,2,2,2,3,3) - property_weights = list("story_potential" = 2, "trust" = -1, "extended" = 1, "valid" = 1) - var/autotraitor_cooldown = 450 // 15 minutes (ticks once per 2 sec) + cost = 8 // Avoid raising traitor threat above 10, as it is the default low cost ruleset. + scaling_cost = 9 + requirements = list(101,10,10,10,10,10,10,10,10,10) + antag_cap = list("denominator" = 24) + var/autotraitor_cooldown = (15 MINUTES) + COOLDOWN_DECLARE(autotraitor_cooldown_check) -/datum/dynamic_ruleset/roundstart/traitor/pre_execute() - var/num_traitors = antag_cap[indice_pop] * (scaled_times + 1) +/datum/dynamic_ruleset/roundstart/traitor/pre_execute(population) + . = ..() + COOLDOWN_START(src, autotraitor_cooldown_check, autotraitor_cooldown) + var/num_traitors = get_antag_cap(population) * (scaled_times + 1) for (var/i = 1 to num_traitors) var/mob/M = pick_n_take(candidates) assigned += M.mind @@ -33,6 +33,12 @@ M.mind.restricted_roles = restricted_roles return TRUE +/datum/dynamic_ruleset/roundstart/traitor/rule_process() + if (COOLDOWN_FINISHED(src, autotraitor_cooldown_check)) + COOLDOWN_START(src, autotraitor_cooldown_check, autotraitor_cooldown) + log_game("DYNAMIC: Checking if we can turn someone into a traitor.") + mode.picking_specific_rule(/datum/dynamic_ruleset/midround/autotraitor) + ////////////////////////////////////////// // // // BLOOD BROTHERS // @@ -41,24 +47,22 @@ /datum/dynamic_ruleset/roundstart/traitorbro name = "Blood Brothers" - config_tag = "traitorbro" antag_flag = ROLE_BROTHER - antag_datum = /datum/antagonist/brother - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + antag_datum = /datum/antagonist/brother/ + protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain") + restricted_roles = list("Cyborg", "AI") required_candidates = 2 - flags = MINOR_RULESET weight = 4 - cost = 10 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - antag_cap = list(2,2,2,2,2,2,2,2,2,2) // Can pick 3 per team, but rare enough it doesn't matter. - property_weights = list("story_potential" = 1, "trust" = -1, "extended" = 1, "valid" = 1) + cost = 15 + scaling_cost = 15 + requirements = list(101,101,101,101,101,101,101,101,101,101)//disabled for now + antag_cap = 2 // Can pick 3 per team, but rare enough it doesn't matter. var/list/datum/team/brother_team/pre_brother_teams = list() var/const/min_team_size = 2 -/datum/dynamic_ruleset/roundstart/traitorbro/pre_execute() - var/num_teams = (antag_cap[indice_pop]/min_team_size) * (scaled_times + 1) // 1 team per scaling +/datum/dynamic_ruleset/roundstart/traitorbro/pre_execute(population) + . = ..() + var/num_teams = (get_antag_cap(population)/min_team_size) * (scaled_times + 1) // 1 team per scaling for(var/j = 1 to num_teams) if(candidates.len < min_team_size || candidates.len < required_candidates) break @@ -91,24 +95,20 @@ /datum/dynamic_ruleset/roundstart/changeling name = "Changelings" - config_tag = "changeling" antag_flag = ROLE_CHANGELING antag_datum = /datum/antagonist/changeling + protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") required_candidates = 1 - flags = MINOR_RULESET weight = 3 - cost = 15 - scaling_cost = 15 - requirements = list(101,101,101,101,101,101,101,101,101,101) - property_weights = list("trust" = -2, "valid" = 2) - high_population_requirement = 10 - antag_cap = list(1,1,1,1,1,2,2,2,2,3) - var/team_mode_probability = 30 + cost = 16 + scaling_cost = 10 + requirements = list(101,70,60,50,40,20,20,10,10,10) + antag_cap = list("denominator" = 29) -/datum/dynamic_ruleset/roundstart/changeling/pre_execute() - var/num_changelings = antag_cap[indice_pop] * (scaled_times + 1) +/datum/dynamic_ruleset/roundstart/changeling/pre_execute(population) + . = ..() + var/num_changelings = get_antag_cap(population) * (scaled_times + 1) for (var/i = 1 to num_changelings) var/mob/M = pick_n_take(candidates) assigned += M.mind @@ -117,21 +117,8 @@ return TRUE /datum/dynamic_ruleset/roundstart/changeling/execute() - var/team_mode = FALSE - if(prob(team_mode_probability)) - team_mode = TRUE - var/list/team_objectives = subtypesof(/datum/objective/changeling_team_objective) - var/list/possible_team_objectives = list() - for(var/T in team_objectives) - var/datum/objective/changeling_team_objective/CTO = T - if(assigned.len >= initial(CTO.min_lings)) - possible_team_objectives += T - - if(possible_team_objectives.len && prob(20*assigned.len)) - GLOB.changeling_team_objective_type = pick(possible_team_objectives) for(var/datum/mind/changeling in assigned) var/datum/antagonist/changeling/new_antag = new antag_datum() - new_antag.team_mode = team_mode changeling.add_antag_datum(new_antag) return TRUE @@ -143,24 +130,21 @@ /datum/dynamic_ruleset/roundstart/heretics name = "Heretics" - antag_flag = "heretic" + antag_flag = ROLE_HERETIC antag_datum = /datum/antagonist/heretic - protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain") + protected_roles = list("Prisoner","Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") restricted_roles = list("AI", "Cyborg") required_candidates = 1 - flags = MINOR_RULESET weight = 3 - cost = 25 - scaling_cost = 15 - requirements = list(60,60,60,55,50,50,50,50,50,50) - property_weights = list("story_potential" = 1, "trust" = -1, "chaos" = 2, "extended" = -1, "valid" = 2) - antag_cap = list(1,1,1,1,2,2,2,2,3,3) - high_population_requirement = 50 + cost = 15 + scaling_cost = 9 + requirements = list(101,101,101,55,40,25,20,15,10,10)//higher because of 'round end' + antag_cap = list("denominator" = 24) -/datum/dynamic_ruleset/roundstart/heretics/pre_execute() +/datum/dynamic_ruleset/roundstart/heretics/pre_execute(population) . = ..() - var/num_ecult = antag_cap[indice_pop] * (scaled_times + 1) + var/num_ecult = get_antag_cap(population) * (scaled_times + 1) for (var/i = 1 to num_ecult) var/mob/picked_candidate = pick_n_take(candidates) @@ -175,9 +159,9 @@ var/datum/mind/cultie = c var/datum/antagonist/heretic/new_antag = new antag_datum() cultie.add_antag_datum(new_antag) - return TRUE + ////////////////////////////////////////////// // // // WIZARDS // @@ -187,18 +171,15 @@ // Dynamic is a wonderful thing that adds wizards to every round and then adds even more wizards during the round. /datum/dynamic_ruleset/roundstart/wizard name = "Wizard" - config_tag = "wizard" - persistent = TRUE antag_flag = ROLE_WIZARD antag_datum = /datum/antagonist/wizard + flags = LONE_RULESET minimum_required_age = 14 restricted_roles = list("Head of Security", "Captain") // Just to be sure that a wizard getting picked won't ever imply a Captain or HoS not getting drafted required_candidates = 1 - weight = 1 - cost = 30 - requirements = list(101,101,101,60,50,50,50,50,50,50) - high_population_requirement = 50 - property_weights = list("story_potential" = 2, "trust" = 1, "chaos" = 2, "extended" = -2, "valid" = 2) + weight = 3 + cost = 20 + requirements = list(101,101,100,80,50,40,30,20,10,10)//100 because of configt, otherwise equal to nukies var/list/roundstart_wizards = list() /datum/dynamic_ruleset/roundstart/wizard/acceptable(population=0, threat=0) @@ -209,9 +190,9 @@ return ..() /datum/dynamic_ruleset/roundstart/wizard/pre_execute() + . = ..() if(GLOB.wizardstart.len == 0) return FALSE - mode.antags_rolled += 1 var/mob/M = pick_n_take(candidates) if (M) assigned += M.mind @@ -224,25 +205,8 @@ for(var/datum/mind/M in assigned) M.current.forceMove(pick(GLOB.wizardstart)) M.add_antag_datum(new antag_datum()) - roundstart_wizards += M return TRUE -/datum/dynamic_ruleset/roundstart/wizard/rule_process() // i can literally copy this from are_special_antags_dead it's great - for(var/datum/mind/wizard in roundstart_wizards) - if(isliving(wizard.current) && wizard.current.stat!=DEAD) - return FALSE - - for(var/obj/item/phylactery/P in GLOB.poi_list) //TODO : IsProperlyDead() - if(P.mind && P.mind.has_antag_datum(/datum/antagonist/wizard)) - return FALSE - - if(SSevents.wizardmode) //If summon events was active, turn it off - SSevents.toggleWizardmode() - SSevents.resetFrequency() - - return RULESET_STOP_PROCESSING - - ////////////////////////////////////////////// // // // BLOOD CULT // @@ -251,29 +215,26 @@ /datum/dynamic_ruleset/roundstart/bloodcult name = "Blood Cult" - config_tag = "cult" antag_flag = ROLE_CULTIST antag_datum = /datum/antagonist/cult minimum_required_age = 14 - restricted_roles = list("AI", "Cyborg") - protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") required_candidates = 2 - weight = 3 - cost = 30 - requirements = list(101,101,101,80,70,60,50,50,50,50) - property_weights = list("story_potential" = -1, "trust" = -1, "chaos" = 1, "conversion" = 1, "extended" = -2, "valid" = 2) - high_population_requirement = 50 - flags = HIGHLANDER_RULESET - antag_cap = list(2,2,2,3,3,4,4,4,4,4) + weight = 2 //lower weight because of easy steamroll potential + cost = 20 + //requirements = list(100,90,80,60,40,30,10,10,10,10) + requirements = list(101,101,101,101,60,40,20,10,10,10) + flags = HIGH_IMPACT_RULESET + antag_cap = list("denominator" = 20, "offset" = 1) var/datum/team/cult/main_cult -/datum/dynamic_ruleset/roundstart/bloodcult/ready(forced = FALSE) - required_candidates = antag_cap[indice_pop] +/datum/dynamic_ruleset/roundstart/bloodcult/ready(population, forced = FALSE) + required_candidates = get_antag_cap(population) . = ..() -/datum/dynamic_ruleset/roundstart/bloodcult/pre_execute() - var/cultists = antag_cap[indice_pop] - mode.antags_rolled += cultists +/datum/dynamic_ruleset/roundstart/bloodcult/pre_execute(population) + . = ..() + var/cultists = get_antag_cap(population) for(var/cultists_number = 1 to cultists) if(candidates.len <= 0) break @@ -310,7 +271,6 @@ /datum/dynamic_ruleset/roundstart/nuclear name = "Nuclear Emergency" - config_tag = "nuclear" antag_flag = ROLE_OPERATIVE antag_datum = /datum/antagonist/nukeop var/datum/antagonist/antag_leader_datum = /datum/antagonist/nukeop/leader @@ -318,22 +278,20 @@ restricted_roles = list("Head of Security", "Captain") // Just to be sure that a nukie getting picked won't ever imply a Captain or HoS not getting drafted required_candidates = 5 weight = 3 - cost = 40 - requirements = list(100,90,80,70,60,50,50,50,50,50) - high_population_requirement = 50 - flags = HIGHLANDER_RULESET - antag_cap = list(1,1,2,3,4,5,5,5,5,5) - property_weights = list("story_potential" = 2, "trust" = 2, "chaos" = 2, "extended" = -2, "valid" = 2) + cost = 20 + requirements = list(101,101,101,80,50,40,30,15,10,10) + flags = HIGH_IMPACT_RULESET + antag_cap = list("denominator" = 18, "offset" = 1) var/datum/team/nuclear/nuke_team -/datum/dynamic_ruleset/roundstart/nuclear/ready(forced = FALSE) - required_candidates = antag_cap[indice_pop] +/datum/dynamic_ruleset/roundstart/nuclear/ready(population, forced = FALSE) + required_candidates = get_antag_cap(population) . = ..() -/datum/dynamic_ruleset/roundstart/nuclear/pre_execute() +/datum/dynamic_ruleset/roundstart/nuclear/pre_execute(population) + . = ..() // If ready() did its job, candidates should have 5 or more members in it - var/operatives = antag_cap[indice_pop] - mode.antags_rolled += operatives + var/operatives = get_antag_cap(population) for(var/operatives_number = 1 to operatives) if(candidates.len <= 0) break @@ -356,7 +314,7 @@ return TRUE /datum/dynamic_ruleset/roundstart/nuclear/round_result() - var result = nuke_team.get_result() + var/result = nuke_team.get_result() switch(result) if(NUKE_RESULT_FLUKE) SSticker.mode_result = "loss - syndicate nuked - disk secured" @@ -391,36 +349,36 @@ ////////////////////////////////////////////// // // -// REVS // +// REVS // // // ////////////////////////////////////////////// /datum/dynamic_ruleset/roundstart/revs name = "Revolution" - config_tag = "revolution" persistent = TRUE antag_flag = ROLE_REV_HEAD antag_flag_override = ROLE_REV antag_datum = /datum/antagonist/rev/head minimum_required_age = 14 - restricted_roles = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") + restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director") required_candidates = 3 weight = 2 delay = 7 MINUTES - cost = 35 - requirements = list(101,101,101,60,50,50,50,50,50,50) - high_population_requirement = 50 - antag_cap = list(3,3,3,3,3,3,3,3,3,3) - flags = HIGHLANDER_RULESET + cost = 20 + requirements = list(101,101,101,101,60,40,20,10,10,10) + antag_cap = 3 + flags = HIGH_IMPACT_RULESET + blocking_rules = list(/datum/dynamic_ruleset/latejoin/provocateur) // I give up, just there should be enough heads with 35 players... minimum_players = 35 - property_weights = list("trust" = -2, "chaos" = 2, "extended" = -2, "valid" = 2, "conversion" = 1) + /// How much threat should be injected when the revolution wins? + var/revs_win_threat_injection = 20 var/datum/team/revolution/revolution var/finished = FALSE -/datum/dynamic_ruleset/roundstart/revs/pre_execute() - var/max_candidates = antag_cap[indice_pop] - mode.antags_rolled += max_candidates +/datum/dynamic_ruleset/roundstart/revs/pre_execute(population) + . = ..() + var/max_candidates = get_antag_cap(population) for(var/i = 1 to max_candidates) if(candidates.len <= 0) break @@ -431,7 +389,6 @@ return TRUE /datum/dynamic_ruleset/roundstart/revs/execute() - var/success = TRUE revolution = new() for(var/datum/mind/M in assigned) if(check_eligible(M)) @@ -443,14 +400,12 @@ else assigned -= M log_game("DYNAMIC: [ruletype] [name] discarded [M.name] from head revolutionary due to ineligibility.") - if(!revolution.members.len) - success = FALSE - log_game("DYNAMIC: [ruletype] [name] failed to get any eligible headrevs. Refunding [cost] threat.") - if(success) + if(revolution.members.len) revolution.update_objectives() revolution.update_heads() - SSshuttle.registerHostileEnvironment(src) + SSshuttle.registerHostileEnvironment(revolution) return TRUE + log_game("DYNAMIC: [ruletype] [name] failed to get any eligible headrevs. Refunding [cost] threat.") return FALSE /datum/dynamic_ruleset/roundstart/revs/clean_up() @@ -458,61 +413,77 @@ ..() /datum/dynamic_ruleset/roundstart/revs/rule_process() - if(check_rev_victory()) - finished = REVOLUTION_VICTORY - return RULESET_STOP_PROCESSING - else if (check_heads_victory()) - finished = STATION_VICTORY - SSshuttle.clearHostileEnvironment(src) - priority_announce("It appears the mutiny has been quelled. Please return yourself and your incapacitated colleagues to work. \ - We have remotely blacklisted the head revolutionaries from your cloning software to prevent accidental cloning.", null, "attention", null, "Central Command Loyalty Monitoring Division") + var/winner = revolution.process_victory(revs_win_threat_injection) + if (isnull(winner)) + return - for(var/datum/mind/M in revolution.members) // Remove antag datums and prevents podcloned or exiled headrevs restarting rebellions. - if(M.has_antag_datum(/datum/antagonist/rev/head)) - var/datum/antagonist/rev/head/R = M.has_antag_datum(/datum/antagonist/rev/head) - R.remove_revolutionary(FALSE, "gamemode") - var/mob/living/carbon/C = M.current - if(C.stat == DEAD) - C.makeUncloneable() - if(M.has_antag_datum(/datum/antagonist/rev)) - var/datum/antagonist/rev/R = M.has_antag_datum(/datum/antagonist/rev) - R.remove_revolutionary(FALSE, "gamemode") - return RULESET_STOP_PROCESSING + finished = winner + return RULESET_STOP_PROCESSING /// Checks for revhead loss conditions and other antag datums. -/datum/dynamic_ruleset/roundstart/revs/proc/check_eligible(var/datum/mind/M) +/datum/dynamic_ruleset/roundstart/revs/proc/check_eligible(datum/mind/M) var/turf/T = get_turf(M.current) if(!considered_afk(M) && considered_alive(M) && is_station_level(T.z) && !M.antag_datums?.len && !HAS_TRAIT(M, TRAIT_MINDSHIELD)) return TRUE return FALSE -/datum/dynamic_ruleset/roundstart/revs/check_finished() - if(finished == REVOLUTION_VICTORY) - return TRUE - else - return ..() - -/datum/dynamic_ruleset/roundstart/revs/proc/check_rev_victory() - for(var/datum/objective/mutiny/objective in revolution.objectives) - if(!(objective.check_completion())) - return FALSE - return TRUE - -/datum/dynamic_ruleset/roundstart/revs/proc/check_heads_victory() - for(var/datum/mind/rev_mind in revolution.head_revolutionaries()) - var/turf/T = get_turf(rev_mind.current) - if(!considered_afk(rev_mind) && considered_alive(rev_mind) && is_station_level(T.z)) - if(ishuman(rev_mind.current) || ismonkey(rev_mind.current)) - return FALSE - return TRUE - /datum/dynamic_ruleset/roundstart/revs/round_result() - if(finished == REVOLUTION_VICTORY) - SSticker.mode_result = "win - heads killed" - SSticker.news_report = REVS_WIN - else if(finished == STATION_VICTORY) - SSticker.mode_result = "loss - rev heads killed" - SSticker.news_report = REVS_LOSE + revolution.round_result(finished) + +////////////////////////////////////////////// +// // +// Clock Cult // +// // +////////////////////////////////////////////// + +/datum/dynamic_ruleset/roundstart/clockcult + name = "Clock Cult" + antag_flag = ROLE_SERVANT_OF_RATVAR + antag_datum = /datum/antagonist/clockcult + minimum_required_age = 14 + restricted_roles = list("AI", "Cyborg", "Prisoner", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Chaplain", "Head of Personnel", "Quartermaster", "Chief Engineer", "Chief Medical Officer", "Research Director") + required_candidates = 2 + weight = 3 //higher weight than blood cult and revs because it's more balanced + cost = 20 + requirements = list(101,101,101,101,60,40,20,10,10,10) //slightly higher than nukies + flags = HIGH_IMPACT_RULESET + antag_cap = list("denominator" = 20, "offset" = 1) + var/datum/team/clockcult/main_clockcult + +/datum/dynamic_ruleset/roundstart/clockcult/ready(population, forced = FALSE) + required_candidates = get_antag_cap(population) + . = ..() + +/datum/dynamic_ruleset/roundstart/clockcult/pre_execute(population) + . = ..() + var/cultists = get_antag_cap(population) + for(var/cultists_number = 1 to cultists) + if(candidates.len <= 0) + break + var/mob/M = pick_n_take(candidates) + assigned += M.mind + M.mind.special_role = ROLE_SERVANT_OF_RATVAR + M.mind.restricted_roles = restricted_roles + return TRUE + +/datum/dynamic_ruleset/roundstart/clockcult/execute() + main_clockcult = new + for(var/datum/mind/M in assigned) + var/datum/antagonist/clockcult/new_cultist = new antag_datum() + new_cultist.clock_team = main_clockcult + SSticker.mode.equip_servant(new_cultist) + SSticker.mode.greet_servant(new_cultist) + M.add_antag_datum(new_cultist) + return TRUE + +/datum/dynamic_ruleset/roundstart/clockcult/round_result() + ..() + if(main_clockcult.check_clockwork_victory()) + SSticker.mode_result = "win - servants completed their objective (summon ratvar)" + SSticker.news_report = CLOCK_SUMMON + else + SSticker.mode_result = "loss - servants failed their objective (summon ratvar)" + SSticker.news_report = CULT_FAILURE // Admin only rulesets. The threat requirement is 101 so it is not possible to roll them. @@ -524,7 +495,6 @@ /datum/dynamic_ruleset/roundstart/extended name = "Extended" - config_tag = "extended" antag_flag = null antag_datum = null restricted_roles = list() @@ -532,121 +502,17 @@ weight = 3 cost = 0 requirements = list(101,101,101,101,101,101,101,101,101,101) - property_weights = list("extended" = 2) - high_population_requirement = 101 + flags = LONE_RULESET /datum/dynamic_ruleset/roundstart/extended/pre_execute() + . = ..() message_admins("Starting a round of extended.") log_game("Starting a round of extended.") - mode.spend_threat(mode.threat) + mode.spend_roundstart_budget(mode.round_start_budget) + mode.spend_midround_budget(mode.mid_round_budget) + mode.threat_log += "[worldtime2text()]: Extended ruleset set threat to 0." return TRUE -////////////////////////////////////////////// -// // -// CLOCKCULT // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/clockcult - name = "Clockcult" - config_tag = "clockwork_cult" - antag_flag = ROLE_SERVANT_OF_RATVAR - antag_datum = /datum/antagonist/clockcult - restricted_roles = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - required_candidates = 4 - weight = 3 - cost = 35 - requirements = list(101,101,101,80,70,60,50,50,50,50) - high_population_requirement = 50 - flags = HIGHLANDER_RULESET - antag_cap = list(2,3,3,4,4,4,4,4,4,4) - property_weights = list("trust" = 2, "chaos" = 2, "extended" = -2, "conversion" = 1, "valid" = 2) - var/ark_time - -/datum/dynamic_ruleset/roundstart/clockcult/pre_execute() - var/list/errorList = list() - var/list/reebes = SSmapping.LoadGroup(errorList, "Reebe", "map_files/generic", "City_of_Cogs.dmm", default_traits = ZTRAITS_REEBE, silent = TRUE) - if(errorList.len) - message_admins("Reebe failed to load!") - log_game("Reebe failed to load!") - return FALSE - for(var/datum/parsed_map/PM in reebes) - PM.initTemplateBounds() - - var/starter_servants = antag_cap[indice_pop] - var/number_players = mode.roundstart_pop_ready - if(number_players > 30) - number_players -= 30 - starter_servants += min(round(number_players / 10), 5) - mode.antags_rolled += starter_servants - GLOB.clockwork_vitality += 50 * starter_servants - for (var/i in 1 to starter_servants) - var/mob/servant = pick_n_take(candidates) - assigned += servant.mind - servant.mind.assigned_role = ROLE_SERVANT_OF_RATVAR - servant.mind.special_role = ROLE_SERVANT_OF_RATVAR - ark_time = 30 + round((number_players / 5)) - ark_time = min(ark_time, 35) - return TRUE - -/datum/dynamic_ruleset/roundstart/clockcult/execute() - var/list/spread_out_spawns = GLOB.servant_spawns.Copy() - for(var/datum/mind/servant in assigned) - var/mob/S = servant.current - if(!spread_out_spawns.len) - spread_out_spawns = GLOB.servant_spawns.Copy() - log_game("[key_name(servant)] was made an initial servant of Ratvar") - var/turf/T = pick_n_take(spread_out_spawns) - S.forceMove(T) - greet_servant(S) - equip_servant(S) - add_servant_of_ratvar(S, TRUE) - var/obj/structure/destructible/clockwork/massive/celestial_gateway/G = GLOB.ark_of_the_clockwork_justiciar //that's a mouthful - G.final_countdown(ark_time) - return TRUE - -/datum/dynamic_ruleset/roundstart/clockcult/proc/greet_servant(mob/M) //Description of their role - if(!M) - return 0 - to_chat(M, "You are a servant of Ratvar, the Clockwork Justiciar!") - to_chat(M, "You have approximately [ark_time] minutes until the Ark activates.") - to_chat(M, "Unlock Script scripture by converting a new servant.") - to_chat(M, "Application scripture will be unlocked halfway until the Ark's activation.") - M.playsound_local(get_turf(M), 'sound/ambience/antag/clockcultalr.ogg', 100, FALSE, pressure_affected = FALSE) - return 1 - -/datum/dynamic_ruleset/roundstart/clockcult/proc/equip_servant(mob/living/M) //Grants a clockwork slab to the mob, with one of each component - if(!M || !ishuman(M)) - return FALSE - var/mob/living/carbon/human/L = M - L.equipOutfit(/datum/outfit/servant_of_ratvar) - var/obj/item/clockwork/slab/S = new - var/slot = "At your feet" - var/list/slots = list("In your left pocket" = SLOT_L_STORE, "In your right pocket" = SLOT_R_STORE, "In your backpack" = SLOT_IN_BACKPACK, "On your belt" = SLOT_BELT) - if(ishuman(L)) - var/mob/living/carbon/human/H = L - slot = H.equip_in_one_of_slots(S, slots) - if(slot == "In your backpack") - slot = "In your [H.back.name]" - if(slot == "At your feet") - if(!S.forceMove(get_turf(L))) - qdel(S) - if(S && !QDELETED(S)) - to_chat(L, "There is a paper in your backpack! It'll tell you if anything's changed, as well as what to expect.") - to_chat(L, "[slot] is a clockwork slab, a multipurpose tool used to construct machines and invoke ancient words of power. If this is your first time \ - as a servant, you can find a concise tutorial in the Recollection category of its interface.") - to_chat(L, "If you want more information, you can read the wiki page to learn more.") - return TRUE - return FALSE - -/datum/dynamic_ruleset/roundstart/clockcult/round_result() - if(GLOB.clockwork_gateway_activated) - SSticker.news_report = CLOCK_SUMMON - SSticker.mode_result = "win - servants completed their objective (summon ratvar)" - else - SSticker.news_report = CULT_FAILURE - SSticker.mode_result = "loss - servants failed their objective (summon ratvar)" - ////////////////////////////////////////////// // // // CLOWN OPS // @@ -655,12 +521,10 @@ /datum/dynamic_ruleset/roundstart/nuclear/clown_ops name = "Clown Ops" - config_tag = "clownops" + antag_flag = "clown ops" antag_datum = /datum/antagonist/nukeop/clownop antag_leader_datum = /datum/antagonist/nukeop/leader/clownop - weight = 1 - property_weights = list("trust" = 2, "chaos" = 2, "extended" = -2, "story_potential" = 2, "valid" = 2) - + requirements = list(101,101,101,101,101,101,101,101,101,101) /datum/dynamic_ruleset/roundstart/nuclear/clown_ops/pre_execute() . = ..() @@ -674,59 +538,6 @@ V.assigned_role = "Clown Operative" V.special_role = "Clown Operative" -////////////////////////////////////////////// -// // -// DEVIL // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/devil - name = "Devil" - config_tag = "devil" - antag_flag = ROLE_DEVIL - antag_datum = /datum/antagonist/devil - restricted_roles = list("Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI") - required_candidates = 1 - flags = MINOR_RULESET - weight = 3 - cost = 0 - requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - antag_cap = list(1,1,1,2,2,2,3,3,3,4) - property_weights = list("extended" = 1) - -/datum/dynamic_ruleset/roundstart/devil/pre_execute() - var/num_devils = antag_cap[indice_pop] - mode.antags_rolled += num_devils - for(var/j = 0, j < num_devils, j++) - if (!candidates.len) - break - var/mob/devil = pick_n_take(candidates) - assigned += devil.mind - devil.mind.special_role = ROLE_DEVIL - devil.mind.restricted_roles = restricted_roles - - log_game("[key_name(devil)] has been selected as a devil") - return TRUE - -/datum/dynamic_ruleset/roundstart/devil/execute() - for(var/datum/mind/devil in assigned) - add_devil(devil.current, ascendable = TRUE) - add_devil_objectives(devil,2) - return TRUE - -/datum/dynamic_ruleset/roundstart/devil/proc/add_devil_objectives(datum/mind/devil_mind, quantity) - var/list/validtypes = list(/datum/objective/devil/soulquantity, /datum/objective/devil/soulquality, /datum/objective/devil/sintouch, /datum/objective/devil/buy_target) - var/datum/antagonist/devil/D = devil_mind.has_antag_datum(/datum/antagonist/devil) - for(var/i = 1 to quantity) - var/type = pick(validtypes) - var/datum/objective/devil/objective = new type(null) - objective.owner = devil_mind - D.objectives += objective - if(!istype(objective, /datum/objective/devil/buy_target)) - validtypes -= type - else - objective.find_target() ////////////////////////////////////////////// // // @@ -736,24 +547,22 @@ /datum/dynamic_ruleset/roundstart/monkey name = "Monkey" - config_tag = "monkey" antag_flag = ROLE_MONKEY antag_datum = /datum/antagonist/monkey/leader - restricted_roles = list("Cyborg", "AI") + restricted_roles = list("Cyborg", "AI", "Prisoner") required_candidates = 1 weight = 3 cost = 0 requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - property_weights = list("extended" = -2, "chaos" = 2, "conversion" = 1, "valid" = 2) + flags = LONE_RULESET var/players_per_carrier = 30 var/monkeys_to_win = 1 var/escaped_monkeys = 0 var/datum/team/monkey/monkey_team /datum/dynamic_ruleset/roundstart/monkey/pre_execute() + . = ..() var/carriers_to_make = max(round(mode.roundstart_pop_ready / players_per_carrier, 1), 1) - mode.antags_rolled += carriers_to_make for(var/j = 0, j < carriers_to_make, j++) if (!candidates.len) @@ -767,7 +576,7 @@ /datum/dynamic_ruleset/roundstart/monkey/execute() for(var/datum/mind/carrier in assigned) - var/datum/antagonist/monkey/M = add_monkey_leader(carrier) + var/datum/antagonist/monkey/M = carrier.add_antag_datum(/datum/antagonist/monkey/leader) if(M) monkey_team = M.monkey_team return TRUE @@ -776,7 +585,9 @@ if(SSshuttle.emergency.mode != SHUTTLE_ENDGAME) return FALSE var/datum/disease/D = new /datum/disease/transformation/jungle_fever() - for(var/mob/living/carbon/monkey/M in GLOB.alive_mob_list) + for(var/mob/living/carbon/human/M in GLOB.alive_mob_list) + if(!ismonkey(M)) + continue if (M.HasDisease(D)) if(M.onCentCom() || M.onSyndieBase()) escaped_monkeys++ @@ -800,16 +611,14 @@ /datum/dynamic_ruleset/roundstart/meteor name = "Meteor" - config_tag = "meteor" persistent = TRUE required_candidates = 0 weight = 3 cost = 0 requirements = list(101,101,101,101,101,101,101,101,101,101) - high_population_requirement = 101 - property_weights = list("extended" = -2, "chaos" = 2, "trust" = 2) + flags = LONE_RULESET var/meteordelay = 2000 - var/nometeors = 0 + var/nometeors = FALSE var/rampupdelta = 5 /datum/dynamic_ruleset/roundstart/meteor/rule_process() @@ -828,43 +637,3 @@ var/ramp_up_final = clamp(round(meteorminutes/rampupdelta), 1, 10) spawn_meteors(ramp_up_final, wavetype) - -////////////////////////////////////////////// -// // -// BLOODSUCKERS // -// // -////////////////////////////////////////////// - -/datum/dynamic_ruleset/roundstart/bloodsucker - name = "Bloodsuckers" - config_tag = "bloodsucker" - antag_flag = ROLE_BLOODSUCKER - antag_datum = ANTAG_DATUM_BLOODSUCKER - minimum_required_age = 0 - protected_roles = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") - restricted_roles = list("Cyborg", "AI") - required_candidates = 1 - flags = MINOR_RULESET - weight = 2 - cost = 15 - scaling_cost = 10 - property_weights = list("story_potential" = 1, "extended" = 1, "trust" = -2, "valid" = 1) - requirements = list(70,65,60,55,50,50,50,50,50,50) - high_population_requirement = 50 - antag_cap = list(1,1,1,1,1,2,2,2,2,2) - -/datum/dynamic_ruleset/roundstart/bloodsucker/pre_execute() - var/num_bloodsuckers = antag_cap[indice_pop] * (scaled_times + 1) - for (var/i = 1 to num_bloodsuckers) - var/mob/M = pick_n_take(candidates) - assigned += M.mind - M.mind.special_role = ROLE_BLOODSUCKER - M.mind.restricted_roles = restricted_roles - return TRUE - -/datum/dynamic_ruleset/roundstart/bloodsucker/execute() - mode.check_start_sunlight() - for(var/datum/mind/M in assigned) - if(mode.make_bloodsucker(M)) - mode.bloodsuckers += M - return TRUE diff --git a/code/game/gamemodes/dynamic/dynamic_simulations.dm b/code/game/gamemodes/dynamic/dynamic_simulations.dm new file mode 100644 index 0000000000..63da54bece --- /dev/null +++ b/code/game/gamemodes/dynamic/dynamic_simulations.dm @@ -0,0 +1,122 @@ +#ifdef TESTING +/datum/dynamic_simulation + var/datum/game_mode/dynamic/gamemode + var/datum/dynamic_simulation_config/config + var/list/mock_candidates = list() + +/datum/dynamic_simulation/proc/initialize_gamemode(forced_threat) + gamemode = new + + if (forced_threat) + gamemode.create_threat(forced_threat) + else + gamemode.generate_threat() + + gamemode.generate_budgets() + gamemode.set_cooldowns() + +/datum/dynamic_simulation/proc/create_candidates(players) + GLOB.new_player_list.Cut() + + for (var/_ in 1 to players) + var/mob/dead/new_player/mock_new_player = new + mock_new_player.ready = PLAYER_READY_TO_PLAY + + var/datum/mind/mock_mind = new + mock_new_player.mind = mock_mind + + var/datum/client_interface/mock_client = new + + var/datum/preferences/prefs = new + var/list/be_special = list() + for (var/special_role in GLOB.special_roles) + be_special += special_role + + prefs.be_special = be_special + mock_client.prefs = prefs + + mock_new_player.mock_client = mock_client + + mock_candidates += mock_new_player + +/datum/dynamic_simulation/proc/simulate(datum/dynamic_simulation_config/config) + src.config = config + + initialize_gamemode(config.forced_threat_level) + create_candidates(config.roundstart_players) + gamemode.pre_setup() + + var/total_antags = 0 + for (var/_ruleset in gamemode.executed_rules) + var/datum/dynamic_ruleset/ruleset = _ruleset + total_antags += ruleset.assigned.len + + return list( + "roundstart_players" = config.roundstart_players, + "threat_level" = gamemode.threat_level, + "snapshot" = list( + "antag_percent" = total_antags / config.roundstart_players, + "remaining_threat" = gamemode.mid_round_budget, + "rulesets" = gamemode.executed_rules.Copy(), + ), + ) + +/datum/dynamic_simulation_config + /// How many players round start should there be? + var/roundstart_players + + /// Optional, force this threat level instead of picking randomly through the lorentz distribution + var/forced_threat_level + +/client/proc/run_dynamic_simulations() + set name = "Run Dynamic Simulations" + set category = "Debug" + + var/simulations = input(usr, "Enter number of simulations") as num + var/roundstart_players = input(usr, "Enter number of round start players") as num + var/forced_threat_level = input(usr, "Enter forced threat level, if you want one") as num | null + + SSticker.mode = new /datum/game_mode/dynamic + message_admins("Running dynamic simulations...") + + var/list/outputs = list() + + var/datum/dynamic_simulation_config/dynamic_config = new + + if (roundstart_players) + dynamic_config.roundstart_players = roundstart_players + + if (forced_threat_level) + dynamic_config.forced_threat_level = forced_threat_level + + for (var/count in 1 to simulations) + var/datum/dynamic_simulation/simulator = new + var/output = simulator.simulate(dynamic_config) + outputs += list(output) + + if (CHECK_TICK) + log_world("[count]/[simulations]") + + message_admins("Writing file...") + WRITE_FILE(file("[GLOB.log_directory]/dynamic_simulations.json"), json_encode(outputs)) + message_admins("Writing complete.") + +/proc/export_dynamic_json_of(ruleset_list) + var/list/export = list() + + for (var/_ruleset in ruleset_list) + var/datum/dynamic_ruleset/ruleset = _ruleset + export[ruleset.name] = list( + "repeatable_weight_decrease" = ruleset.repeatable_weight_decrease, + "weight" = ruleset.weight, + "cost" = ruleset.cost, + "scaling_cost" = ruleset.scaling_cost, + "antag_cap" = ruleset.antag_cap, + "pop_per_requirement" = ruleset.pop_per_requirement, + "requirements" = ruleset.requirements, + "base_prob" = ruleset.base_prob, + ) + + return export + +#endif diff --git a/code/game/gamemodes/dynamic/dynamic_storytellers.dm b/code/game/gamemodes/dynamic/dynamic_storytellers.dm deleted file mode 100644 index 927ab7796b..0000000000 --- a/code/game/gamemodes/dynamic/dynamic_storytellers.dm +++ /dev/null @@ -1,388 +0,0 @@ -/datum/dynamic_storyteller - var/name = "none" // Name for voting. - var/config_tag = null // Config tag for config weights. - var/desc = "A coder's idiocy." // Description for voting. - var/list/property_weights = list() // See below. - var/curve_centre = 0 // As GLOB.dynamic_curve_centre. - var/curve_width = 1.8 // As GLOB.dynamic_curve_width. - var/forced_threat_level = -1 // As GLOB.dynamic_forced_threat_level - /* - NO_ASSASSIN: Will not have permanent assassination targets. - WAROPS_ALWAYS_ALLOWED: Can always do warops, regardless of threat level. - USE_PREF_WEIGHTS: Will use peoples' preferences to change the threat centre. - FORCE_IF_WON: If this mode won the vote, forces it - USE_PREV_ROUND_WEIGHTS: Changes its threat centre based on the average chaos of previous rounds. - */ - var/flags = 0 - var/dead_player_weight = 1 // How much dead players matter for threat calculation - var/weight = 0 // Weights for randomly picking storyteller. Multiplied by score after voting. - var/min_chaos = -1000 // Won't show up if recent rounds have been below this chaotic on average - var/max_chaos = 1000 // Won't show up if recent rounds have been above this chaotic on average - var/event_frequency_lower = 6 MINUTES // How rare events will be, at least. - var/event_frequency_upper = 20 MINUTES // How rare events will be, at most. - var/min_players = -1 // How many players are required for this one to start. - var/soft_antag_ratio_cap = 4 // how many players-per-antag there should be - var/datum/game_mode/dynamic/mode = null // Cached as soon as it's made, by dynamic. - -/** -Property weights are added to the config weight of the ruleset. They are: -"story_potential" -- essentially how many different ways the antag can be played. -"trust" -- How much it makes the crew trust each other. Negative values means they're suspicious. Team antags are like this. -"chaos" -- How chaotic it makes the round. Has some overlap with "valid" and somewhat contradicts "extended". -"valid" -- How likely the non-antag-enemy crew are to get involved, e.g. nukies encouraging the warden to - let everyone into the armory, wizard moving around and being a nuisance, nightmare busting lights. -"extended" -- How much the antag is conducive to a long round. Nukies and cults are bad for this; Wizard is less bad; and so on. -"conversion" -- Basically a bool. Conversion antags, well, convert. It's in its own class 'cause people kinda hate conversion. -*/ - -/datum/dynamic_storyteller/proc/minor_start_chance() - return clamp(60 - mode.threat_level,0,100) // by default higher threat = lower chance of minor round - -/datum/dynamic_storyteller/proc/start_injection_cooldowns() - var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_latejoin_delay_max + GLOB.dynamic_first_latejoin_delay_min) - mode.latejoin_injection_cooldown = round(clamp(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_first_latejoin_delay_min, GLOB.dynamic_first_latejoin_delay_max)) + world.time - - var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_first_midround_delay_min + GLOB.dynamic_first_midround_delay_max) - mode.midround_injection_cooldown = round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_first_midround_delay_min, GLOB.dynamic_first_midround_delay_max)) + world.time - -/datum/dynamic_storyteller/proc/do_process() - return - -/datum/dynamic_storyteller/proc/on_start() - if (istype(SSticker.mode, /datum/game_mode/dynamic)) - mode = SSticker.mode - GLOB.dynamic_curve_centre = curve_centre - GLOB.dynamic_curve_width = curve_width - if(flags & USE_PREF_WEIGHTS) - var/voters = 0 - var/mean = 0 - for(var/client/c in GLOB.clients) - var/vote = c.prefs.preferred_chaos - if(vote) - voters += 1 - switch(vote) - if(CHAOS_NONE) - mean -= 5 - if(CHAOS_LOW) - mean -= 2.5 - if(CHAOS_HIGH) - mean += 2.5 - if(CHAOS_MAX) - mean += 5 - else - voters += 0.5 - if(voters) - GLOB.dynamic_curve_centre += (mean/voters) - if(flags & USE_PREV_ROUND_WEIGHTS) - GLOB.dynamic_curve_centre += (SSpersistence.average_threat) / 10 - GLOB.dynamic_forced_threat_level = forced_threat_level - -/datum/dynamic_storyteller/proc/get_midround_cooldown() - var/midround_injection_cooldown_middle = 0.5*(GLOB.dynamic_midround_delay_max + GLOB.dynamic_midround_delay_min) - return round(clamp(EXP_DISTRIBUTION(midround_injection_cooldown_middle), GLOB.dynamic_midround_delay_min, GLOB.dynamic_midround_delay_max)) - -/datum/dynamic_storyteller/proc/should_inject_antag(dry_run = FALSE) - if(mode.forced_injection) - mode.forced_injection = dry_run - return TRUE - if(mode.current_players[CURRENT_LIVING_PLAYERS].len < (mode.current_players[CURRENT_LIVING_ANTAGS].len * soft_antag_ratio_cap)) - return FALSE - return mode.threat < mode.threat_level - -/datum/dynamic_storyteller/proc/roundstart_draft() - var/list/drafted_rules = list() - var/minor_round_weight_mult = (100-minor_start_chance()) / 100 - for (var/datum/dynamic_ruleset/roundstart/rule in mode.roundstart_rules) - if (rule.acceptable(mode.roundstart_pop_ready, mode.threat_level)) // If we got the population and threat required - rule.candidates = mode.candidates.Copy() - rule.trim_candidates() - if (rule.ready() && rule.candidates.len > 0) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) // just treat it as 0 if it's not in there - property_weight += rule.property_weights[property] * property_weights[property] - var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult - if(CHECK_BITFIELD(rule.flags, MINOR_RULESET)) - calced_weight *= minor_round_weight_mult - if(calced_weight > 0) // negatives in the list might cause problems - drafted_rules[rule] = calced_weight - return drafted_rules - -/datum/dynamic_storyteller/proc/minor_rule_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/rule in mode.minor_rules) - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level)) - rule.trim_candidates() - if (rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) // just treat it as 0 if it's not in there - property_weight += rule.property_weights[property] * property_weights[property] - var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult - if(calced_weight > 0) // negatives in the list might cause problems - drafted_rules[rule] = calced_weight - return drafted_rules - -/datum/dynamic_storyteller/proc/midround_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/midround/rule in mode.midround_rules) - // if there are antags OR the rule is an antag rule, antag_acceptable will be true. - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level)) - // Classic secret : only autotraitor/minor roles - if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET))) - continue - rule.trim_candidates() - if (rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) // just treat it as 0 if it's not in there - property_weight += rule.property_weights[property] * property_weights[property] - var/threat_weight = 1 - if(!(rule.flags & TRAITOR_RULESET)) // makes the traitor rulesets always possible anyway - var/cost_difference = rule.cost-(mode.threat_level-mode.threat) - /* Basically, the closer the cost is to the current threat-level-away-from-threat, the more likely it is to - pick this particular ruleset. - Let's use a toy example: there's 60 threat level and 10 threat spent. - We want to pick a ruleset that's close to that, so we run the below equation, on two rulesets. - Ruleset 1 has 30 cost, ruleset 2 has 5 cost. - When we do the math, ruleset 1's threat_weight is 0.538, and ruleset 2's is 0.238, meaning ruleset 1 - is 2.26 times as likely to be picked, all other things considered. - Of course, we don't want it to GUARANTEE the closest, that's no fun, so it's just a weight. - */ - threat_weight = abs(1-abs(1-LOGISTIC_FUNCTION(2,0.05,abs(cost_difference),0))) - if(cost_difference > 0) - threat_weight /= (1+(cost_difference*0.1)) - var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight - if(calced_weight > 0) - drafted_rules[rule] = calced_weight - return drafted_rules - -/datum/dynamic_storyteller/proc/latejoin_draft(mob/living/carbon/human/newPlayer) - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/latejoin/rule in mode.latejoin_rules) - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level - mode.threat)) - // Classic secret : only autotraitor/minor roles - if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET))) - continue - // No stacking : only one round-ender, unless threat level > stacking_limit. - if (mode.threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) - if(rule.flags & HIGHLANDER_RULESET && mode.highlander_executed) - continue - - rule.candidates = list(newPlayer) - rule.trim_candidates() - if (rule.ready()) - var/property_weight = 0 - for(var/property in property_weights) - if(property in rule.property_weights) - property_weight += rule.property_weights[property] * property_weights[property] - var/threat_weight = 1 - if(!(rule.flags & TRAITOR_RULESET)) - var/cost_difference = rule.cost-(mode.threat_level-mode.threat) - threat_weight = 1-abs(1-(LOGISTIC_FUNCTION(2,0.05,abs(cost_difference),0))) - if(cost_difference > 0) - threat_weight /= (1+(cost_difference*0.1)) - var/calced_weight = (rule.get_weight() + property_weight) * rule.weight_mult * threat_weight - if(calced_weight > 0) - drafted_rules[rule] = calced_weight - return drafted_rules - -/datum/dynamic_storyteller/chaotic - name = "Chaotic" - config_tag = "chaotic" - curve_centre = 10 - desc = "High chaos modes. Revs, wizard, clock cult. Multiple antags at once. Chaos is kept up all round." - property_weights = list("extended" = -1, "chaos" = 1) - weight = 1 - event_frequency_lower = 2 MINUTES - event_frequency_upper = 10 MINUTES - max_chaos = 50 - soft_antag_ratio_cap = 1 - flags = WAROPS_ALWAYS_ALLOWED | FORCE_IF_WON - min_players = 30 - var/refund_cooldown = 0 - -/datum/dynamic_storyteller/chaotic/minor_start_chance() - return 0 - -/datum/dynamic_storyteller/chaotic/do_process() - if(refund_cooldown < world.time) - mode.create_threat(20) - mode.log_threat("Chaotic storyteller ramped up the chaos. Threat level is now [mode.threat_level].") - refund_cooldown = world.time + 20 MINUTES - -/datum/dynamic_storyteller/chaotic/get_midround_cooldown() - return ..() / 4 - -/datum/dynamic_storyteller/team - name = "Teamwork" - config_tag = "teamwork" - desc = "Modes where the crew must band together. Nukies, xenos, blob. Only one antag threat at once." - curve_centre = 2 - curve_width = 1.5 - weight = 4 - max_chaos = 75 - min_players = 20 - flags = WAROPS_ALWAYS_ALLOWED | USE_PREV_ROUND_WEIGHTS - property_weights = list("valid" = 3, "trust" = 5) - -/datum/dynamic_storyteller/team/minor_start_chance() - return 0 - -/datum/dynamic_storyteller/team/should_inject_antag(dry_run = FALSE) - return (mode.current_players[CURRENT_LIVING_ANTAGS].len ? FALSE : ..()) - -/datum/dynamic_storyteller/conversion - name = "Conversion" - config_tag = "conversion" - desc = "Conversion antags. Cults, revs." - curve_centre = 3 - curve_width = 1 - weight = 0 - flags = WAROPS_ALWAYS_ALLOWED - property_weights = list("valid" = 1, "conversion" = 20) - -/datum/dynamic_storyteller/conversion/minor_start_chance() - return 0 - -/datum/dynamic_storyteller/random - name = "Random" - config_tag = "random" - weight = 1 - max_chaos = 60 - soft_antag_ratio_cap = 1 - desc = "No weighting at all; every ruleset has the same chance of happening. Cooldowns vary wildly. As random as it gets." - -/datum/dynamic_storyteller/random/on_start() - ..() - GLOB.dynamic_forced_threat_level = rand(0,100) - -/datum/dynamic_storyteller/random/get_midround_cooldown() - return rand(GLOB.dynamic_midround_delay_min/2, GLOB.dynamic_midround_delay_max*2) - -/datum/dynamic_storyteller/random/should_inject_antag() - return prob(50) - -/datum/dynamic_storyteller/random/minor_start_chance() - return 20 - -/datum/dynamic_storyteller/random/roundstart_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/roundstart/rule in mode.roundstart_rules) - if (rule.acceptable(mode.roundstart_pop_ready, mode.threat_level)) // If we got the population and threat required - rule.candidates = mode.candidates.Copy() - rule.trim_candidates() - if (rule.ready() && rule.candidates.len > 0) - drafted_rules[rule] = 1 - return drafted_rules - -/datum/dynamic_storyteller/random/minor_rule_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/minor/rule in mode.minor_rules) - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level)) - rule.candidates = mode.candidates.Copy() - rule.trim_candidates() - if (rule.ready() && rule.candidates.len > 0) - drafted_rules[rule] = 1 - return drafted_rules - -/datum/dynamic_storyteller/random/midround_draft() - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/midround/rule in mode.midround_rules) - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level)) - // Classic secret : only autotraitor/minor roles - if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET))) - continue - rule.trim_candidates() - if (rule.ready()) - drafted_rules[rule] = 1 - return drafted_rules - -/datum/dynamic_storyteller/random/latejoin_draft(mob/living/carbon/human/newPlayer) - var/list/drafted_rules = list() - for (var/datum/dynamic_ruleset/latejoin/rule in mode.latejoin_rules) - if (rule.acceptable(mode.current_players[CURRENT_LIVING_PLAYERS].len, mode.threat_level)) - // Classic secret : only autotraitor/minor roles - if (GLOB.dynamic_classic_secret && !((rule.flags & TRAITOR_RULESET))) - continue - // No stacking : only one round-ender, unless threat level > stacking_limit. - if (mode.threat_level > GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking) - if(rule.flags & HIGHLANDER_RULESET && mode.highlander_executed) - continue - rule.candidates = list(newPlayer) - rule.trim_candidates() - if (rule.ready()) - drafted_rules[rule] = 1 - return drafted_rules - -/datum/dynamic_storyteller/story - name = "Story" - config_tag = "story" - desc = "Antags with options for loadouts and gimmicks. Traitor, wizard, nukies." - weight = 4 - curve_width = 2 - flags = USE_PREV_ROUND_WEIGHTS - property_weights = list("story_potential" = 2) - -/datum/dynamic_storyteller/classic - name = "Classic" - config_tag = "classic" - weight = 8 - desc = "No special antagonist weights. Good variety, but not like random. Uses your chaos preference to weight." - flags = USE_PREF_WEIGHTS | USE_PREV_ROUND_WEIGHTS - -/datum/dynamic_storyteller/suspicion - name = "Intrigue" - config_tag = "intrigue" - desc = "Antags that instill distrust in the crew. Traitors, bloodsuckers." - weight = 4 - curve_width = 2 - dead_player_weight = 2 - flags = USE_PREV_ROUND_WEIGHTS - property_weights = list("trust" = -2) - -/datum/dynamic_storyteller/intrigue/minor_start_chance() - return 100 - mode.threat_level - -/datum/dynamic_storyteller/grabbag - name = "Grab Bag" - config_tag = "grabbag" - desc = "Crew antags (e.g. traitor, changeling, bloodsucker, heretic) only at round start, all mixed together." - weight = 4 - flags = USE_PREF_WEIGHTS | USE_PREV_ROUND_WEIGHTS - -/datum/dynamic_storyteller/grabbag/minor_start_chance() - return 100 - -/datum/dynamic_storyteller/liteextended - name = "Calm" - config_tag = "calm" - desc = "Low-chaos round. Few antags. No conversion." - curve_centre = -3 - curve_width = 0.5 - flags = NO_ASSASSIN - min_chaos = 30 - weight = 3 - dead_player_weight = 5 - soft_antag_ratio_cap = 8 - property_weights = list("extended" = 2, "chaos" = -1, "valid" = -1, "conversion" = -10) - -/datum/dynamic_storyteller/liteextended/minor_start_chance() - return 90 - -/datum/dynamic_storyteller/no_antag - name = "Extended" - config_tag = "semiextended" - desc = "No standard antags." - curve_centre = -5 - curve_width = 0.5 - min_chaos = 40 - flags = NO_ASSASSIN | FORCE_IF_WON - weight = 1 - property_weights = list("extended" = 2) - -/datum/dynamic_storyteller/no_antag/roundstart_draft() - return list() - -/datum/dynamic_storyteller/no_antag/should_inject_antag(dry_run) - return FALSE diff --git a/code/game/gamemodes/dynamic/readme.md b/code/game/gamemodes/dynamic/readme.md index a98a02a8dd..3a8d41f230 100644 --- a/code/game/gamemodes/dynamic/readme.md +++ b/code/game/gamemodes/dynamic/readme.md @@ -1,56 +1,184 @@ -# DYNAMIC +# Dynamic Mode -Tries to keep the round at a certain level of action, based on the round's "threat level". - -## ROUNDSTART +## Roundstart Dynamic rolls threat based on a special sauce formula: -"dynamic_curve_width \* tan((rand() - 0.5) \* 180) + dynamic_curve_centre" -Midround injection cooldowns are set using exponential distribution between 15 minutes and 35 minutes. This value is then added to world.time and assigned to the injection cooldown variables. +> [dynamic_curve_width][/datum/controller/global_vars/var/dynamic_curve_width] \* tan((3.1416 \* (rand() - 0.5) \* 57.2957795)) + [dynamic_curve_centre][/datum/controller/global_vars/var/dynamic_curve_centre] -Latejoins are aggressively assigned whenever possible, to keep the round at a certain threat level. +This threat is split into two separate budgets--`round_start_budget` and `mid_round_budget`. For example, a round with 50 threat might be split into a 30 roundstart budget, and a 20 midround budget. The roundstart budget is used to apply antagonists applied on readied players when the roundstarts (`/datum/dynamic_ruleset/roundstart`). The midround budget is used for two types of rulesets: +- `/datum/dynamic_ruleset/midround` - Rulesets that apply to either existing alive players, or to ghosts. Think Blob or Space Ninja, which poll ghosts asking if they want to play as these roles. +- `/datum/dynamic_ruleset/latejoin` - Rulesets that apply to the next player that joins. Think Syndicate Infiltrator, which converts a player just joining an existing round into traitor. -rigged_roundstart() is called instead if there are forced rules (an admin set the mode) +This split is done with a similar method, known as the ["lorentz distribution"](https://en.wikipedia.org/wiki/Cauchy_distribution), exists to create a bell curve that ensures that while most rounds will have a threat level around ~50, chaotic and tame rounds still exist for variety. -can_start() -> pre_setup() -> roundstart() OR rigged_roundstart() -> picking_roundstart_rule(drafted_rules) -> post_setup() +The process of creating these numbers occurs in `/datum/game_mode/dynamic/proc/generate_threat` (for creating the threat level) and `/datum/game_mode/dynamic/proc/generate_budgets` (for splitting the threat level into budgets). -## PROCESS +## Deciding roundstart threats +In `/datum/game_mode/dynamic/proc/roundstart()` (called when no admin chooses the rulesets explicitly), Dynamic uses the available roundstart budget to pick threats. This is done through the following system: -Calls rule_process on every rule which is in the current_rules list. +- All roundstart rulesets (remember, `/datum/dynamic_ruleset/roundstart`) are put into an associative list with their weight as the values (`drafted_rules`). +- Until there is either no roundstart budget left, or until there is no ruleset we can choose from with the available threat, a `pickweight` is done based on the drafted_rules. If the same threat is picked twice, it will "scale up". The meaning of this depends on the ruleset itself, using the `scaled_times` variable; traitors for instance will create more the higher they scale. + - If a ruleset is chosen with the `HIGH_IMPACT_RULESET` in its `flags`, then all other `HIGH_IMPACT_RULESET`s will be removed from `drafted_rules`. This is so that only one can ever be chosen. + - If a ruleset has `LONE_RULESET` in its `flags`, then it will be removed from `drafted_rules`. This is to ensure it will only ever be picked once. An example of this in use is Wizard, to avoid creating multiple wizards. +- After all roundstart threats are chosen, `/datum/dynamic_ruleset/proc/picking_roundstart_rule` is called for each, passing in the ruleset and the number of times it is scaled. + - In this stage, `pre_execute` is called, which is the function that will determine what players get what antagonists. If this function returns FALSE for whatever reason (in the case of an error), then its threat is refunded. + +After this process is done, any leftover roundstart threat will be given to the existing midround budget (done in `/datum/game_mode/dynamic/pre_setup()`). + +## Deciding midround threats + +Latejoin and midround injection cooldowns are set using exponential distribution between + +- 5 minutes and 25 for latejoin (configurable as latejoin_delay_min and latejoin_delay_max) +- 15 minutes and 35 for midround (configurable as midround_delay_min and midround_delay_max) + +this value is then added to `world.time` and assigned to the injection cooldown variables. + +[rigged_roundstart][/datum/game_mode/dynamic/proc/rigged_roundstart] is called instead if there are forced rules (an admin set the mode) + +1. [setup_parameters][/datum/game_mode/proc/setup_parameters]\() +2. [pre_setup][/datum/game_mode/proc/pre_setup]\() +3. [roundstart][/datum/game_mode/dynamic/proc/roundstart]\() OR [rigged_roundstart][/datum/game_mode/dynamic/proc/rigged_roundstart]\() +4. [picking_roundstart_rule][/datum/game_mode/dynamic/proc/picking_roundstart_rule]\(drafted_rules) +5. [post_setup][/datum/game_mode/proc/post_setup]\() + +## Rule Processing + +Calls [rule_process][/datum/dynamic_ruleset/proc/rule_process] on every rule which is in the current_rules list. Every sixty seconds, update_playercounts() Midround injection time is checked against world.time to see if an injection should happen. If midround injection time is lower than world.time, it updates playercounts again, then tries to inject and generates a new cooldown regardless of whether a rule is picked. -## LATEJOIN +## Latejoin -make_antag_chance(newPlayer) -> [For each latespawn rule...] +make_antag_chance(newPlayer) -> (For each latespawn rule...) -> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) **If true, add to drafted rules +**NOTE that acceptable uses threat_level not threat! +**NOTE Latejoin timer is ONLY reset if at least one rule was drafted. **NOTE the new_player.dm AttemptLateSpawn() calls OnPostSetup for all roles (unless assigned role is MODE) -[After collecting all draftble rules...] + +(After collecting all draftble rules...) -> picking_latejoin_ruleset(drafted_rules) -> spend threat -> ruleset.execute() -## MIDROUND -process() -> [For each midround rule...] + +## Midround + +process() -> (For each midround rule... -> acceptable(living players, threat_level) -> trim_candidates() -> ready(forced=FALSE) -[After collecting all draftble rules...] +(After collecting all draftble rules...) -> picking_midround_ruleset(drafted_rules) -> spend threat -> ruleset.execute() -## FORCED + +## Forced + For latejoin, it simply sets forced_latejoin_rule make_antag_chance(newPlayer) -> trim_candidates() -> ready(forced=TRUE) **NOTE no acceptable() call + For midround, calls the below proc with forced = TRUE picking_specific_rule(ruletype,forced) -> forced OR acceptable(living_players, threat_level) -> trim_candidates() -> ready(forced) -> spend threat -> execute() **NOTE specific rule can be called by RS traitor->MR autotraitor w/ forced=FALSE **NOTE that due to short circuiting acceptable() need not be called if forced. -## RULESET + +## Ruleset + acceptable(population,threat) just checks if enough threat_level for population indice. **NOTE that we currently only send threat_level as the second arg, not threat. ready(forced) checks if enough candidates and calls the map's map_ruleset(dynamic_ruleset) at the parent level + trim_candidates() varies significantly according to the ruleset type Roundstart: All candidates are new_player mobs. Check them for standard stuff: connected, desire role, not banned, etc. **NOTE Roundstart deals with both candidates (trimmed list of valid players) and mode.candidates (everyone readied up). Don't confuse them! Latejoin: Only one candidate, the latejoiner. Standard checks. Midround: Instead of building a single list candidates, candidates contains four lists: living, dead, observing, and living antags. Standard checks in trim_list(list). + Midround - Rulesets have additional types /from_ghosts: execute() -> send_applications() -> review_applications() -> finish_setup(mob/newcharacter, index) -> setup_role(role) **NOTE: execute() here adds dead players and observers to candidates list + +## Configuration and variables + +### Configuration +Configuration can be done through a `config/dynamic.json` file. One is provided as example in the codebase. This config file, loaded in `/datum/game_mode/dynamic/pre_setup()`, directly overrides the values in the codebase, and so is perfect for making some rulesets harder/easier to get, turning them off completely, changing how much they cost, etc. + +The format of this file is: +```json +{ + "Dynamic": { + /* Configuration in here will directly override `/datum/game_mode/dynamic` itself. */ + /* Keys are variable names, values are their new values. */ + }, + + "Roundstart": { + /* Configuration in here will apply to `/datum/dynamic_ruleset/roundstart` instances. */ + /* Keys are the ruleset names, values are another associative list with keys being variable names and values being new values. */ + "Wizard": { + /* I, a head admin, have died to wizard, and so I made it cost a lot more threat than it does in the codebase. */ + "cost": 80 + } + }, + + "Midround": { + /* Same as "Roundstart", but for `/datum/dynamic_ruleset/midround` instead. */ + }, + + "Latejoin": { + /* Same as "Roundstart", but for `/datum/dynamic_ruleset/latejoin` instead. */ + } +} +``` + +Note: Comments are not possible in this format, and are just in this document for the sake of readability. + +### Rulesets +Rulesets have the following variables notable to developers and those interested in tuning. + +- `required_candidates` - The number of people that *must be willing* (in their preferences) to be an antagonist with this ruleset. If the candidates do not meet this requirement, then the ruleset will not bother to be drafted. +- `antag_cap` - Judges the amount of antagonists to apply, for both solo and teams. Note that some antagonists (such as traitors, lings, heretics, etc) will add more based on how many times they've been scaled. Written as a linear equation--ceil(x/denominator) + offset, or as a fixed constant. If written as a linear equation, will be in the form of `list("denominator" = denominator, "offset" = offset)`. + - Examples include: + - Traitor: `antag_cap = list("denominator" = 24)`. This means that for every 24 players, 1 traitor will be added (assuming no scaling). + - Nuclear Emergency: `antag_cap = list("denominator" = 18, "offset" = 1)`. For every 18 players, 1 nuke op will be added. Starts at 1, meaning at 30 players, 3 nuke ops will be created, rather than 2. + - Revolution: `antag_cap = 3`. There will always be 3 rev-heads, no matter what. +- `minimum_required_age` - The minimum age in order to apply for the ruleset. +- `weight` - How likely this ruleset is to be picked. A higher weight results in a higher chance of drafting. +- `cost` - The initial cost of the ruleset. This cost is taken from either the roundstart or midround budget, depending on the ruleset. +- `scaling_cost` - Cost for every *additional* application of this ruleset. + - Suppose traitors has a `cost` of 8, and a `scaling_cost` of 5. This means that buying 1 application of the traitor ruleset costs 8 threat, but buying two costs 13 (8 + 5). Buying it a third time is 18 (8 + 5 + 5), etc. +- `pop_per_requirement` - The range of population each value in `requirements` represents. By default, this is 6. + - If the value is five the range is 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+. + - If it is six the range is 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+. + - If it is seven the range is 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+. +- `requirements` - A list that represents, per population range (see: `pop_per_requirement`), how much threat is required to *consider* this ruleset. This is independent of how much it'll actually cost. This uses *threat level*, not the budget--meaning if a round has 50 threat level, but only 10 points of round start threat, a ruleset with a requirement of 40 can still be picked if it can be bought. + - Suppose wizard has a `requirements` of `list(90,90,70,40,30,20,10,10,10,10)`. This means that, at 0-5 and 6-11 players, A station must have 90 threat in order for a wizard to be possible. At 12-17, 70 threat is required instead, etc. +- `restricted_roles` - A list of jobs that *can't* be drafted by this ruleset. For example, cyborgs cannot be changelings, and so are in the `restricted_roles`. +- `protected_roles` - Serves the same purpose of `restricted_roles`, except it can be turned off through configuration (`protect_roles_from_antagonist`). For example, security officers *shouldn't* be made traitor, so they are in Traitor's `protected_roles`. + - When considering putting a role in `protected_roles` or `restricted_roles`, the rule of thumb is if it is *technically infeasible* to support that job in that role. There's no *technical* reason a security officer can't be a traitor, and so they are simply in `protected_roles`. There *are* technical reasons a cyborg can't be a changeling, so they are in `restricted_roles` instead. + +### Dynamic + +The "Dynamic" key has the following configurable values: +- `pop_per_requirement` - The default value of `pop_per_requirement` for any ruleset that does not explicitly set it. Defaults to 6. +- `latejoin_delay_min`, `latejoin_delay_max` - The time range, in deciseconds (take your seconds, and multiply by 10), for a latejoin to attempt rolling. Once this timer is finished, a new one will be created within the same range. + - Suppose you have a `latejoin_delay_min` of 600 (60 seconds, 1 minute) and a `latejoin_delay_max` of 1800 (180 seconds, 3 minutes). Once the round starts, a random number in this range will be picked--let's suppose 1.5 minutes. After 1.5 minutes, Dynamic will decide if a latejoin threat should be created (a probability of `/datum/game_mode/dynamic/proc/get_injection_chance()`). Regardless of its decision, a new timer will be started within the range of 1 to 3 minutes, repeatedly. +- `midround_delay_min`, `midround_delay_max` - Same as `latejoin_delay_min` and `latejoin_delay_max`, except for midround threats instead of latejoin ones. +- `higher_injection_chance`, `higher_injection_chance_minimum_threat` - Manipulates the injection chance (`/datum/game_mode/dynamic/proc/get_injection_chance()`). If the *current midround budget* is above `higher_injection_chance_minimum_threat`, then this chance will be increased by `higher_injection_chance`. + - For example: suppose you have a `higher_injection_chance_minimum_threat` of 70, and a `higher_injection_chance` of 15. This means that, if when a midround threat is trying to roll, there is 75 midround budget left, then the injection chance will go up 15%. +- `lower_injection_chance`, `lower_injection_chance_minimum_threat` - The inverse of the `higher_injection_chance` variables. If the *current midround budget* is *below* `lower_injection_chance`, then the chance is lowered by `lower_injection_chance_minimum_threat`. + - For example: suppose you have a `lower_injection_chance_minimum_threat` of 30, and a `lower_injection_chance` of 15. This means if there is 20 midround budget left, then the chance will lower by 15%. +- `threat_curve_centre` - A number between -5 and +5. A negative value will give a more peaceful round and a positive value will give a round with higher threat. +- `threat_curve_width` - A number between 0.5 and 4. Higher value will favour extreme rounds and lower value rounds closer to the average. +- `roundstart_split_curve_centre` - A number between -5 and +5. Equivalent to threat_curve_centre, but for the budget split. A negative value will weigh towards midround rulesets, and a positive value will weight towards roundstart ones. +- `roundstart_split_curve_width` - A number between 0.5 and 4. Equivalent to threat_curve_width, but for the budget split. Higher value will favour more variance in splits and lower value rounds closer to the average. +- `random_event_hijack_minimum` - The minimum amount of time for antag random events to be hijacked. (See [Random Event Hijacking](#random-event-hijacking)) +- `random_event_hijack_maximum` - The maximum amount of time for antag random events to be hijacked. (See [Random Event Hijacking](#random-event-hijacking)) +- `hijacked_random_event_injection_chance` - The amount of injection chance to give to Dynamic when a random event is hijacked. (See [Random Event Hijacking](#random-event-hijacking)) + +## Random Event "Hijacking" +Random events have the potential to be hijacked by Dynamic to keep the pace of midround injections, while also allowing greenshifts to contain some antagonists. + +`/datum/round_event_control/dynamic_should_hijack` is a variable to random events to allow Dynamic to hijack them, and defaults to FALSE. This is set to TRUE for random events that spawn antagonists. + +In `/datum/game_mode/dynamic/on_pre_random_event` (in `dynamic_hijacking.dm`), Dynamic hooks to random events. If the `dynamic_should_hijack` variable is TRUE, the following sequence of events occurs: + +![Flow chart to describe the chain of events for Dynamic 2021 to take](https://user-images.githubusercontent.com/35135081/109071468-9cab7e00-76a8-11eb-8f9f-2b920c602ef4.png) + +`n` is a random value between `random_event_hijack_minimum` and `random_event_hijack_maximum`. Injection chance, should it need to be raised, is increased by `hijacked_random_event_injection_chance`. diff --git a/code/game/gamemodes/dynamic/ruleset_picking.dm b/code/game/gamemodes/dynamic/ruleset_picking.dm new file mode 100644 index 0000000000..7c87f1bc82 --- /dev/null +++ b/code/game/gamemodes/dynamic/ruleset_picking.dm @@ -0,0 +1,122 @@ +#define ADMIN_CANCEL_MIDROUND_TIME (10 SECONDS) + +/// From a list of rulesets, returns one based on weight and availability. +/// Mutates the list that is passed into it to remove invalid rules. +/datum/game_mode/dynamic/proc/pick_ruleset(list/drafted_rules) + if (only_ruleset_executed) + return null + + while (TRUE) + var/datum/dynamic_ruleset/rule = pickweight(drafted_rules) + if (!rule) + return null + + if (check_blocking(rule.blocking_rules, executed_rules)) + drafted_rules -= rule + if(drafted_rules.len <= 0) + return null + continue + else if ( + rule.flags & HIGH_IMPACT_RULESET \ + && threat_level < GLOB.dynamic_stacking_limit \ + && GLOB.dynamic_no_stacking \ + && high_impact_ruleset_executed \ + ) + drafted_rules -= rule + if(drafted_rules.len <= 0) + return null + continue + + return rule + +/// Executes a random midround ruleset from the list of drafted rules. +/datum/game_mode/dynamic/proc/pick_midround_rule(list/drafted_rules) + var/datum/dynamic_ruleset/rule = pick_ruleset(drafted_rules) + if (isnull(rule)) + return + current_midround_rulesets = drafted_rules - rule + + midround_injection_timer_id = addtimer( + CALLBACK(src, .proc/execute_midround_rule, rule), \ + ADMIN_CANCEL_MIDROUND_TIME, \ + TIMER_STOPPABLE, \ + ) + + log_game("DYNAMIC: [rule] ruleset executing...") + message_admins("DYNAMIC: Executing midround ruleset [rule] in [DisplayTimeText(ADMIN_CANCEL_MIDROUND_TIME)]. \ + CANCEL | \ + SOMETHING ELSE") + +/// Fired after admins do not cancel a midround injection. +/datum/game_mode/dynamic/proc/execute_midround_rule(datum/dynamic_ruleset/rule) + current_midround_rulesets = null + midround_injection_timer_id = null + if (!rule.repeatable) + midround_rules = remove_from_list(midround_rules, rule.type) + addtimer(CALLBACK(src, .proc/execute_midround_latejoin_rule, rule), rule.delay) + +/// Executes a random latejoin ruleset from the list of drafted rules. +/datum/game_mode/dynamic/proc/pick_latejoin_rule(list/drafted_rules) + var/datum/dynamic_ruleset/rule = pick_ruleset(drafted_rules) + if (isnull(rule)) + return + if (!rule.repeatable) + latejoin_rules = remove_from_list(latejoin_rules, rule.type) + addtimer(CALLBACK(src, .proc/execute_midround_latejoin_rule, rule), rule.delay) + return TRUE + +/// Mainly here to facilitate delayed rulesets. All midround/latejoin rulesets are executed with a timered callback to this proc. +/datum/game_mode/dynamic/proc/execute_midround_latejoin_rule(sent_rule) + var/datum/dynamic_ruleset/rule = sent_rule + spend_midround_budget(rule.cost) + threat_log += "[worldtime2text()]: [rule.ruletype] [rule.name] spent [rule.cost]" + rule.pre_execute(current_players[CURRENT_LIVING_PLAYERS].len) + if (rule.execute()) + log_game("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].") + if(rule.flags & HIGH_IMPACT_RULESET) + high_impact_ruleset_executed = TRUE + else if(rule.flags & ONLY_RULESET) + only_ruleset_executed = TRUE + if(rule.ruletype == "Latejoin") + var/mob/M = pick(rule.candidates) + message_admins("[key_name(M)] joined the station, and was selected by the [rule.name] ruleset.") + log_game("DYNAMIC: [key_name(M)] joined the station, and was selected by the [rule.name] ruleset.") + executed_rules += rule + rule.candidates.Cut() + if (rule.persistent) + current_rules += rule + new_snapshot(rule) + return TRUE + rule.clean_up() + stack_trace("The [rule.ruletype] rule \"[rule.name]\" failed to execute.") + return FALSE + +/// Fired when an admin cancels the current midround injection. +/datum/game_mode/dynamic/proc/admin_cancel_midround(mob/user, timer_id) + if (midround_injection_timer_id != timer_id || !deltimer(midround_injection_timer_id)) + to_chat(user, span_notice("Too late!")) + return + + log_admin("[key_name(user)] cancelled the next midround injection.") + message_admins("[key_name(user)] cancelled the next midround injection.") + midround_injection_timer_id = null + current_midround_rulesets = null + +/// Fired when an admin requests a different midround injection. +/datum/game_mode/dynamic/proc/admin_different_midround(mob/user, timer_id) + if (midround_injection_timer_id != timer_id || !deltimer(midround_injection_timer_id)) + to_chat(user, span_notice("Too late!")) + return + + midround_injection_timer_id = null + + if (isnull(current_midround_rulesets) || current_midround_rulesets.len == 0) + log_admin("[key_name(user)] asked for a different midround injection, but there were none left.") + message_admins("[key_name(user)] asked for a different midround injection, but there were none left.") + return + + log_admin("[key_name(user)] asked for a different midround injection.") + message_admins("[key_name(user)] asked for a different midround injection.") + pick_midround_rule(current_midround_rulesets) + +#undef ADMIN_CANCEL_MIDROUND_TIME diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index 5ea99da479..617be706cb 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -52,6 +52,9 @@ var/setup_error //What stopepd setting up the mode. var/flipseclevel = FALSE //CIT CHANGE - adds a 10% chance for the alert level to be the opposite of what the gamemode is supposed to have + /// Associative list of current players, in order: living players, living antagonists, dead players and observers. + var/list/list/current_players = list(CURRENT_LIVING_PLAYERS = list(), CURRENT_LIVING_ANTAGS = list(), CURRENT_DEAD_PLAYERS = list(), CURRENT_OBSERVERS = list()) + /datum/game_mode/proc/announce() //Shows the gamemode's name and a fast description. to_chat(world, "The gamemode is: [name]!") to_chat(world, "[announce_text]") @@ -76,6 +79,8 @@ return 1 + + ///Attempts to select players for special roles the mode might have. /datum/game_mode/proc/pre_setup() return 1 diff --git a/code/game/machinery/colormate.dm b/code/game/machinery/colormate.dm index d059d492ae..281538e7a8 100644 --- a/code/game/machinery/colormate.dm +++ b/code/game/machinery/colormate.dm @@ -23,6 +23,8 @@ /obj/item/storage/backpack, /obj/item/storage/belt ) + /// Temporary messages + var/temp /obj/machinery/gear_painter/Initialize(mapload) . = ..() @@ -69,6 +71,8 @@ if(!QDELETED(H)) H.release() insert_mob(victim, user) + temp = "[victim] has been inserted." + SStgui.update_uis(src) if(is_type_in_list(I, allowed_types) && is_operational()) if(!user.transferItemToLoc(I, src)) @@ -80,6 +84,9 @@ inserted = I update_icon() + temp = "[I] has been inserted." + SStgui.update_uis(src) + else return ..() @@ -101,137 +108,159 @@ /obj/machinery/gear_painter/AltClick(mob/user) . = ..() - if(!user.CanReach(src)) + drop_item() + +/obj/machinery/gear_painter/proc/drop_item() + if(!usr.CanReach(src)) return if(!inserted) return - to_chat(user, "You remove [inserted] from [src]") + to_chat(usr, "You remove [inserted] from [src]") inserted.forceMove(drop_location()) + var/mob/living/user = usr + if(istype(user)) + user.put_in_hands(inserted) inserted = null update_icon() - updateUsrDialog() + SStgui.update_uis(src) -/obj/machinery/gear_painter/ui_interact(mob/user) - if(!is_operational()) - return - user.set_machine(src) - var/list/dat = list("Color Mate Control Panel
") - if(!inserted) - dat += "No item inserted." +/obj/machinery/gear_painter/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "Colormate", src.name) + ui.set_autoupdate(FALSE) //This might be a bit intensive, better to not update it every few ticks + ui.open() + +/obj/machinery/gear_painter/ui_data(mob/user) + . = list() + .["matrixactive"] = matrix_mode + .["matrixcolors"] = list( + "rr" = color_matrix_last[1], + "rg" = color_matrix_last[2], + "rb" = color_matrix_last[3], + "gr" = color_matrix_last[4], + "gg" = color_matrix_last[5], + "gb" = color_matrix_last[6], + "br" = color_matrix_last[7], + "bg" = color_matrix_last[8], + "bb" = color_matrix_last[9], + "cr" = color_matrix_last[10], + "cg" = color_matrix_last[11], + "cb" = color_matrix_last[12] + ) + if(temp) + .["temp"] = temp + if(inserted) + .["item"] = list() + .["item"]["name"] = inserted.name + .["item"]["sprite"] = icon2base64(getFlatIcon(inserted,defdir=SOUTH,no_anim=TRUE)) + .["item"]["preview"] = icon2base64(build_preview()) else - dat += "Item inserted: [inserted]
" - dat += "Matrix mode: [matrix_mode? "On" : "Off"]" - if(!matrix_mode) - dat += "Select new color.
" - dat += "Color: " - dat += "Apply new color.

" + .["item"] = null + +/obj/machinery/gear_painter/ui_act(action, params) + . = ..() + if(.) + return + if(inserted) + switch(action) + if("switch_modes") + matrix_mode = text2num(params["mode"]) + return TRUE + if("choose_color") + var/chosen_color = input(usr, "Choose a color: ", "Colormate color picking", activecolor) as color|null + if(chosen_color) + activecolor = chosen_color + return TRUE + if("paint") + if(!check_valid_color(activecolor, usr)) + return TRUE + inserted.add_atom_colour(activecolor, FIXED_COLOUR_PRIORITY) + playsound(src, 'sound/effects/spray3.ogg', 50, 1) + temp = "Painted Successfully!" + return TRUE + if("drop") + temp = "Ejected \the [inserted]!" + drop_item() + return TRUE + if("clear") + inserted.remove_atom_colour(FIXED_COLOUR_PRIORITY) + playsound(src, 'sound/effects/spray3.ogg', 50, 1) + temp = "Cleared Successfully!" + return TRUE + if("set_matrix_color") + color_matrix_last[params["color"]] = params["value"] + return TRUE + if("matrix_paint") + var/list/cm = rgb_construct_color_matrix( + text2num(color_matrix_last[1]), + text2num(color_matrix_last[2]), + text2num(color_matrix_last[3]), + text2num(color_matrix_last[4]), + text2num(color_matrix_last[5]), + text2num(color_matrix_last[6]), + text2num(color_matrix_last[7]), + text2num(color_matrix_last[8]), + text2num(color_matrix_last[9]), + text2num(color_matrix_last[10]), + text2num(color_matrix_last[11]), + text2num(color_matrix_last[12]) + ) + if(!check_valid_color(cm, usr)) + return TRUE + inserted.add_atom_colour(cm, FIXED_COLOUR_PRIORITY) + playsound(src, 'sound/effects/spray3.ogg', 50, 1) + temp = "Matrix Painted Successfully!" + return TRUE + +/// Produces the preview image of the item, used in the UI, the way the color is not stacking is a sin. +/obj/machinery/gear_painter/proc/build_preview() + if(inserted) //sanity + if(matrix_mode) + var/list/cm = rgb_construct_color_matrix( + text2num(color_matrix_last[1]), + text2num(color_matrix_last[2]), + text2num(color_matrix_last[3]), + text2num(color_matrix_last[4]), + text2num(color_matrix_last[5]), + text2num(color_matrix_last[6]), + text2num(color_matrix_last[7]), + text2num(color_matrix_last[8]), + text2num(color_matrix_last[9]), + text2num(color_matrix_last[10]), + text2num(color_matrix_last[11]), + text2num(color_matrix_last[12]) + ) + if(!check_valid_color(cm, usr)) + temp = "Failed to generate preview: Invalid color!" + return getFlatIcon(inserted, defdir=SOUTH, no_anim=TRUE) + + var/cur_color = inserted.color + inserted.color = null + inserted.color = cm + var/icon/preview = getFlatIcon(inserted, defdir=SOUTH, no_anim=TRUE) + inserted.color = cur_color + + . = preview + else - // POGGERS -#define MATRIX_FIELD(field, default) " " - dat += "
" - dat += "" - dat += "[cm] is far too dark (min lightness [minimum_normal_lightness]!") + temp = "[cm] is far too dark (min lightness [minimum_normal_lightness]!" return FALSE return TRUE else // matrix @@ -245,6 +274,6 @@ COLORTEST("FFFFFF", cm) #undef COLORTEST if(passed < minimum_matrix_tests) - to_chat(user, "[english_list(color)] is not allowed (pased [passed] out of 4, minimum [minimum_matrix_tests], minimum lightness [minimum_matrix_lightness]).") + temp = "[english_list(color)] is not allowed (passed [passed] out of 4, minimum [minimum_matrix_tests], minimum lightness [minimum_matrix_lightness])." return FALSE return TRUE diff --git a/code/game/machinery/computer/_computer.dm b/code/game/machinery/computer/_computer.dm index a2d32e0d4f..abca9db109 100644 --- a/code/game/machinery/computer/_computer.dm +++ b/code/game/machinery/computer/_computer.dm @@ -17,12 +17,8 @@ /obj/machinery/computer/Initialize(mapload, obj/item/circuitboard/C) . = ..() - power_change() -/obj/machinery/computer/Destroy() - . = ..() - /obj/machinery/computer/process() if(stat & (NOPOWER|BROKEN)) return FALSE @@ -119,6 +115,9 @@ A.circuit = circuit // Circuit removal code is handled in /obj/machinery/Exited() circuit.forceMove(A) + // no it's not 4head the circuit's in nullspace which means this won't be called!! + circuit = null + component_parts -= circuit A.set_anchored(TRUE) if(stat & BROKEN) if(user) diff --git a/code/game/machinery/computer/arcade/minesweeper.dm b/code/game/machinery/computer/arcade/minesweeper.dm index cd6ff2359c..1027ab1815 100644 --- a/code/game/machinery/computer/arcade/minesweeper.dm +++ b/code/game/machinery/computer/arcade/minesweeper.dm @@ -176,15 +176,6 @@ table[y1][x1] -= 10 else if(table[y1][x1] < 0) //If flagged, remove the flag table[y1][x1] += 10 - if(href_list["same_board"]) //Reset the board... kinda - if(game_status != MINESWEEPER_GAME_PLAYING) - mine_sound = TRUE - game_status = MINESWEEPER_GAME_PLAYING - if(table[y1][x1] >= 10) //If revealed, become unrevealed! - if(mine_sound) - playsound(loc, 'sound/arcade/minesweeper_menuselect.ogg', 50, FALSE, extrarange = -3) - mine_sound = FALSE - table[y1][x1] -= 10 if(table[y1][x1] > 10 && !reset_board) safe_squares_revealed += 1 var/y2 = y1 @@ -274,10 +265,10 @@ prizevend(user, dope_prizes) if(game_status == MINESWEEPER_GAME_WON) - web += "[(rows < 10 || columns < 10) ? "You won, but your board was too small! Pick a bigger board next time!" : "Congratulations, you have won!"]
Want to play again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Play on the same board
Return to Main Menu
" + web += "[(rows < 10 || columns < 10) ? "You won, but your board was too small! Pick a bigger board next time!" : "Congratulations, you have won!"]
Want to play again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Return to Main Menu
" if(game_status == MINESWEEPER_GAME_LOST) - web += "You have lost!
Try again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Play on the same board
Return to Main Menu
" + web += "You have lost!
Try again?
Easy (9x9 board, 10 mines)
Intermediate (16x16 board, 40 mines)
Hard (16x30 board, 99 mines)
Custom

Return to Main Menu
" if(game_status == MINESWEEPER_GAME_PLAYING) web += "Return to Main Menu
" diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm index 47343ea58f..c18d146e90 100644 --- a/code/game/machinery/computer/buildandrepair.dm +++ b/code/game/machinery/computer/buildandrepair.dm @@ -151,6 +151,7 @@ new_computer.RefreshParts() new_computer.on_construction() + new_computer.circuit.moveToNullspace() qdel(src) return diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 19da4f75d8..bf690398a4 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -200,6 +200,9 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) return b["totaldam"] - a["totaldam"] /datum/crewmonitor/ui_act(action,params) + . = ..() + if(.) + return var/mob/living/silicon/ai/AI = usr if(!istype(AI)) return diff --git a/code/game/machinery/telecomms/machine_interactions.dm b/code/game/machinery/telecomms/machine_interactions.dm index 9876206724..808dc4877b 100644 --- a/code/game/machinery/telecomms/machine_interactions.dm +++ b/code/game/machinery/telecomms/machine_interactions.dm @@ -86,6 +86,9 @@ .["machine"]["chang_freq_value"] = change_freq_value /obj/machinery/telecomms/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return if(!canInteract(usr)) if(ui) ui.close() //haha no. diff --git a/code/game/objects/effects/spawners/bundle.dm b/code/game/objects/effects/spawners/bundle.dm index 58cd0f4fa9..9e5d80248d 100644 --- a/code/game/objects/effects/spawners/bundle.dm +++ b/code/game/objects/effects/spawners/bundle.dm @@ -169,14 +169,21 @@ /obj/item/clothing/mask/gas/mime/sexy, /obj/item/clothing/under/rank/civilian/mime/sexy) +/obj/effect/spawner/bundle/crate + var/pickone = FALSE + /obj/effect/spawner/bundle/crate/Initialize(mapload) SHOULD_CALL_PARENT(FALSE) if(items && items.len) var/turf/T = get_turf(src) var/obj/structure/closet/LC = locate(/obj/structure/closet) in T if(LC) - for(var/path in items) - new path(LC) + if(pickone) + var/tospawn = pick(items) + new tospawn(LC) + else + for(var/path in items) + new path(LC) return INITIALIZE_HINT_QDEL /obj/effect/spawner/bundle/crate/mosin @@ -192,3 +199,29 @@ /obj/item/gun/ballistic/automatic/surplus, /obj/item/ammo_box/magazine/m10mm/rifle ) + +/obj/effect/spawner/bundle/crate/levergun + name = "lever-action rifle spawner" + items = list( + /obj/item/gun/ballistic/shotgun/leveraction, + /obj/item/ammo_box/c38/pouch + ) + +/obj/effect/spawner/bundle/crate/cowboyhat + name = "cowboy hat spawner" + pickone = TRUE + items = list( + /obj/item/clothing/head/cowboyhat, + /obj/item/clothing/head/cowboyhat/black, + /obj/item/clothing/head/cowboyhat/white, + /obj/item/clothing/head/cowboyhat/pink, + /obj/item/clothing/head/cowboyhat/sec + ) + +/obj/effect/spawner/bundle/crate/cowboyboots + name = "cowboy boots spawner" + pickone = TRUE + items = list( + /obj/item/clothing/shoes/cowboyboots, + /obj/item/clothing/shoes/cowboyboots/black + ) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 0d6b1231fc..53f64c57d2 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -131,7 +131,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb //Tooltip vars var/force_string //string form of an item's force. Edit this var only to set a custom force string var/last_force_string_check = 0 - var/tip_timer var/trigger_guard = TRIGGER_GUARD_NONE @@ -451,7 +450,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb A.Remove(user) if(item_flags & DROPDEL) qdel(src) - item_flags &= ~IN_INVENTORY + DISABLE_BITFIELD(item_flags, IN_INVENTORY) + DISABLE_BITFIELD(item_flags, IN_STORAGE) SEND_SIGNAL(src, COMSIG_ITEM_DROPPED,user) remove_outline() // if(!silent) @@ -529,6 +529,8 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb if(item_action_slot_check(slot, user, A)) //some items only give their actions buttons when in a specific slot. A.Grant(user) item_flags |= IN_INVENTORY + if(CHECK_BITFIELD(item_flags, IN_STORAGE)) // Left storage item but somehow has the bitfield active still. + DISABLE_BITFIELD(item_flags, IN_STORAGE) // if(!initial) // if(equip_sound && (slot_flags & slot)) // playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE) @@ -885,10 +887,9 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/MouseEntered(location, control, params) SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_ENTER, location, control, params) - if((item_flags & IN_INVENTORY || item_flags & IN_STORAGE) && usr.client.prefs.enable_tips && !QDELETED(src)) - var/timedelay = usr.client.prefs.tip_delay/100 - var/user = usr - tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, user), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. + if((item_flags & IN_INVENTORY || item_flags & IN_STORAGE) && usr?.client.prefs.enable_tips && !QDELETED(src)) + var/timedelay = max(usr.client.prefs.tip_delay * 0.01, 0.01) // I heard multiplying is faster, also runtimes from very low/negative numbers + usr.client.tip_timer = addtimer(CALLBACK(src, .proc/openTip, location, control, params, usr), timedelay, TIMER_STOPPABLE)//timer takes delay in deciseconds, but the pref is in milliseconds. dividing by 100 converts it. var/mob/living/L = usr if(istype(L) && (L.incapacitated() || (current_equipped_slot in L.check_obscured_slots()) || !L.canUnEquip(src))) apply_outline(_size = 3) @@ -901,7 +902,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb /obj/item/MouseExited(location,control,params) SEND_SIGNAL(src, COMSIG_ITEM_MOUSE_EXIT, location, control, params) - deltimer(tip_timer)//delete any in-progress timer if the mouse is moved off the item before it finishes closeToolTip(usr) remove_outline() diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm index 16ebe20e51..5e37e9d992 100644 --- a/code/game/objects/items/cigs_lighters.dm +++ b/code/game/objects/items/cigs_lighters.dm @@ -300,6 +300,17 @@ CIGARETTE PACKETS ARE IN FANCY.DM desc = "A Xeno Filtered brand cigarette." list_reagents = list (/datum/reagent/drug/nicotine = 20, /datum/reagent/medicine/regen_jelly = 15, /datum/reagent/drug/krokodil = 4) +/obj/item/clothing/mask/cigarette/dart + name = "fat dart" + desc = "Chuff back this fat dart" + icon_state = "bigoff" + icon_on = "bigon" + icon_off = "bigoff" + w_class = WEIGHT_CLASS_BULKY + smoketime = 10000 + chem_volume = 50 + list_reagents = list(/datum/reagent/drug/nicotine = 15) + // Rollies. /obj/item/clothing/mask/cigarette/rollie diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 3ef4cb0307..58a3eb312b 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -269,6 +269,10 @@ GLOBAL_LIST_INIT(channel_tokens, list( . = ..() AddElement(/datum/element/empprotection, EMP_PROTECT_WIRES) +/obj/item/radio/headset/silicon/pai/emp_act(severity) + . = ..() + return EMP_PROTECT_SELF + /obj/item/radio/headset/silicon/ai name = "\proper Integrated Subspace Transceiver " keyslot2 = new /obj/item/encryptionkey/ai diff --git a/code/game/objects/items/granters.dm b/code/game/objects/items/granters.dm index 6ab12b7e39..d1450c2685 100644 --- a/code/game/objects/items/granters.dm +++ b/code/game/objects/items/granters.dm @@ -535,13 +535,13 @@ oneuse = FALSE remarks = list("Looks like these would sell much better in a plasma fire...", "Using glass bowls rather then cones?", "Mixing soda and ice-cream?", "Tall glasses with of liquids and solids...", "Just add a bit of icecream and cherry on top?") -/obj/item/book/granter/crafting_recipe/bone_bow //Bow crafting for non-ashwalkers +/*/obj/item/book/granter/crafting_recipe/bone_bow //Bow crafting for non-ashwalkers name = "bowyery sandstone slab" // this is an actual word desc = "A sandstone slab with inscriptions describing the Ash Walkers of Lavaland's bowyery." crafting_recipe_types = list(/datum/crafting_recipe/bone_arrow, /datum/crafting_recipe/bone_bow, /datum/crafting_recipe/ashen_arrow, /datum/crafting_recipe/quiver, /datum/crafting_recipe/bow_tablet) icon_state = "stone_tablet" oneuse = FALSE - remarks = list("Sticking burning arrows into the sand makes them stronger...", "Breaking the bone apart to get shards, not sharpening the bone...", "Sinew is just like rope...") + remarks = list("Sticking burning arrows into the sand makes them stronger...", "Breaking the bone apart to get shards, not sharpening the bone...", "Sinew is just like rope...")*/ /obj/item/book/granter/crafting_recipe/under_the_oven //Illegal cook book name = "Under The Oven" diff --git a/code/game/objects/items/holy_weapons.dm b/code/game/objects/items/holy_weapons.dm index 44121d64d1..1360fb970e 100644 --- a/code/game/objects/items/holy_weapons.dm +++ b/code/game/objects/items/holy_weapons.dm @@ -769,12 +769,33 @@ STOP_PROCESSING(SSobj, src) . = ..() +/obj/item/nullrod/tribal_knife/pickup(mob/user) + . = ..() + reroll() + /obj/item/nullrod/tribal_knife/process() - slowdown = rand(-2, 2) + reroll() + +/obj/item/nullrod/tribal_knife/proc/reroll() if(iscarbon(loc)) var/mob/living/carbon/wielder = loc if(wielder.is_holding(src)) - wielder.update_equipment_speed_mods() + var/current_tiles = 10 / max(wielder.cached_multiplicative_slowdown, world.tick_lag) + var/datum/movespeed_modifier/M = wielder.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/item/arrhythmic_knife, update = FALSE, multiplicative_slowdown = pick(-10, -10, 0, (current_tiles - 2) / 10, (current_tiles - 4) / 10)) + M.max_tiles_per_second_boost = pick(3, 6) + wielder.update_movespeed() // update movespeed manually + +/obj/item/nullrod/tribal_knife/dropped(mob/user) + user.remove_movespeed_modifier(/datum/movespeed_modifier/item/arrhythmic_knife) + return ..() + +/datum/movespeed_modifier/item/arrhythmic_knife + variable = TRUE + flags = IGNORE_NOSLOW + movetypes = ~FLOATING + priority = 750 + absolute_max_tiles_per_second = 20 + max_tiles_per_second_boost = 6 /obj/item/nullrod/pitchfork icon_state = "pitchfork0" diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 59464d25a7..683232b540 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -238,72 +238,73 @@ return return ..() -/obj/item/toy/plush/proc/love(obj/item/toy/plush/Kisser, mob/living/user) //~<3 - var/chance = 100 //to steal a kiss, surely there's a 100% chance no-one would reject a plush such as I? - var/concern = 20 //perhaps something might cloud true love with doubt - var/loyalty = 30 //why should another get between us? - var/duty = 50 //conquering another's is what I live for +/obj/item/toy/plush/proc/love(obj/item/toy/plush/Kisser, mob/living/user) //~<3 + var/chance = 100 //to steal a kiss, surely there's a 100% chance no-one would reject a plush such as I? + var/concern = 20 //perhaps something might cloud true love with doubt + var/loyalty = 30 //why should another get between us? + var/duty = 50 //conquering another's is what I live for //we are not catholic if(young == TRUE || Kisser.young == TRUE) - user.show_message("[src] plays tag with [Kisser].", MSG_VISUAL, - "They're happy.", 0) + user.show_message(span_notice("[src] plays tag with [Kisser]."), MSG_VISUAL, + span_notice("They're happy."), NONE) Kisser.cheer_up() cheer_up() //never again else if(Kisser in scorned) //message, visible, alternate message, neither visible nor audible - user.show_message("[src] rejects the advances of [Kisser]!", MSG_VISUAL, - "That didn't feel like it worked.", 0) + user.show_message(span_notice("[src] rejects the advances of [Kisser]!"), MSG_VISUAL, + span_notice("That didn't feel like it worked."), NONE) else if(src in Kisser.scorned) - user.show_message("[Kisser] realises who [src] is and turns away.", MSG_VISUAL, - "That didn't feel like it worked.", 0) + user.show_message(span_notice("[Kisser] realises who [src] is and turns away."), MSG_VISUAL, + span_notice("That didn't feel like it worked."), NONE) //first comes love - else if(Kisser.lover != src && Kisser.partner != src) //cannot be lovers or married - if(Kisser.lover) //if the initiator has a lover - Kisser.lover.heartbreak(Kisser) //the old lover can get over the kiss-and-run whilst the kisser has some fun - chance -= concern //one heart already broken, what does another mean? - if(lover) //if the recipient has a lover - chance -= loyalty //mustn't... but those lips - if(partner) //if the recipient has a partner - chance -= duty //do we mate for life? + else if(Kisser.lover != src && Kisser.partner != src) //cannot be lovers or married + if(Kisser.lover) //if the initiator has a lover + Kisser.lover.heartbreak(Kisser) //the old lover can get over the kiss-and-run whilst the kisser has some fun + chance -= concern //one heart already broken, what does another mean? + if(lover) //if the recipient has a lover + chance -= loyalty //mustn't... but those lips + if(partner) //if the recipient has a partner + chance -= duty //do we mate for life? - if(prob(chance)) //did we bag a date? - user.visible_message("[user] makes [Kisser] kiss [src]!", - "You make [Kisser] kiss [src]!") - if(lover) //who cares for the past, we live in the present + if(prob(chance)) //did we bag a date? + user.visible_message(span_notice("[user] makes [Kisser] kiss [src]!"), + span_notice("You make [Kisser] kiss [src]!")) + if(lover) //who cares for the past, we live in the present lover.heartbreak(src) new_lover(Kisser) Kisser.new_lover(src) else - user.show_message("[src] rejects the advances of [Kisser], maybe next time?", MSG_VISUAL, - "That didn't feel like it worked, this time.", 0) + user.show_message(span_notice("[src] rejects the advances of [Kisser], maybe next time?"), MSG_VISUAL, + span_notice("That didn't feel like it worked, this time."), NONE) //then comes marriage - else if(Kisser.lover == src && Kisser.partner != src) //need to be lovers (assumes loving is a two way street) but not married (also assumes similar) - user.visible_message("[user] pronounces [Kisser] and [src] married! D'aw.", - "You pronounce [Kisser] and [src] married!") + else if(Kisser.lover == src && Kisser.partner != src) //need to be lovers (assumes loving is a two way street) but not married (also assumes similar) + user.visible_message(span_notice("[user] pronounces [Kisser] and [src] married! D'aw."), + span_notice("You pronounce [Kisser] and [src] married!")) new_partner(Kisser) Kisser.new_partner(src) //then comes a baby in a baby's carriage, or an adoption in an adoption's orphanage - else if(Kisser.partner == src && !plush_child) //the one advancing does not take ownership of the child and we have a one child policy in the toyshop - user.visible_message("[user] is going to break [Kisser] and [src] by bashing them like that.", - "[Kisser] passionately embraces [src] in your hands. Look away you perv!") + else if(Kisser.partner == src && !plush_child) //the one advancing does not take ownership of the child and we have a one child policy in the toyshop + user.visible_message(span_notice("[user] is going to break [Kisser] and [src] by bashing them like that."), + span_notice("[Kisser] passionately embraces [src] in your hands. Look away you perv!")) + user.client.give_award(/datum/award/achievement/misc/rule8, user) if(plop(Kisser)) - user.visible_message("Something drops at the feet of [user].", - "The miracle of oh god did that just come out of [src]?!") + user.visible_message(span_notice("Something drops at the feet of [user]."), + span_notice("The miracle of oh god did that just come out of [src]?!")) //then comes protection, or abstinence if we are catholic else if(Kisser.partner == src && plush_child) - user.visible_message("[user] makes [Kisser] nuzzle [src]!", - "You make [Kisser] nuzzle [src]!") + user.visible_message(span_notice("[user] makes [Kisser] nuzzle [src]!"), + span_notice("You make [Kisser] nuzzle [src]!")) //then oh fuck something unexpected happened else - user.show_message("[Kisser] and [src] don't know what to do with one another.", 0) + user.show_message(span_warning("[Kisser] and [src] don't know what to do with one another."), NONE) /obj/item/toy/plush/proc/heartbreak(obj/item/toy/plush/Brutus) if(lover != Brutus) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 88648bcbb7..4dea7472c7 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -457,6 +457,10 @@ as performing this in action() will cause the upgrade to end up in the borg inst desc = "An upgrade to a cyborg's hypospray, allowing it to \ pierce armor and thick material." icon_state = "cyborg_upgrade3" + module_type = list(/obj/item/robot_module/medical, + /obj/item/robot_module/syndicate_medical) + var/list/additional_reagents = list() + module_flags = BORG_MODULE_MEDICAL /obj/item/borg/upgrade/piercing_hypospray/action(mob/living/silicon/robot/R, user = usr) . = ..() @@ -514,6 +518,7 @@ as performing this in action() will cause the upgrade to end up in the borg inst module_type = list( /obj/item/robot_module/medical, /obj/item/robot_module/syndicate_medical) + module_flags = BORG_MODULE_MEDICAL /obj/item/borg/upgrade/advhealth/action(mob/living/silicon/robot/R, user = usr) . = ..() diff --git a/code/game/objects/items/shields.dm b/code/game/objects/items/shields.dm index 74efe3a196..f1691e5eb9 100644 --- a/code/game/objects/items/shields.dm +++ b/code/game/objects/items/shields.dm @@ -78,7 +78,7 @@ animate(effect, alpha = 0, pixel_x = px * 1.5, pixel_y = py * 1.5, time = 3, flags = ANIMATION_PARALLEL | ANIMATION_RELATIVE) /obj/item/shield/proc/bash_target(mob/living/user, mob/living/target, bashdir, harmful) - if(!(target.status_flags & CANKNOCKDOWN) || HAS_TRAIT(src, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess.. + if(!(HAS_TRAIT(target, CANKNOCKDOWN)) || HAS_TRAIT(target, TRAIT_STUNIMMUNE)) // should probably add stun absorption check at some point I guess.. // unified stun absorption system when lol target.visible_message("[user] slams [target] with [src], but [target] doesn't falter!", "[user] slams you with [src], but it barely fazes you!") return FALSE diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 9c3d776b56..e30ec783bf 100755 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -312,7 +312,7 @@ /obj/item/storage/belt/mining/primitive/ComponentInitialize() . = ..() var/datum/component/storage/STR = GetComponent(/datum/component/storage) - STR.max_items = 5 + STR.max_items = 8 /obj/item/storage/belt/soulstone name = "soul stone belt" diff --git a/code/game/objects/items/storage/toolbox.dm b/code/game/objects/items/storage/toolbox.dm index 7a067257cb..56cf50993b 100644 --- a/code/game/objects/items/storage/toolbox.dm +++ b/code/game/objects/items/storage/toolbox.dm @@ -79,6 +79,8 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) name = "mechanical toolbox" icon_state = "blue" item_state = "toolbox_blue" + /// If FALSE, someone with a ensouled soulstone can sacrifice a spirit to change the sprite of this toolbox. + var/has_soul = FALSE /obj/item/storage/toolbox/mechanical/PopulateContents() new /obj/item/screwdriver(src) @@ -93,6 +95,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) icon_state = "toolbox_blue_old" has_latches = FALSE can_rubberify = FALSE + has_soul = TRUE /obj/item/storage/toolbox/mechanical/old/heirloom name = "old, robust toolbox" //this will be named "X family toolbox" @@ -126,7 +129,7 @@ GLOBAL_LIST_EMPTY(rubber_toolbox_icons) /obj/item/storage/toolbox/mechanical/old/clean/throw_impact(atom/hit_atom, datum/thrownthing/throwingdatum) calc_damage() ..() - + /obj/item/storage/toolbox/mechanical/old/clean/PopulateContents() new /obj/item/screwdriver(src) new /obj/item/wrench(src) diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index 62bde0e4e6..6cc2385e62 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -16,8 +16,9 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 50, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) attack_speed = CLICK_CD_MELEE - var/stamina_loss_amount = 40 + var/stamina_loss_amount = 35 var/turned_on = FALSE + var/armor_pen = 100 var/knockdown = TRUE /// block percent needed to prevent knockdown/disarm var/block_percent_to_counter = 50 @@ -25,8 +26,8 @@ var/hitcost = 750 var/throw_hit_chance = 35 var/preload_cell_type //if not empty the baton starts with this type of cell - var/cooldown_duration = 3.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown - var/status_duration = 5 SECONDS //how long our status effects last for otherwise + var/cooldown_duration = 2.5 SECONDS //How long our baton rightclick goes on cooldown for after applying a knockdown + var/status_duration = 3 SECONDS //how long our status effects last for otherwise COOLDOWN_DECLARE(shove_cooldown) /obj/item/melee/baton/examine(mob/user) @@ -80,16 +81,6 @@ //we're below minimum, turn off switch_status(FALSE) -///Check for our cell to determine how much penetration our weapon does. -/obj/item/melee/baton/proc/get_cell_zap_pen() - var/obj/item/stock_parts/cell/copper_top = get_cell() - if(copper_top) - var/chargepower = copper_top.maxcharge - var/zap_penetration = (chargepower/1000) //This is our effective penetration. Every 1000 max charge, we get 1 pen power. A high capacity cell is equal to 10 armor pen, as an example. - return zap_penetration - else - return 0 - /obj/item/melee/baton/proc/switch_status(new_status = FALSE, silent = FALSE) if(turned_on != new_status) turned_on = new_status @@ -198,7 +189,7 @@ return FALSE var/final_stamina_loss_amount = stamina_loss_amount //Our stunning power for the baton var/shoved = FALSE //Did we succeed on knocking our target over? - var/zap_penetration = get_cell_zap_pen() //Find out what kind of cell we have, and calculating the resultant armor pen we get from it + var/zap_penetration = armor_pen var/zap_block = L.run_armor_check(BODY_ZONE_CHEST, "melee", null, null, zap_penetration) //armor check, including calculation for armor penetration, for our attack final_stamina_loss_amount = block_calculate_resultant_damage(final_stamina_loss_amount, return_list) @@ -223,7 +214,7 @@ if(shoving && COOLDOWN_FINISHED(src, shove_cooldown) && !HAS_TRAIT(L, TRAIT_IWASBATONED)) //Rightclicking applies a knockdown, but only once every couple of seconds, based on the cooldown_duration var. If they were recently knocked down, they can't be knocked down again by a baton. L.DefaultCombatKnockdown(50, override_stamdmg = 0) - L.apply_status_effect(STATUS_EFFECT_TASED_WEAK, status_duration) //Even if they shove themselves up, they're still slowed. + L.apply_status_effect(STATUS_EFFECT_TASED_WEAK_NODMG, status_duration) //Even if they shove themselves up, they're still slowed. L.apply_status_effect(STATUS_EFFECT_OFF_BALANCE, status_duration) //They're very likely to drop items if shoved briefly after a knockdown. shoved = TRUE COOLDOWN_START(src, shove_cooldown, cooldown_duration) @@ -333,7 +324,8 @@ w_class = WEIGHT_CLASS_BULKY force = 3 throwforce = 5 - stamina_loss_amount = 25 + stamina_loss_amount = 30 + armor_pen = 35 hitcost = 1000 throw_hit_chance = 10 slot_flags = ITEM_SLOT_BACK diff --git a/code/game/objects/items/tools/crowbar.dm b/code/game/objects/items/tools/crowbar.dm index f481cab91f..93f8915f95 100644 --- a/code/game/objects/items/tools/crowbar.dm +++ b/code/game/objects/items/tools/crowbar.dm @@ -41,6 +41,13 @@ /obj/item/crowbar/brass/family toolspeed = 1 +/obj/item/crowbar/ashwalker + name = "bone crowbar" + desc = "A rudimentary crowbar made of bones." + icon = 'icons/obj/mining.dmi' + icon_state = "crowbar_bone" + toolspeed = 0.75 + /obj/item/crowbar/bronze name = "bronze plated crowbar" desc = "A bronze plated crowbar." diff --git a/code/game/objects/items/tools/screwdriver.dm b/code/game/objects/items/tools/screwdriver.dm index 920afb8d14..9f393a7fcb 100644 --- a/code/game/objects/items/tools/screwdriver.dm +++ b/code/game/objects/items/tools/screwdriver.dm @@ -93,6 +93,14 @@ /obj/item/screwdriver/brass/family toolspeed = 1 +/obj/item/screwdriver/ashwalker + name = "bone screwdriver" + desc = "A rudimentary screwdriver made of carved bones." + icon = 'icons/obj/mining.dmi' + icon_state = "screwdriver_bone" + toolspeed = 0.75 + random_color = FALSE + /obj/item/screwdriver/bronze name = "bronze screwdriver" desc = "A screwdriver plated with bronze." diff --git a/code/game/objects/items/tools/weldingtool.dm b/code/game/objects/items/tools/weldingtool.dm index 98889485b6..13c3c100b5 100644 --- a/code/game/objects/items/tools/weldingtool.dm +++ b/code/game/objects/items/tools/weldingtool.dm @@ -385,6 +385,16 @@ icon_state = "clockwelder" item_state = "brasswelder" +/obj/item/weldingtool/experimental/ashwalker + name = "necropolis welding torch" + desc = "A mysterious welding tool with its origins in the depths of the necropolis. A mysterious force keeps replenishing its fuel." + resistance_flags = FIRE_PROOF | ACID_PROOF + refueling_interval = 5 + toolspeed = 0.75 + max_fuel = 20 + icon = 'icons/obj/mining.dmi' + icon_state = "ashwelder" + /obj/item/weldingtool/abductor name = "alien welding tool" desc = "An alien welding tool. Whatever fuel it uses, it never runs out." diff --git a/code/game/objects/items/tools/wirecutters.dm b/code/game/objects/items/tools/wirecutters.dm index 51bb046290..cbca26e63c 100644 --- a/code/game/objects/items/tools/wirecutters.dm +++ b/code/game/objects/items/tools/wirecutters.dm @@ -90,6 +90,14 @@ /obj/item/wirecutters/brass/family toolspeed = 1 +/obj/item/wirecutters/ashwalker + name = "bone wirecutters" + desc = "Rudimentary wirecutters made out of sharpened bones and sinew." + icon = 'icons/obj/mining.dmi' + icon_state = "cutters_bone" + toolspeed = 0.75 + random_color = FALSE + /obj/item/wirecutters/bronze name = "bronze plated wirecutters" desc = "A pair of wirecutters plated with bronze." diff --git a/code/game/objects/items/tools/wrench.dm b/code/game/objects/items/tools/wrench.dm index 6199e7fc76..9a0db3b92b 100644 --- a/code/game/objects/items/tools/wrench.dm +++ b/code/game/objects/items/tools/wrench.dm @@ -44,6 +44,13 @@ /obj/item/wrench/brass/family toolspeed = 1 +/obj/item/wrench/ashwalker + name = "bone wrench" + desc = "A shoddy wrench made out of bent bones and sinew." + icon = 'icons/obj/mining.dmi' + icon_state = "wrench_bone" + toolspeed = 0.75 + /obj/item/wrench/bronze name = "bronze plated wrench" desc = "A bronze plated wrench." diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 4e57a2f717..fe1fb03426 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -540,18 +540,19 @@ if (!(. & EMP_PROTECT_CONTENTS)) for(var/obj/O in src) O.emp_act(severity) - if(secure && !broken && !(. & EMP_PROTECT_SELF)) - if(prob(50 / severity)) - locked = !locked - update_icon() - if(prob(20 / severity) && !opened) - if(!locked) - open() - else - req_access = list() - req_access += pick(get_all_accesses()) - if(!QDELETED(lockerelectronics)) - lockerelectronics.accesses = req_access + if(!secure || broken) + return + if(prob(severity/2)) + locked = !locked + update_icon() + if(prob(severity/5) && !opened) + if(!locked) + open() + else + req_access = list() + req_access += pick(get_all_accesses()) + if(!QDELETED(lockerelectronics)) + lockerelectronics.accesses = req_access /obj/structure/closet/contents_explosion(severity, target) for(var/atom/A in contents) diff --git a/code/game/objects/structures/ghost_role_spawners.dm b/code/game/objects/structures/ghost_role_spawners.dm index f5746d6ae7..40af75002f 100644 --- a/code/game/objects/structures/ghost_role_spawners.dm +++ b/code/game/objects/structures/ghost_role_spawners.dm @@ -66,12 +66,6 @@ //Ash walkers on birth understand how to make bone bows, bone arrows and ashen arrows - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_arrow) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bone_bow) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/ashen_arrow) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/quiver) - new_spawn.mind.teach_crafting_recipe(/datum/crafting_recipe/bow_tablet) - if(ishuman(new_spawn)) var/mob/living/carbon/human/H = new_spawn H.underwear = "Nude" @@ -634,9 +628,9 @@ log_game("[key_name(user)] has successfully pried open [src] and disabled a space pirate spawner.") W.play_tool_sound(src) playsound(src.loc, 'modular_citadel/sound/voice/scream_skeleton.ogg', 50, 1, 4, 1.2) - if(rank == "Captain") + if(rank == "Captain") new /obj/effect/mob_spawn/human/pirate/corpse/captain(get_turf(src)) - else + else new /obj/effect/mob_spawn/human/pirate/corpse(get_turf(src)) qdel(src) else diff --git a/code/game/world.dm b/code/game/world.dm index 14a85bb619..44e9fe9e14 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -2,8 +2,6 @@ GLOBAL_VAR(restart_counter) -GLOBAL_VAR_INIT(tgs_initialized, FALSE) - GLOBAL_VAR(topic_status_lastcache) GLOBAL_LIST(topic_status_cache) @@ -76,7 +74,6 @@ GLOBAL_LIST(topic_status_cache) /world/proc/InitTgs() TgsNew(new /datum/tgs_event_handler/impl, TGS_SECURITY_TRUSTED) GLOB.revdata.load_tgs_info() - GLOB.tgs_initialized = TRUE /world/proc/HandleTestRun() //trigger things to run the whole process diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index d4afc3dbb4..d56e78c9fb 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -435,18 +435,7 @@ for(var/datum/dynamic_ruleset/roundstart/rule in GLOB.dynamic_forced_roundstart_ruleset) dat += {"-> [rule.name] <-
"} dat += "(Clear Rulesets)
" - dat += "(Force Storyteller)
" - if (GLOB.dynamic_forced_storyteller) - var/datum/dynamic_storyteller/S = GLOB.dynamic_forced_storyteller - dat += "-> [initial(S.name)] <-
" dat += "(Dynamic mode options)
" - else if (SSticker.IsRoundInProgress()) - dat += "(Force Next Latejoin Ruleset)
" - if (SSticker && SSticker.mode && istype(SSticker.mode,/datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - if (mode.forced_latejoin_rule) - dat += {"-> [mode.forced_latejoin_rule.name] <-
"} - dat += "(Execute Midround Ruleset!)
" dat += "
" if(SSticker.IsRoundInProgress()) dat += "(Game Mode Panel)
" @@ -711,20 +700,6 @@ log_admin("[key_name(usr)] set the pre-game delay to [DisplayTimeText(newtime)].") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delay Game Start") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! -/datum/admins/proc/toggledynamicvote() - set category = "Server" - set desc="Switches between secret/extended and dynamic voting" - set name="Toggle Dynamic Vote" - var/prev_dynamic_voting = CONFIG_GET(flag/dynamic_voting) - CONFIG_SET(flag/dynamic_voting,!prev_dynamic_voting) - if (!prev_dynamic_voting) - to_chat(world, "Vote is now between dynamic storytellers.") - else - to_chat(world, "Vote is now between extended and secret.") - log_admin("[key_name(usr)] [prev_dynamic_voting ? "disabled" : "enabled"] dynamic voting.") - message_admins("[key_name_admin(usr)] toggled dynamic voting.") - SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Dynamic Voting", "[prev_dynamic_voting ? "Disabled" : "Enabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! - /datum/admins/proc/unprison(mob/M in GLOB.mob_list) set category = "Admin" set name = "Unprison" @@ -941,27 +916,12 @@ No stacking: - Option is [GLOB.dynamic_no_stacking ? "ON" : "OFF"].
Unless the threat goes above [GLOB.dynamic_stacking_limit], only one "round-ender" ruleset will be drafted.

- Classic secret mode: - Option is [GLOB.dynamic_classic_secret ? "ON" : "OFF"]. -
Only one roundstart ruleset will be drafted. Only traitors and minor roles will latespawn.
-
-
Forced threat level: Current value : [GLOB.dynamic_forced_threat_level].
The value threat is set to if it is higher than -1.

- High population limit: Current value : [GLOB.dynamic_high_pop_limit]. -
The threshold at which "high population override" will be in effect.

Stacking threeshold: Current value : [GLOB.dynamic_stacking_limit].
The threshold at which "round-ender" rulesets will stack. A value higher than 100 ensure this never happens.
-

Advanced parameters

- Curve centre: -> [GLOB.dynamic_curve_centre] <-
- Curve width: -> [GLOB.dynamic_curve_width] <-
- Latejoin injection delay:
- Minimum: -> [GLOB.dynamic_latejoin_delay_min / 60 / 10] <- Minutes
- Maximum: -> [GLOB.dynamic_latejoin_delay_max / 60 / 10] <- Minutes
- Midround injection delay:
- Minimum: -> [GLOB.dynamic_midround_delay_min / 60 / 10] <- Minutes
- Maximum: -> [GLOB.dynamic_midround_delay_max / 60 / 10] <- Minutes
"} user << browse(dat, "window=dyn_mode_options;size=900x650") diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 437c74991c..8d3e1c79ec 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -135,7 +135,6 @@ GLOBAL_PROTECT(admin_verbs_server) /client/proc/everyone_random, /datum/admins/proc/toggleAI, /datum/admins/proc/toggleMulticam, //CIT - /datum/admins/proc/toggledynamicvote, //CIT /client/proc/cmd_admin_delete, /*delete an instance/object/mob/etc*/ /client/proc/cmd_debug_del_all, /client/proc/toggle_random_events, @@ -190,9 +189,11 @@ GLOBAL_PROTECT(admin_verbs_debug) // /client/proc/validate_cards, // /client/proc/test_cardpack_distribution, // /client/proc/print_cards, - // #ifdef TESTING + #ifdef TESTING // /client/proc/check_missing_sprites, - // #endif + // /client/proc/export_dynamic_json, + /client/proc/run_dynamic_simulations, + #endif /datum/admins/proc/create_or_modify_area, /datum/admins/proc/fixcorruption, #ifdef EXTOOLS_REFERENCE_TRACKING diff --git a/code/modules/admin/antag_panel.dm b/code/modules/admin/antag_panel.dm index 2d1aa63a91..180735d746 100644 --- a/code/modules/admin/antag_panel.dm +++ b/code/modules/admin/antag_panel.dm @@ -77,7 +77,7 @@ GLOBAL_VAR(antag_prototypes) return common_commands /datum/mind/proc/get_special_statuses() - var/list/result = list() + var/list/result = LAZYCOPY(special_statuses) if(!current) result += "No body!" if(current && HAS_TRAIT(current, TRAIT_MINDSHIELD)) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 4224b406b3..a8a7e51611 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1375,15 +1375,13 @@ else if(href_list["f_dynamic_roundstart"]) if(!check_rights(R_ADMIN)) return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode.", null, null, null, null) + if(SSticker?.mode) + return tgui_alert(usr, "The game has already started.") var/roundstart_rules = list() for (var/rule in subtypesof(/datum/dynamic_ruleset/roundstart)) var/datum/dynamic_ruleset/roundstart/newrule = new rule() roundstart_rules[newrule.name] = newrule - var/added_rule = input(usr,"What ruleset do you want to force? This will bypass threat level and population restrictions.", "Rigging Roundstart", null) as null|anything in roundstart_rules + var/added_rule = input(usr,"What ruleset do you want to force? This will bypass threat level and population restrictions.", "Rigging Roundstart", null) as null|anything in sortList(roundstart_rules) if (added_rule) GLOB.dynamic_forced_roundstart_ruleset += roundstart_rules[added_rule] log_admin("[key_name(usr)] set [added_rule] to be a forced roundstart ruleset.") @@ -1407,201 +1405,18 @@ log_admin("[key_name(usr)] removed [rule] from the forced roundstart rulesets.") message_admins("[key_name(usr)] removed [rule] from the forced roundstart rulesets.", 1) - else if(href_list["f_dynamic_storyteller"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode.", null, null, null, null) - var/list/choices = list() - for(var/T in config.storyteller_cache) - var/datum/dynamic_storyteller/S = T - choices[initial(S.name)] = T - var/choice = choices[input("Select storyteller:", "Storyteller", "Classic") as null|anything in choices] - if(choice) - GLOB.dynamic_forced_storyteller = choice - log_admin("[key_name(usr)] forced the storyteller to [GLOB.dynamic_forced_storyteller].") - message_admins("[key_name(usr)] forced the storyteller to [GLOB.dynamic_forced_storyteller].") - Game() - - else if(href_list["f_dynamic_storyteller_clear"]) - if(!check_rights(R_ADMIN)) - return - GLOB.dynamic_forced_storyteller = null - Game() - log_admin("[key_name(usr)] cleared the forced storyteller. The mode will pick one as normal.") - message_admins("[key_name(usr)] cleared the forced storyteller. The mode will pick one as normal.", 1) - - else if(href_list["f_dynamic_latejoin"]) - if(!check_rights(R_ADMIN)) - return - if(!SSticker || !SSticker.mode) - return alert(usr, "The game must start first.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - var/latejoin_rules = list() - for (var/rule in subtypesof(/datum/dynamic_ruleset/latejoin)) - var/datum/dynamic_ruleset/latejoin/newrule = new rule() - latejoin_rules[newrule.name] = newrule - var/added_rule = input(usr,"What ruleset do you want to force upon the next latejoiner? This will bypass threat level and population restrictions.", "Rigging Latejoin", null) as null|anything in latejoin_rules - if (added_rule) - var/datum/game_mode/dynamic/mode = SSticker.mode - mode.forced_latejoin_rule = latejoin_rules[added_rule] - log_admin("[key_name(usr)] set [added_rule] to proc on the next latejoin.") - message_admins("[key_name(usr)] set [added_rule] to proc on the next latejoin.", 1) - Game() - - else if(href_list["f_dynamic_latejoin_clear"]) - if(!check_rights(R_ADMIN)) - return - if (SSticker && SSticker.mode && istype(SSticker.mode,/datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - mode.forced_latejoin_rule = null - Game() - log_admin("[key_name(usr)] cleared the forced latejoin ruleset.") - message_admins("[key_name(usr)] cleared the forced latejoin ruleset.", 1) - - else if(href_list["f_dynamic_midround"]) - if(!check_rights(R_ADMIN)) - return - if(!SSticker || !SSticker.mode) - return alert(usr, "The game must start first.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - var/midround_rules = list() - for (var/rule in subtypesof(/datum/dynamic_ruleset/midround)) - var/datum/dynamic_ruleset/midround/newrule = new rule() - midround_rules[newrule.name] = rule - var/added_rule = input(usr,"What ruleset do you want to force right now? This will bypass threat level and population restrictions.", "Execute Ruleset", null) as null|anything in midround_rules - if (added_rule) - var/datum/game_mode/dynamic/mode = SSticker.mode - log_admin("[key_name(usr)] executed the [added_rule] ruleset.") - message_admins("[key_name(usr)] executed the [added_rule] ruleset.", 1) - mode.picking_specific_rule(midround_rules[added_rule],1) - else if (href_list["f_dynamic_options"]) if(!check_rights(R_ADMIN)) return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) + if(SSticker?.mode) + return tgui_alert(usr, "The game has already started.") dynamic_mode_options(usr) - - else if(href_list["f_dynamic_roundstart_centre"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - - var/new_centre = input(usr,"Change the centre of the dynamic mode threat curve. A negative value will give a more peaceful round ; a positive value, a round with higher threat. Any number is allowed. This is adjusted by dynamic voting.", "Change curve centre", null) as num - - log_admin("[key_name(usr)] changed the distribution curve center to [new_centre].") - message_admins("[key_name(usr)] changed the distribution curve center to [new_centre]", 1) - GLOB.dynamic_curve_centre = new_centre - dynamic_mode_options(usr) - - else if(href_list["f_dynamic_roundstart_width"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - - var/new_width = input(usr,"Change the width of the dynamic mode threat curve. A higher value will favour extreme rounds ; a lower value, a round closer to the average. Any Number between 0.5 and 4 are allowed.", "Change curve width", null) as num - if (new_width < 0.5 || new_width > 4) - return alert(usr, "Only values between 0.5 and +2.5 are allowed.", null, null, null, null) - - log_admin("[key_name(usr)] changed the distribution curve width to [new_width].") - message_admins("[key_name(usr)] changed the distribution curve width to [new_width]", 1) - GLOB.dynamic_curve_width = new_width - dynamic_mode_options(usr) - - else if(href_list["f_dynamic_roundstart_latejoin_min"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - var/new_min = input(usr,"Change the minimum delay of latejoin injection in minutes.", "Change latejoin injection delay minimum", null) as num - if(new_min <= 0) - return alert(usr, "The minimum can't be zero or lower.", null, null, null, null) - if((new_min MINUTES) > GLOB.dynamic_latejoin_delay_max) - return alert(usr, "The minimum must be lower than the maximum.", null, null, null, null) - - log_admin("[key_name(usr)] changed the latejoin injection minimum delay to [new_min] minutes.") - message_admins("[key_name(usr)] changed the latejoin injection minimum delay to [new_min] minutes", 1) - GLOB.dynamic_latejoin_delay_min = (new_min MINUTES) - dynamic_mode_options(usr) - - else if(href_list["f_dynamic_roundstart_latejoin_max"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - var/new_max = input(usr,"Change the maximum delay of latejoin injection in minutes.", "Change latejoin injection delay maximum", null) as num - if(new_max <= 0) - return alert(usr, "The maximum can't be zero or lower.", null, null, null, null) - if((new_max MINUTES) < GLOB.dynamic_latejoin_delay_min) - return alert(usr, "The maximum must be higher than the minimum.", null, null, null, null) - - log_admin("[key_name(usr)] changed the latejoin injection maximum delay to [new_max] minutes.") - message_admins("[key_name(usr)] changed the latejoin injection maximum delay to [new_max] minutes", 1) - GLOB.dynamic_latejoin_delay_max = (new_max MINUTES) - dynamic_mode_options(usr) - - else if(href_list["f_dynamic_roundstart_midround_min"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - var/new_min = input(usr,"Change the minimum delay of midround injection in minutes.", "Change midround injection delay minimum", null) as num - if(new_min <= 0) - return alert(usr, "The minimum can't be zero or lower.", null, null, null, null) - if((new_min MINUTES) > GLOB.dynamic_midround_delay_max) - return alert(usr, "The minimum must be lower than the maximum.", null, null, null, null) - - log_admin("[key_name(usr)] changed the midround injection minimum delay to [new_min] minutes.") - message_admins("[key_name(usr)] changed the midround injection minimum delay to [new_min] minutes", 1) - GLOB.dynamic_midround_delay_min = (new_min MINUTES) - dynamic_mode_options(usr) - - else if(href_list["f_dynamic_roundstart_midround_max"]) - if(!check_rights(R_ADMIN)) - return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - var/new_max = input(usr,"Change the maximum delay of midround injection in minutes.", "Change midround injection delay maximum", null) as num - if(new_max <= 0) - return alert(usr, "The maximum can't be zero or lower.", null, null, null, null) - if((new_max MINUTES) > GLOB.dynamic_midround_delay_max) - return alert(usr, "The maximum must be higher than the minimum.", null, null, null, null) - - log_admin("[key_name(usr)] changed the midround injection maximum delay to [new_max] minutes.") - message_admins("[key_name(usr)] changed the midround injection maximum delay to [new_max] minutes", 1) - GLOB.dynamic_midround_delay_max = (new_max MINUTES) - dynamic_mode_options(usr) - else if(href_list["f_dynamic_force_extended"]) if(!check_rights(R_ADMIN)) return - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - GLOB.dynamic_forced_extended = !GLOB.dynamic_forced_extended log_admin("[key_name(usr)] set 'forced_extended' to [GLOB.dynamic_forced_extended].") message_admins("[key_name(usr)] set 'forced_extended' to [GLOB.dynamic_forced_extended].") @@ -1611,70 +1426,29 @@ if(!check_rights(R_ADMIN)) return - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - GLOB.dynamic_no_stacking = !GLOB.dynamic_no_stacking log_admin("[key_name(usr)] set 'no_stacking' to [GLOB.dynamic_no_stacking].") message_admins("[key_name(usr)] set 'no_stacking' to [GLOB.dynamic_no_stacking].") dynamic_mode_options(usr) - - else if(href_list["f_dynamic_classic_secret"]) - if(!check_rights(R_ADMIN)) - return - - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - - GLOB.dynamic_classic_secret = !GLOB.dynamic_classic_secret - log_admin("[key_name(usr)] set 'classic_secret' to [GLOB.dynamic_classic_secret].") - message_admins("[key_name(usr)] set 'classic_secret' to [GLOB.dynamic_classic_secret].") - dynamic_mode_options(usr) - else if(href_list["f_dynamic_stacking_limit"]) if(!check_rights(R_ADMIN)) return - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - GLOB.dynamic_stacking_limit = input(usr,"Change the threat limit at which round-endings rulesets will start to stack.", "Change stacking limit", null) as num log_admin("[key_name(usr)] set 'stacking_limit' to [GLOB.dynamic_stacking_limit].") message_admins("[key_name(usr)] set 'stacking_limit' to [GLOB.dynamic_stacking_limit].") dynamic_mode_options(usr) - else if(href_list["f_dynamic_high_pop_limit"]) - if(!check_rights(R_ADMIN)) - return - - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) - - var/new_value = input(usr, "Enter the high-pop override threshold for dynamic mode.", "High pop override") as num - if (new_value < 0) - return alert(usr, "Only positive values allowed!", null, null, null, null) - GLOB.dynamic_high_pop_limit = new_value - - log_admin("[key_name(usr)] set 'high_pop_limit' to [GLOB.dynamic_high_pop_limit].") - message_admins("[key_name(usr)] set 'high_pop_limit' to [GLOB.dynamic_high_pop_limit].") - dynamic_mode_options(usr) - else if(href_list["f_dynamic_forced_threat"]) if(!check_rights(R_ADMIN)) return - if(SSticker && SSticker.mode) - return alert(usr, "The game has already started.", null, null, null, null) - - if(GLOB.master_mode != "dynamic") - return alert(usr, "The game mode has to be dynamic mode!", null, null, null, null) + if(SSticker?.mode) + return tgui_alert(usr, "The game has already started.") var/new_value = input(usr, "Enter the forced threat level for dynamic mode.", "Forced threat level") as num if (new_value > 100) - return alert(usr, "The value must be be under 100.", null, null, null, null) + return tgui_alert(usr, "The value must be be under 100.") GLOB.dynamic_forced_threat_level = new_value log_admin("[key_name(usr)] set 'forced_threat_level' to [GLOB.dynamic_forced_threat_level].") diff --git a/code/modules/admin/verbs/adminhelp.dm b/code/modules/admin/verbs/adminhelp.dm index 5c35450592..f721bcc5fc 100644 --- a/code/modules/admin/verbs/adminhelp.dm +++ b/code/modules/admin/verbs/adminhelp.dm @@ -161,13 +161,14 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) var/client/initiator //semi-misnomer, it's the person who ahelped/was bwoinked var/initiator_ckey var/initiator_key_name - var/heard_by_no_admins = FALSE var/list/_interactions //use AddInteraction() or, preferably, admin_ticket_log() var/obj/effect/statclick/ahelp/statclick var/static/ticket_counter = 0 + /// did we send "answered" to irc yet + var/answered = FALSE //call this on its own to create a ticket, don't manually assign current_ticket //msg is the title of the ticket: usually the ahelp text @@ -209,7 +210,9 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) log_admin_private("Ticket #[id]: [key_name(initiator)]: [name] - heard by [admin_number_present] non-AFK admins who have +BAN.") if(admin_number_present <= 0) to_chat(C, "No active admins are online, your adminhelp was sent to the admin irc.") - heard_by_no_admins = TRUE + else + // citadel edit: send anyways + send2adminchat(initiator_ckey, "Ticket #[id]: [name] - Heard by [admin_number_present] admins present with +BAN.") GLOB.ahelp_tickets.active_tickets += src @@ -220,8 +223,8 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) return ..() /datum/admin_help/proc/AddInteraction(formatted_message) - if(heard_by_no_admins && usr && usr.ckey != initiator_ckey) - heard_by_no_admins = FALSE + if(usr && (usr.ckey != initiator_ckey) && !answered) + answered = TRUE send2adminchat(initiator_ckey, "Ticket #[id]: Answered by [key_name(usr)]") _interactions += "[TIME_STAMP("hh:mm:ss", FALSE)]: [formatted_message]" @@ -728,3 +731,34 @@ GLOBAL_DATUM_INIT(ahelp_tickets, /datum/admin_help_tickets, new) return founds return msg + +/** + * Checks a given message to see if any of the words contain an active admin's ckey with an @ before it + * + * Returns nothing if no pings are found, otherwise returns an associative list with ckey -> client + * Also modifies msg to underline the pings, then stores them in the key [ADMINSAY_PING_UNDERLINE_NAME_INDEX] for returning + * + * Arguments: + * * msg - the message being scanned + */ +/proc/check_admin_pings(msg) + //explode the input msg into a list + var/list/msglist = splittext(msg, " ") + var/list/admins_to_ping = list() + + var/i = 0 + for(var/word in msglist) + i++ + if(!length(word)) + continue + if(word[1] != "@") + continue + var/ckey_check = lowertext(copytext(word, 2)) + var/client/client_check = GLOB.directory[ckey_check] + if(client_check?.holder) + msglist[i] = "[word]" + admins_to_ping[ckey_check] = client_check + + if(length(admins_to_ping)) + admins_to_ping[ADMINSAY_PING_UNDERLINE_NAME_INDEX] = jointext(msglist, " ") // without tuples, we must make do! + return admins_to_ping diff --git a/code/modules/admin/verbs/adminsay.dm b/code/modules/admin/verbs/adminsay.dm index 66653020d4..fdd1e8dcad 100644 --- a/code/modules/admin/verbs/adminsay.dm +++ b/code/modules/admin/verbs/adminsay.dm @@ -8,6 +8,19 @@ msg = copytext_char(sanitize(msg), 1, MAX_MESSAGE_LEN) if(!msg) return + + var/list/pinged_admin_clients = check_admin_pings(msg) + if(length(pinged_admin_clients) && pinged_admin_clients[ADMINSAY_PING_UNDERLINE_NAME_INDEX]) + msg = pinged_admin_clients[ADMINSAY_PING_UNDERLINE_NAME_INDEX] + pinged_admin_clients -= ADMINSAY_PING_UNDERLINE_NAME_INDEX + + for(var/iter_ckey in pinged_admin_clients) + var/client/iter_admin_client = pinged_admin_clients[iter_ckey] + if(!iter_admin_client?.holder) + continue + window_flash(iter_admin_client) + SEND_SOUND(iter_admin_client.mob, sound('sound/misc/bloop.ogg')) + msg = emoji_parse(msg) mob.log_talk(msg, LOG_ASAY) diff --git a/code/modules/antagonists/_common/antag_datum.dm b/code/modules/antagonists/_common/antag_datum.dm index 4082a48e71..f232142902 100644 --- a/code/modules/antagonists/_common/antag_datum.dm +++ b/code/modules/antagonists/_common/antag_datum.dm @@ -55,9 +55,15 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/proc/specialization(datum/mind/new_owner) return src + ///Called by the transfer_to() mind proc after the mind (mind.current and new_character.mind) has moved but before the player (key and client) is transfered. /datum/antagonist/proc/on_body_transfer(mob/living/old_body, mob/living/new_body) + SHOULD_CALL_PARENT(TRUE) remove_innate_effects(old_body) + if(old_body.stat != DEAD && !LAZYLEN(old_body.mind?.antag_datums)) + old_body.remove_from_current_living_antags() apply_innate_effects(new_body) + if(new_body.stat != DEAD) + new_body.add_to_current_living_antags() //This handles the application of antag huds/special abilities /datum/antagonist/proc/apply_innate_effects(mob/living/mob_override) @@ -94,8 +100,9 @@ GLOBAL_LIST_EMPTY(antagonists) /datum/antagonist/proc/create_team(datum/team/team) return -//Proc called when the datum is given to a mind. + ///Called by the add_antag_datum() mind proc after the instanced datum is added to the mind's antag_datums list. /datum/antagonist/proc/on_gain() + SHOULD_CALL_PARENT(TRUE) set waitfor = FALSE if(!(owner?.current)) return @@ -113,6 +120,8 @@ GLOBAL_LIST_EMPTY(antagonists) if(istype(M)) M.name = "[name] Training" owner.current.AddComponent(/datum/component/activity) + if(owner.current.stat != DEAD) + owner.current.add_to_current_living_antags() SEND_SIGNAL(owner.current, COMSIG_MOB_ANTAG_ON_GAIN, src) /datum/antagonist/proc/is_banned(mob/M) @@ -131,13 +140,17 @@ GLOBAL_LIST_EMPTY(antagonists) owner.current.ghostize(0) C.transfer_ckey(owner.current, FALSE) +///Called by the remove_antag_datum() and remove_all_antag_datums() mind procs for the antag datum to handle its own removal and deletion. /datum/antagonist/proc/on_removal() + SHOULD_CALL_PARENT(TRUE) remove_innate_effects() clear_antag_moodies() if(owner) LAZYREMOVE(owner.antag_datums, src) for(var/A in skill_modifiers) owner.remove_skill_modifier(GET_SKILL_MOD_ID(A, type)) + if(!LAZYLEN(owner.antag_datums)) + owner.current.remove_from_current_living_antags() if(!silent && owner.current) farewell() var/datum/team/team = get_team() diff --git a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm index 023be4b3e7..15ac8a6cb6 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/flesh_lore.dm @@ -226,16 +226,16 @@ user.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/shed_human_form) if(!ishuman(user)) return - var/mob/living/carbon/human/H = user - H.physiology.brute_mod *= 0.5 - H.physiology.burn_mod *= 0.5 - var/datum/antagonist/heretic/heretic = user.mind.has_antag_datum(/datum/antagonist/heretic) - var/datum/eldritch_knowledge/flesh_grasp/ghoul1 = heretic.get_knowledge(/datum/eldritch_knowledge/flesh_grasp) - ghoul1.ghoul_amt *= 3 - var/datum/eldritch_knowledge/flesh_ghoul/ghoul2 = heretic.get_knowledge(/datum/eldritch_knowledge/flesh_ghoul) - ghoul2.max_amt *= 3 + var/mob/living/carbon/human/lord_of_arms = user + lord_of_arms.physiology.brute_mod *= 0.5 + lord_of_arms.physiology.burn_mod *= 0.5 + lord_of_arms.client?.give_award(/datum/award/achievement/misc/flesh_ascension, lord_of_arms) + var/datum/antagonist/heretic/heretic_datum = user.mind.has_antag_datum(/datum/antagonist/heretic) + var/datum/eldritch_knowledge/flesh_grasp/grasp_ghoul = heretic_datum.get_knowledge(/datum/eldritch_knowledge/flesh_grasp) + grasp_ghoul.ghoul_amt *= 3 + var/datum/eldritch_knowledge/flesh_ghoul/better_ghoul = heretic_datum.get_knowledge(/datum/eldritch_knowledge/flesh_ghoul) + better_ghoul.max_amt *= 3 - return ..() /datum/eldritch_knowledge/flesh_blade_upgrade_2 name = "Remembrance" diff --git a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm index 509c35261e..733b2725cb 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/rust_lore.dm @@ -181,13 +181,13 @@ var/mob/living/carbon/human/H = user H.physiology.brute_mod *= 0.5 H.physiology.burn_mod *= 0.5 + H.client?.give_award(/datum/award/achievement/misc/rust_ascension, H) priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# Fear the decay, for the Rustbringer, [user.real_name] has ascended! None shall escape the corrosion! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') new /datum/rust_spread(loc) var/datum/antagonist/heretic/ascension = H.mind.has_antag_datum(/datum/antagonist/heretic) ascension.ascended = TRUE return ..() - /datum/eldritch_knowledge/final/rust_final/on_life(mob/user) . = ..() if(!finished) diff --git a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm index 97b5af0f4d..dcbc01b046 100644 --- a/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm +++ b/code/modules/antagonists/eldritch_cult/knowledge/void_lore.dm @@ -183,14 +183,14 @@ var/datum/weather/void_storm/storm /datum/eldritch_knowledge/final/void_final/on_finished_recipe(mob/living/user, list/atoms, loc) - var/mob/living/carbon/human/H = user - user.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/eldritch) - H.physiology.brute_mod *= 0.5 - H.physiology.burn_mod *= 0.5 - ADD_TRAIT(H, TRAIT_RESISTLOWPRESSURE, MAGIC_TRAIT) - priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# The nobleman of void [H.real_name] has arrived, step along the Waltz that ends worlds! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') - - sound_loop = new(list(user),TRUE,TRUE) + var/mob/living/carbon/human/waltzing = user + waltzing.mind.AddSpell(new /obj/effect/proc_holder/spell/aoe_turf/repulse/eldritch) + waltzing.physiology.brute_mod *= 0.5 + waltzing.physiology.burn_mod *= 0.5 + ADD_TRAIT(waltzing, TRAIT_RESISTLOWPRESSURE, MAGIC_TRAIT) + waltzing.client?.give_award(/datum/award/achievement/misc/void_ascension, waltzing) + priority_announce("$^@&#*$^@(#&$(@&#^$&#^@# The nobleman of void [waltzing.real_name] has arrived, step along the Waltz that ends worlds! $^@&#*$^@(#&$(@&#^$&#^@#","#$^@&#*$^@(#&$(@&#^$&#^@#", 'sound/announcer/classic/spanomalies.ogg') + sound_loop = new(user, TRUE, TRUE) return ..() /datum/eldritch_knowledge/final/void_final/on_death() diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm index 39dc4a1ed2..78e4d38b3c 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_challenge.dm @@ -94,15 +94,6 @@ GLOBAL_VAR_INIT(war_declared, FALSE) if(board.moved) to_chat(user, "The shuttle has already been moved! You have forfeit the right to declare war.") return FALSE - if(istype(SSticker.mode, /datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - if(!(mode.storyteller.flags & WAROPS_ALWAYS_ALLOWED)) - if(mode.threat_level < CONFIG_GET(number/dynamic_warops_requirement)) - to_chat(user, "Due to the dynamic space in which the station resides, you are too deep into Nanotrasen territory to reasonably go loud.") - return FALSE - else if(mode.threat < CONFIG_GET(number/dynamic_warops_cost)) - to_chat(user, "Due to recent threats on the station, Nanotrasen is looking too closely for a war declaration to be wise.") - return FALSE return TRUE /obj/item/nuclear_challenge/clownops diff --git a/code/modules/antagonists/revolution/revolution.dm b/code/modules/antagonists/revolution/revolution.dm index c23523cc6b..925527f35e 100644 --- a/code/modules/antagonists/revolution/revolution.dm +++ b/code/modules/antagonists/revolution/revolution.dm @@ -1,3 +1,5 @@ +#define DECONVERTER_STATION_WIN "gamemode_station_win" +#define DECONVERTER_REVS_WIN "gamemode_revs_win" //How often to check for promotion possibility #define HEAD_UPDATE_PERIOD 300 @@ -10,6 +12,11 @@ threat = 2 var/hud_type = "rev" var/datum/team/revolution/rev_team + ///when this antagonist is being de-antagged, this is why + var/deconversion_reason + + /// What message should the player receive when they are being demoted, and the revolution has won? + var/victory_message = "The revolution has overpowered the command staff! Viva la revolution! Execute any head of staff and security should you find them alive." /datum/antagonist/rev/can_be_owned(datum/mind/new_owner) . = ..() @@ -201,7 +208,22 @@ new_rev.silent = FALSE to_chat(old_owner, "Revolution has been disappointed of your leader traits! You are a regular revolutionary now!") +/// Checks if the revolution succeeded, and lets them know. +/datum/antagonist/rev/proc/announce_victorious() + . = rev_team.check_rev_victory() + + if (!.) + return + + to_chat(owner, "[victory_message]") + var/policy = get_policy(ROLE_REV_SUCCESSFUL) + if (policy) + to_chat(owner, policy) + /datum/antagonist/rev/farewell() + if (announce_victorious()) + return + if(ishuman(owner.current)) owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just remembered [owner.current.p_their()] real allegiance!", null, null, null, owner.current) to_chat(owner, "You are no longer a brainwashed revolutionary! Your memory is hazy from the time you were a rebel... You don't seem to be able to recall the names of your comrades, not even your leaders...") @@ -210,15 +232,17 @@ to_chat(owner, "The frame's firmware detects and deletes your neural reprogramming! You remember nothing of your time spent reprogrammed, you can't even remember the names or identities of anyone involved...") /datum/antagonist/rev/head/farewell() - if((ishuman(owner.current) || ismonkey(owner.current))) + if (announce_victorious() || deconversion_reason == DECONVERTER_STATION_WIN) + return + if((ishuman(owner.current))) if(owner.current.stat != DEAD) - owner.current.visible_message("[owner.current] looks like [owner.current.p_theyve()] just remembered [owner.current.p_their()] real allegiance!", null, null, null, owner.current) + owner.current.visible_message(span_deconversion_message("[owner.current] looks like [owner.current.p_theyve()] just remembered [owner.current.p_their()] real allegiance!"), null, null, null, owner.current) to_chat(owner, "You have given up your cause of overthrowing the command staff. You are no longer a Head Revolutionary.") else to_chat(owner, "The sweet release of death. You are no longer a Head Revolutionary.") else if(issilicon(owner.current)) - owner.current.visible_message("The frame beeps contentedly, suppressing the disloyal personality traits from the MMI before initalizing it.", null, null, null, owner.current) - to_chat(owner, "The frame's firmware detects and suppresses your unwanted personality traits! You feel more content with the leadership around these parts.") + owner.current.visible_message(span_deconversion_message("The frame beeps contentedly, suppressing the disloyal personality traits from the MMI before initalizing it."), null, null, null, owner.current) + to_chat(owner, span_userdanger("The frame's firmware detects and suppresses your unwanted personality traits! You feel more content with the leadership around these parts.")) //blunt trauma deconversions call this through species.dm spec_attacked_by() /datum/antagonist/rev/proc/remove_revolutionary(borged, deconverter) @@ -226,13 +250,14 @@ if(borged) message_admins("[ADMIN_LOOKUPFLW(owner.current)] has been borged while being a [name]") owner.special_role = null - if(iscarbon(owner.current)) + if(iscarbon(owner.current) && deconverter != DECONVERTER_REVS_WIN) var/mob/living/carbon/C = owner.current C.Unconscious(100) + deconversion_reason = deconverter owner.remove_antag_datum(type) /datum/antagonist/rev/head/remove_revolutionary(borged,deconverter) - if(borged || deconverter == "gamemode") + if(borged || deconverter == DECONVERTER_STATION_WIN || deconverter == DECONVERTER_REVS_WIN) . = ..() /datum/antagonist/rev/head/equip_rev() @@ -262,6 +287,21 @@ S.Insert(H, special = FALSE, drop_if_replaced = FALSE) to_chat(H, "Your eyes have been implanted with a cybernetic security HUD which will help you keep track of who is mindshield-implanted, and therefore unable to be recruited.") +/// "Enemy of the Revolutionary", given to heads and security when the revolution wins +/datum/antagonist/revolution_enemy + name = "Enemy of the Revolution" + show_in_antagpanel = FALSE + +/datum/antagonist/revolution_enemy/on_gain() + owner.special_role = "revolution enemy" + + var/datum/objective/survive/survive = new /datum/objective/survive + survive.owner = owner + survive.explanation_text = "The station has been overrun by revolutionaries, stay alive until the end." + objectives += survive + + return ..() + /datum/team/revolution name = "Revolution" var/max_headrevs = 3 @@ -314,6 +354,100 @@ ex_headrevs = get_antag_minds(/datum/antagonist/rev/head, TRUE) ex_revs = get_antag_minds(/datum/antagonist/rev, TRUE) +/// Checks if revs have won +/datum/team/revolution/proc/check_rev_victory() + for(var/datum/objective/mutiny/objective in objectives) + if(!(objective.check_completion())) + return FALSE + return TRUE + +/// Checks if heads have won +/datum/team/revolution/proc/check_heads_victory() + for(var/datum/mind/rev_mind in head_revolutionaries()) + var/turf/rev_turf = get_turf(rev_mind.current) + if(!considered_afk(rev_mind) && considered_alive(rev_mind) && is_station_level(rev_turf.z)) + if(ishuman(rev_mind.current)) + return FALSE + return TRUE + +/// Updates the state of the world depending on if revs won or loss. +/// Returns who won, at which case this method should no longer be called. +/// If revs_win_injection_amount is passed, then that amount of threat will be added if the revs win. +/datum/team/revolution/proc/process_victory(revs_win_injection_amount) + if (check_rev_victory()) + . = REVOLUTION_VICTORY + else if (check_heads_victory()) + . = STATION_VICTORY + else + return + + SSshuttle.clearHostileEnvironment(src) + save_members() + + // Remove everyone as a revolutionary + for (var/_rev_mind in members) + var/datum/mind/rev_mind = _rev_mind + if (rev_mind.has_antag_datum(/datum/antagonist/rev)) + var/datum/antagonist/rev/rev_antag = rev_mind.has_antag_datum(/datum/antagonist/rev) + rev_antag.remove_revolutionary(FALSE, . == STATION_VICTORY ? DECONVERTER_STATION_WIN : DECONVERTER_REVS_WIN) + LAZYADD(rev_mind.special_statuses, "Former [(rev_mind in ex_headrevs) ? "head revolutionary" : "revolutionary"]") + + if (. == STATION_VICTORY) + // If the revolution was quelled, make rev heads unable to be revived through pods + for (var/_rev_head_mind in ex_revs) + var/datum/mind/rev_head_mind = _rev_head_mind + var/mob/living/carbon/rev_head_body = rev_head_mind.current + if(istype(rev_head_body) && rev_head_body.stat == DEAD) + rev_head_body.makeUncloneable() + + priority_announce("It appears the mutiny has been quelled. Please return yourself and your incapacitated colleagues to work. \ + We have remotely blacklisted the head revolutionaries in your medical records to prevent accidental revival.", null, 'sound/announcer/classic/attention.ogg', null, "Central Command Loyalty Monitoring Division") + else + for (var/_player in GLOB.player_list) + var/mob/player = _player + var/datum/mind/mind = player.mind + + if (isnull(mind)) + continue + + if (!(mind.assigned_role in GLOB.command_positions + GLOB.security_positions)) + continue + + var/mob/living/carbon/target_body = mind.current + + mind.add_antag_datum(/datum/antagonist/revolution_enemy) + + if (!istype(target_body)) + continue + + if (target_body.stat == DEAD) + target_body.makeUncloneable() + else + mind.announce_objectives() + + for (var/job_name in GLOB.command_positions + GLOB.security_positions) + var/datum/job/job = SSjob.GetJob(job_name) + job.allow_bureaucratic_error = FALSE + job.total_positions = 0 + + if (revs_win_injection_amount) + var/datum/game_mode/dynamic/dynamic = SSticker.mode + dynamic.create_threat(revs_win_injection_amount) + dynamic.threat_log += "[worldtime2text()]: Revolution victory. Added [revs_win_injection_amount] threat." + + priority_announce("A recent assessment of your station has marked your station as a severe risk area for high ranking Nanotrasen officials. \ + For the safety of our staff, we have blacklisted your station for new employment of security and command. \ + [pick(world.file2list("strings/anti_union_propaganda.txt"))]", null, 'sound/announcer/classic/attention.ogg', null, "Central Command Loyalty Monitoring Division") + +/// Mutates the ticker to report that the revs have won +/datum/team/revolution/proc/round_result(finished) + if (finished == REVOLUTION_VICTORY) + SSticker.mode_result = "win - heads killed" + SSticker.news_report = REVS_WIN + else if (finished == STATION_VICTORY) + SSticker.mode_result = "loss - rev heads killed" + SSticker.news_report = REVS_LOSE + /datum/team/revolution/roundend_report() if(!members.len && !ex_headrevs.len) return @@ -322,18 +456,6 @@ result += "
" - var/num_revs = 0 - var/num_survivors = 0 - for(var/mob/living/carbon/survivor in GLOB.alive_mob_list) - if(survivor.ckey) - num_survivors++ - if(survivor.mind) - if(is_revolutionary(survivor)) - num_revs++ - if(num_survivors) - result += "Command's Approval Rating: [100 - round((num_revs/num_survivors)*100, 0.1)]%
" - - var/list/targets = list() var/list/datum/mind/headrevs var/list/datum/mind/revs @@ -346,10 +468,22 @@ revs = ex_revs else revs = get_antag_minds(/datum/antagonist/rev, TRUE) + + var/num_revs = 0 + var/num_survivors = 0 + for(var/mob/living/carbon/survivor in GLOB.alive_mob_list) + if(survivor.ckey) + num_survivors += 1 + if ((survivor.mind in revs) || (survivor.mind in headrevs)) + num_revs += 1 + + if(num_survivors) + result += "Command's Approval Rating: [100 - round((num_revs/num_survivors)*100, 0.1)]%
" + if(headrevs.len) var/list/headrev_part = list() headrev_part += "The head revolutionaries were:" - headrev_part += printplayerlist(headrevs,TRUE) + headrev_part += printplayerlist(headrevs, !check_rev_victory()) result += headrev_part.Join("
") if(revs.len) @@ -408,3 +542,6 @@ /datum/team/revolution/is_gamemode_hero() return SSticker.mode.name == "revolution" + +#undef DECONVERTER_STATION_WIN +#undef DECONVERTER_REVS_WIN diff --git a/code/modules/antagonists/slaughter/slaughterevent.dm b/code/modules/antagonists/slaughter/slaughterevent.dm index 333bca5d7c..3fd8f8b5e7 100644 --- a/code/modules/antagonists/slaughter/slaughterevent.dm +++ b/code/modules/antagonists/slaughter/slaughterevent.dm @@ -3,7 +3,6 @@ typepath = /datum/round_event/ghost_role/slaughter weight = 1 //Very rare max_occurrences = 1 - gamemode_blacklist = list("dynamic") earliest_start = 1 HOURS min_players = 20 diff --git a/code/modules/antagonists/swarmer/swarmer_event.dm b/code/modules/antagonists/swarmer/swarmer_event.dm index 43ac07cba9..3df7e6c0e9 100644 --- a/code/modules/antagonists/swarmer/swarmer_event.dm +++ b/code/modules/antagonists/swarmer/swarmer_event.dm @@ -5,6 +5,7 @@ max_occurrences = 1 //Only once okay fam earliest_start = 30 MINUTES min_players = 35 + dynamic_should_hijack = TRUE /datum/round_event/spawn_swarmer diff --git a/code/modules/antagonists/traitor/classes/human.dm b/code/modules/antagonists/traitor/classes/human.dm index f868d0e7e1..49881630f0 100644 --- a/code/modules/antagonists/traitor/classes/human.dm +++ b/code/modules/antagonists/traitor/classes/human.dm @@ -28,17 +28,11 @@ /datum/traitor_class/human/forge_single_objective(datum/antagonist/traitor/T) .=1 var/assassin_prob = 50 - var/is_dynamic = FALSE var/datum/game_mode/dynamic/mode if(istype(SSticker.mode,/datum/game_mode/dynamic)) mode = SSticker.mode - is_dynamic = TRUE assassin_prob = max(0,mode.threat_level-20) if(prob(assassin_prob)) - if(is_dynamic) - var/threat_spent = CONFIG_GET(number/dynamic_assassinate_cost) - mode.spend_threat(threat_spent) - mode.log_threat("[T.owner.name] added [threat_spent] on an assassination target.") var/list/active_ais = active_ais() if(active_ais.len && prob(100/GLOB.joined_player_list.len)) var/datum/objective/destroy/destroy_objective = new diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index f0bc6e5bfc..b6fc397233 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -46,17 +46,13 @@ traitor_kind.on_process(src) /proc/get_random_traitor_kind(var/list/blacklist = list()) - var/chaos_weight = 0 - if(istype(SSticker.mode,/datum/game_mode/dynamic)) - var/datum/game_mode/dynamic/mode = SSticker.mode - chaos_weight = (mode.threat - 50)/50 var/list/weights = list() for(var/C in GLOB.traitor_classes) if(!(C in blacklist)) var/datum/traitor_class/class = GLOB.traitor_classes[C] if(class.min_players > length(GLOB.joined_player_list)) continue - var/weight = LOGISTIC_FUNCTION(1.5*class.weight,chaos_weight,class.chaos,0) + var/weight = LOGISTIC_FUNCTION(1.5*class.weight,0,class.chaos,0) weights[C] = weight * 1000 var/choice = pickweight(weights, 0) if(!choice) diff --git a/code/modules/antagonists/wizard/equipment/soulstone.dm b/code/modules/antagonists/wizard/equipment/soulstone.dm index d4d70cd053..fe9770e64a 100644 --- a/code/modules/antagonists/wizard/equipment/soulstone.dm +++ b/code/modules/antagonists/wizard/equipment/soulstone.dm @@ -50,6 +50,14 @@ A.death() return ..() +/obj/item/soulstone/proc/hot_potato(mob/living/user) + to_chat(user, span_userdanger("Holy magics residing in \the [src] burn your hand!")) + var/obj/item/bodypart/affecting = user.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm") + affecting.receive_damage( 0, 10 ) // 10 burn damage + user.emote("scream") + user.update_damage_overlays() + user.dropItemToGround(src) + //////////////////////////////Capturing//////////////////////////////////////////////////////// /obj/item/soulstone/attack(mob/living/carbon/human/M, mob/living/user) @@ -94,6 +102,35 @@ to_chat(A, "You have been released from your prison, but you are still bound to the cult's will. Help them succeed in their goals at all costs.") was_used() +/obj/item/soulstone/pre_attack(atom/A, mob/living/user, params) + var/mob/living/simple_animal/hostile/construct/shade/occupant = (locate() in src) + var/obj/item/storage/toolbox/mechanical/target_toolbox = A + if(!occupant || !istype(target_toolbox) || target_toolbox.has_soul) + return ..() + + if(iscultist(user)) + hot_potato(user) + return + if(!iscultist(user, TRUE) && !iswizard(user) && !usability) + user.Unconscious(10 SECONDS) + to_chat(user, span_userdanger("Your body is wracked with debilitating pain!")) + return + + user.visible_message("[user] holds [src] above [user.p_their()] head and forces it into [target_toolbox] with a flash of light!", \ + span_notice("You hold [src] above your head briefly, then force it into [target_toolbox], transferring the [occupant]'s soul!"), ignored_mobs = occupant) + to_chat(occupant, span_userdanger("[user] holds you up briefly, then forces you into [target_toolbox]!")) + to_chat(occupant, span_deadsay("Your eternal soul has been sacrificed to restore the soul of a toolbox. Them's the breaks!")) + + occupant.client?.give_award(/datum/award/achievement/misc/toolbox_soul, occupant) + occupant.deathmessage = "shrieks out in unholy pain as [occupant.p_their()] soul is absorbed into [target_toolbox]!" + release_shades(user, TRUE) + occupant.death() + + target_toolbox.name = "soulful toolbox" + target_toolbox.icon_state = "toolbox_blue_old" + target_toolbox.has_soul = TRUE + target_toolbox.has_latches = FALSE + ///////////////////////////Transferring to constructs///////////////////////////////////////////////////// /obj/structure/constructshell name = "empty shell" diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm index bfcaff7d56..313f108b0f 100644 --- a/code/modules/arousal/genitals.dm +++ b/code/modules/arousal/genitals.dm @@ -145,6 +145,9 @@ else to_chat(src,"You can't make that genital [picked_organ.aroused_state ? "unaroused" : "aroused"]!") picked_organ.update_appearance() + if(ishuman(src)) + var/mob/living/carbon/human/human = src + human.update_genitals() return diff --git a/code/modules/asset_cache/asset_list.dm b/code/modules/asset_cache/asset_list.dm index 221febbe14..94c7630bd9 100644 --- a/code/modules/asset_cache/asset_list.dm +++ b/code/modules/asset_cache/asset_list.dm @@ -11,6 +11,10 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset var/_abstract = /datum/asset + var/cached_url_mappings + + /// Whether or not this asset should be loaded in the "early assets" SS + var/early = FALSE /datum/asset/New() GLOB.asset_datums[type] = src @@ -19,6 +23,13 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/proc/get_url_mappings() return list() +/// Returns a cached tgui message of URL mappings +/datum/asset/proc/get_serialized_url_mappings() + if (isnull(cached_url_mappings)) + cached_url_mappings = TGUI_CREATE_MESSAGE("asset/mappings", get_url_mappings()) + + return cached_url_mappings + /datum/asset/proc/register() return @@ -169,6 +180,8 @@ GLOBAL_LIST_EMPTY(asset_datums) I = icon(I, icon_state=icon_state, dir=dir, frame=frame, moving=moving) if (!I || !length(icon_states(I))) // that direction or state doesn't exist return + //any sprite modifications we want to do (aka, coloring a greyscaled asset) + I = ModifyInserted(I) var/size_id = "[I.Width()]x[I.Height()]" var/size = sizes[size_id] @@ -185,6 +198,15 @@ GLOBAL_LIST_EMPTY(asset_datums) sizes[size_id] = size = list(1, I, null) sprites[sprite_name] = list(size_id, 0) +/** + * A simple proc handing the Icon for you to modify before it gets turned into an asset. + * + * Arguments: + * * I: icon being turned into an asset + */ +/datum/asset/spritesheet/proc/ModifyInserted(icon/pre_asset) + return pre_asset + /datum/asset/spritesheet/proc/InsertAll(prefix, icon/I, list/directions) if (length(prefix)) prefix = "[prefix]-" @@ -217,6 +239,19 @@ GLOBAL_LIST_EMPTY(asset_datums) var/size_id = sprite[SPR_SIZE] return {"[name][size_id] [sprite_name]"} +/** + * Returns the size class (ex design32x32) for a given sprite's icon + * + * Arguments: + * * sprite_name - The sprite to get the size of + */ +/datum/asset/spritesheet/proc/icon_size_id(sprite_name) + var/sprite = sprites[sprite_name] + if (!sprite) + return null + var/size_id = sprite[SPR_SIZE] + return "[name][size_id]" + #undef SPR_SIZE #undef SPR_IDX #undef SPRSZ_COUNT @@ -224,6 +259,24 @@ GLOBAL_LIST_EMPTY(asset_datums) #undef SPRSZ_STRIPPED +/datum/asset/changelog_item + _abstract = /datum/asset/changelog_item + var/item_filename + +/datum/asset/changelog_item/New(date) + item_filename = sanitize_filename("[date].yml") + SSassets.transport.register_asset(item_filename, file("html/changelogs/archive/" + item_filename)) + +/datum/asset/changelog_item/send(client) + if (!item_filename) + return + . = SSassets.transport.send_assets(client, item_filename) + +/datum/asset/changelog_item/get_url_mappings() + if (!item_filename) + return + . = list("[item_filename]" = SSassets.transport.get_asset_url(item_filename)) + /datum/asset/spritesheet/simple _abstract = /datum/asset/spritesheet/simple var/list/assets @@ -315,3 +368,28 @@ GLOBAL_LIST_EMPTY(asset_datums) /datum/asset/simple/namespaced/proc/get_htmlloader(filename) return url2htmlloader(SSassets.transport.get_asset_url(filename, assets[filename])) +/// A subtype to generate a JSON file from a list +/datum/asset/json + _abstract = /datum/asset/json + /// The filename, will be suffixed with ".json" + var/name + +/datum/asset/json/send(client) + return SSassets.transport.send_assets(client, "data/[name].json") + +/datum/asset/json/get_url_mappings() + return list( + "[name].json" = SSassets.transport.get_asset_url("data/[name].json"), + ) + +/datum/asset/json/register() + var/filename = "data/[name].json" + fdel(filename) + text2file(json_encode(generate()), filename) + SSassets.transport.register_asset(filename, fcopy_rsc(filename)) + fdel(filename) + +/// Returns the data that will be JSON encoded +/datum/asset/json/proc/generate() + SHOULD_CALL_PARENT(FALSE) + CRASH("generate() not implemented for [type]!") diff --git a/code/modules/atmospherics/auxgm/breathing_classes.dm b/code/modules/atmospherics/auxgm/breathing_classes.dm index 4abfab58ee..cfc82adbff 100644 --- a/code/modules/atmospherics/auxgm/breathing_classes.dm +++ b/code/modules/atmospherics/auxgm/breathing_classes.dm @@ -14,6 +14,12 @@ var/high_alert_category = "too_much_oxy" var/high_alert_datum = /atom/movable/screen/alert/too_much_oxy +/datum/breathing_class/proc/get_effective_pp(datum/gas_mixture/breath) + var/mol = 0 + for(var/gas in gases) + mol += breath.get_moles(gas) * gases[gas] + return (mol/breath.total_moles()) * breath.return_pressure() + /datum/breathing_class/oxygen gases = list( GAS_O2 = 1, diff --git a/code/modules/atmospherics/machinery/portable/canister.dm b/code/modules/atmospherics/machinery/portable/canister.dm index 15c6475033..868c5dafa3 100644 --- a/code/modules/atmospherics/machinery/portable/canister.dm +++ b/code/modules/atmospherics/machinery/portable/canister.dm @@ -235,7 +235,7 @@ . += "can-open" if(connected_port) . += "can-connector" - var/pressure = air_contents.return_pressure() + var/pressure = air_contents?.return_pressure() if(pressure >= 40 * ONE_ATMOSPHERE) . += "can-o3" else if(pressure >= 10 * ONE_ATMOSPHERE) @@ -295,6 +295,7 @@ density = FALSE playsound(src.loc, 'sound/effects/spray.ogg', 10, TRUE, -3) investigate_log("was destroyed.", INVESTIGATE_ATMOS) + update_icon_state() if(holding) holding.forceMove(T) diff --git a/code/modules/cargo/exports/weapons.dm b/code/modules/cargo/exports/weapons.dm index c973ceed26..42cd1dccea 100644 --- a/code/modules/cargo/exports/weapons.dm +++ b/code/modules/cargo/exports/weapons.dm @@ -211,11 +211,6 @@ unit_name = "arrow" export_types = list(/obj/item/ammo_casing/caseless/arrow, /obj/item/ammo_casing/caseless/arrow/bone, /obj/item/ammo_casing/caseless/arrow/ash) -/datum/export/weapon/bow_teaching - cost = 500 - unit_name = "bowyery tablet" - export_types = list(/obj/item/book/granter/crafting_recipe/bone_bow) - /datum/export/weapon/quiver cost = 100 unit_name = "quiver" diff --git a/code/modules/cargo/expressconsole.dm b/code/modules/cargo/expressconsole.dm index 1c9c21e0d7..c065c387c5 100644 --- a/code/modules/cargo/expressconsole.dm +++ b/code/modules/cargo/expressconsole.dm @@ -128,6 +128,9 @@ return data /obj/machinery/computer/cargo/express/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return switch(action) if("LZCargo") usingBeacon = FALSE diff --git a/code/modules/cargo/packs/armory.dm b/code/modules/cargo/packs/armory.dm index de3e657386..3bd4515698 100644 --- a/code/modules/cargo/packs/armory.dm +++ b/code/modules/cargo/packs/armory.dm @@ -183,6 +183,29 @@ var/item = pick(contains) new item(C) +/datum/supply_pack/security/armory/frontier + name = "Old West Surplus Crate" + desc = "Do you have a fauna problem? Do you want to live out your frontier-taming fantasies on a state-of-the-art plasma research and mining station? Do you want to pretend you lived in the Old West of Earthen fame? Well, this box - and its many hats - may be for you." + cost = 7500 + contraband = TRUE + contains = list(/obj/effect/spawner/bundle/crate/cowboyhat, + /obj/effect/spawner/bundle/crate/cowboyboots, + /obj/item/clothing/under/pants/chaps, + /obj/item/reagent_containers/food/snacks/butterbiscuit, + /obj/item/reagent_containers/food/snacks/butterbiscuit, + /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit, + /obj/item/reagent_containers/food/snacks/plumphelmetbiscuit, + /obj/item/ammo_box/c38/pouch, + /obj/item/ammo_box/c38/pouch, + /obj/item/ammo_box/c38/pouch, + /obj/effect/spawner/bundle/crate/levergun + ) + +/datum/supply_pack/security/armory/frontier/fill(obj/structure/closet/crate/C) + for(var/i in 1 to 5) + var/item = pick(contains) + new item(C) + /datum/supply_pack/security/armory/swat name = "SWAT Crate" desc = "Contains two fullbody sets of tough, fireproof, pressurized suits designed in a joint effort by IS-ERI and Nanotrasen. Each set contains a suit, helmet, mask, combat belt, and combat gloves. Requires Armory access to open." diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 99f24107c7..950b2b5b25 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -187,3 +187,6 @@ var/list/block_parry_hinted = list() /// moused over objects, currently capped at 7. this is awful, and should be replaced with a component to track it using signals for parrying at some point. var/list/moused_over_objects = list() + + /// AFK tracking + var/last_activity = 0 diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 571adb406b..04b643e532 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -83,6 +83,8 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") return + last_activity = world.time + //Logs all hrefs log_href("[src] (usr:[usr]\[[COORD(usr)]\]) : [hsrc ? "[hsrc] " : ""][href]") @@ -222,6 +224,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( /////////// /client/New(TopicData) + last_activity = world.time world.SetConfig("APP/admin", ckey, "role=admin") var/tdata = TopicData //save this for later use TopicData = null //Prevent calls to client.Topic from connect @@ -578,9 +581,10 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( //If we aren't an admin, and the flag is set if(CONFIG_GET(flag/panic_bunker) && !holder && !GLOB.deadmins[ckey] && !(ckey in GLOB.bunker_passthrough)) var/living_recs = CONFIG_GET(number/panic_bunker_living) + var/vpn_living_recs = CONFIG_GET(number/panic_bunker_living_vpn) //Relies on pref existing, but this proc is only called after that occurs, so we're fine. var/minutes = get_exp_living(pure_numeric = TRUE) - if(minutes <= living_recs) // && !CONFIG_GET(flag/panic_bunker_interview) + if((minutes <= living_recs) || (IsVPN() && (minutes < vpn_living_recs))) var/reject_message = "Failed Login: [key] - Account attempting to connect during panic bunker, but they do not have the required living time [minutes]/[living_recs]" log_access(reject_message) message_admins("[reject_message]") @@ -850,6 +854,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( /client/Click(atom/object, atom/location, control, params, ignore_spam = FALSE, extra_info) if(last_click > world.time - world.tick_lag) return + last_activity = world.time last_click = world.time var/ab = FALSE var/list/L = params2list(params) @@ -922,6 +927,7 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( //checks if a client is afk //3000 frames = 5 minutes /client/proc/is_afk(duration = CONFIG_GET(number/inactivity_period)) + var/inactivity = world.time - last_activity if(inactivity > duration) return inactivity return FALSE diff --git a/code/modules/client/client_vpn_detect.dm b/code/modules/client/client_vpn_detect.dm new file mode 100644 index 0000000000..bd35a65ef2 --- /dev/null +++ b/code/modules/client/client_vpn_detect.dm @@ -0,0 +1,3 @@ +/client/proc/IsVPN() + var/datum/ipintel/res = get_ip_intel(address) + return res.intel >= CONFIG_GET(number/ipintel_rating_bad) diff --git a/code/modules/client/verbs/etips.dm b/code/modules/client/verbs/etips.dm index 27434cddc4..d4ebc899ae 100644 --- a/code/modules/client/verbs/etips.dm +++ b/code/modules/client/verbs/etips.dm @@ -15,6 +15,6 @@ var/indelay = stripped_input(usr, "Enter the tooltip delay in milliseconds (default: 500)", "Enter tooltip delay", "", 10) indelay = text2num(indelay) if(usr)//is this what you mean? - prefs.tip_delay = indelay + prefs.tip_delay = max(indelay, 0.01) prefs.save_preferences() to_chat(usr, "Tooltip delay set to [indelay] milliseconds.") diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index eda36ea12f..2b12d23d2b 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -27,9 +27,12 @@ . = ..() if(!ishuman(user)) return - if(slot == ITEM_SLOT_GLOVES) - var/mob/living/carbon/human/H = user - tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance) + switch(slot) // I didn't like how it looked + if(SLOT_GLOVES) + var/mob/living/carbon/human/H = user + tackler = H.AddComponent(/datum/component/tackler, stamina_cost=tackle_stam_cost, base_knockdown = base_knockdown, range = tackle_range, speed = tackle_speed, skill_mod = skill_mod, min_distance = min_distance) + else + qdel(tackler) // Only wearing it! /obj/item/clothing/gloves/tackler/dropped(mob/user) . = ..() @@ -67,6 +70,20 @@ resistance_flags = NONE strip_mod = 1.2 // because apparently black gloves had this +/obj/item/clothing/gloves/tackler/combat/goliath + name = "goliath gloves" + desc = "Rudimentary tackling gloves. The goliath hide makes it great for grappling with targets, while also being fireproof." + icon = 'icons/obj/mining.dmi' + icon_state = "goligloves" + item_state = "goligloves" + + tackle_stam_cost = 25 + base_knockdown = 1 SECONDS + tackle_range = 5 + tackle_speed = 2 + min_distance = 2 + skill_mod = 1 + /obj/item/clothing/gloves/tackler/combat/insulated name = "guerrilla gloves" desc = "Superior quality combative gloves, good for performing tackle takedowns as well as absorbing electrical shocks." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 35cb2fa1e5..10dbb9e2bf 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -427,25 +427,30 @@ desc = "Comfy and supposedly flammable." icon_state = "flannel" item_state = "flannel" - -/obj/item/clothing/suit/jacket/flannel/red +/obj/item/clothing/suit/toggle/jacket/flannel/red name = "red flannel jacket" desc = "Comfy and supposedly flammable." icon_state = "flannel_red" item_state = "flannel_red" - -/obj/item/clothing/suit/jacket/flannel/aqua + togglename = "buttons" +/obj/item/clothing/suit/toggle/jacket/flannel/aqua name = "aqua flannel jacket" desc = "Comfy and supposedly flammable." icon_state = "flannel_aqua" item_state = "flannel_aqua" - -/obj/item/clothing/suit/jacket/flannel/brown + togglename = "buttons" +/obj/item/clothing/suit/toggle/jacket/flannel/brown name = "brown flannel jacket" desc = "Comfy and supposedly flammable." icon_state = "flannel_brown" item_state = "flannel_brown" - + togglename = "buttons" +/obj/item/clothing/suit/toggle/jacket/whitehoodie + name = "soft hoodie" + desc = "A soft hoodie with a TailorCo brand on the tag." + icon_state = "white_hoodie" + item_state = "white_hoodie" + togglename = "zipper" /obj/item/clothing/suit/jacket/purplehoodie name = "purple hoodie" desc = "A soft purple hoodie with a TailorCo brand on the tag." @@ -482,6 +487,24 @@ icon_state = "gothic_shirtcross" item_state = "gothic_shirtcross" +/obj/item/clothing/suit/jacket/gentlecoat + name = "grey jacket" + desc = "A grey coat with a TailorCo brand on the tag. Looks expensive." + icon_state = "gentlecoat" + item_state = "gentlecoat" + +/obj/item/clothing/suit/toggle/jacket/greenjacket + name = "green outdoorsmans jacket" + desc = "A green jacket with a TailorCo brand on the tag. Looks expensive." + icon_state = "coatar" + item_state = "coatar" + togglename = "zipper" +/obj/item/clothing/suit/toggle/jacket/fancytrench + name = "grey trenchcoat" + desc = "A custom-tailored trenchcoat with a TailorCo brand on the tag." + icon_state = "fancytrench" + item_state = "fancytrench" + togglename = "buttons" /obj/item/clothing/suit/jacket/leather name = "leather jacket" desc = "Pompadour not included." diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index 10f8c60386..95ebbf71d2 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -1,3 +1,5 @@ +#define RANDOM_EVENT_ADMIN_INTERVENTION_TIME 10 + //this datum is used by the events controller to dictate how it selects events /datum/round_event_control var/name //The human-readable name of the event @@ -27,6 +29,9 @@ var/triggering //admin cancellation + /// Whether or not dynamic should hijack this event + var/dynamic_should_hijack = FALSE + /datum/round_event_control/New() if(config && !wizardevent) // Magic is unaffected by configs earliest_start = CEILING(earliest_start * CONFIG_GET(number/events_min_time_mul), 1) @@ -53,6 +58,11 @@ return FALSE if(holidayID && (!SSevents.holidays || !SSevents.holidays[holidayID])) return FALSE + + var/datum/game_mode/dynamic/dynamic = SSticker.mode + if (istype(dynamic) && dynamic_should_hijack && dynamic.random_event_hijacked != HIJACKED_NOTHING) + return FALSE + return TRUE /datum/round_event_control/wizard/canSpawnEvent(var/players_amt, var/gamemode) @@ -62,14 +72,19 @@ return can_be_midround_wizard && ..() return ..() + + /datum/round_event_control/proc/preRunEvent() if(!ispath(typepath, /datum/round_event)) return EVENT_CANT_RUN + if (SEND_GLOBAL_SIGNAL(COMSIG_GLOB_PRE_RANDOM_EVENT, src) & CANCEL_PRE_RANDOM_EVENT) + return EVENT_INTERRUPTED + triggering = TRUE if (alert_observers) - message_admins("Random Event triggering in 30 seconds: [name] (CANCEL)") - sleep(300) + message_admins("Random Event triggering in [RANDOM_EVENT_ADMIN_INTERVENTION_TIME] seconds: [name] (CANCEL)") + sleep(RANDOM_EVENT_ADMIN_INTERVENTION_TIME SECONDS) var/gamemode = SSticker.mode.config_tag var/players_amt = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) if(!canSpawnEvent(players_amt, gamemode)) diff --git a/code/modules/events/abductor.dm b/code/modules/events/abductor.dm index 41aab20a11..c009647005 100755 --- a/code/modules/events/abductor.dm +++ b/code/modules/events/abductor.dm @@ -4,7 +4,7 @@ weight = 10 max_occurrences = 1 min_players = 30 - gamemode_blacklist = list("nuclear","wizard","revolution","dynamic") + dynamic_should_hijack = TRUE /datum/round_event/ghost_role/abductor minimum_required = 2 diff --git a/code/modules/events/alien_infestation.dm b/code/modules/events/alien_infestation.dm index 993577cb30..456bdd558e 100644 --- a/code/modules/events/alien_infestation.dm +++ b/code/modules/events/alien_infestation.dm @@ -2,9 +2,9 @@ name = "Alien Infestation" typepath = /datum/round_event/ghost_role/alien_infestation weight = 5 - gamemode_blacklist = list("dynamic") min_players = 25 max_occurrences = 1 + dynamic_should_hijack = TRUE /datum/round_event/ghost_role/alien_infestation announceWhen = 400 diff --git a/code/modules/events/blob.dm b/code/modules/events/blob.dm index 67cd88efdf..937fb6a062 100644 --- a/code/modules/events/blob.dm +++ b/code/modules/events/blob.dm @@ -6,8 +6,7 @@ earliest_start = 40 MINUTES min_players = 35 - - gamemode_blacklist = list("blob","dynamic") //Just in case a blob survives that long + dynamic_should_hijack = TRUE /datum/round_event/ghost_role/blob announceWhen = -1 diff --git a/code/modules/events/fugitive_spawning.dm b/code/modules/events/fugitive_spawning.dm index 7b4628f135..a09f0f584e 100644 --- a/code/modules/events/fugitive_spawning.dm +++ b/code/modules/events/fugitive_spawning.dm @@ -4,7 +4,6 @@ max_occurrences = 1 min_players = 20 earliest_start = 30 MINUTES //deadchat sink, lets not even consider it early on. - gamemode_blacklist = list("nuclear") /datum/round_event/ghost_role/fugitives minimum_required = 1 diff --git a/code/modules/events/nightmare.dm b/code/modules/events/nightmare.dm index 97a10c930a..62f9c88d49 100644 --- a/code/modules/events/nightmare.dm +++ b/code/modules/events/nightmare.dm @@ -3,7 +3,7 @@ typepath = /datum/round_event/ghost_role/nightmare max_occurrences = 1 min_players = 20 - gamemode_blacklist = list("dynamic") + dynamic_should_hijack = TRUE /datum/round_event/ghost_role/nightmare minimum_required = 1 diff --git a/code/modules/events/pirates.dm b/code/modules/events/pirates.dm index d284146ea3..f9ad5d6322 100644 --- a/code/modules/events/pirates.dm +++ b/code/modules/events/pirates.dm @@ -5,7 +5,7 @@ max_occurrences = 1 min_players = 10 earliest_start = 30 MINUTES - gamemode_blacklist = list("nuclear") + dynamic_should_hijack = TRUE #define PIRATES_ROGUES "Rogues" // #define PIRATES_SILVERSCALES "Silverscales" @@ -17,19 +17,18 @@ return ..() -/datum/round_event/pirates - startWhen = 60 //2 minutes to answer - var/datum/comm_message/threat_msg +/datum/round_event/pirates/start() + send_pirate_threat() + +/proc/send_pirate_threat() + var/pirate_type = PIRATES_ROGUES //pick(PIRATES_ROGUES, PIRATES_SILVERSCALES, PIRATES_DUTCHMAN) + var/datum/comm_message/threat_msg = new var/payoff = 0 var/payoff_min = 1000 - var/paid_off = FALSE - var/pirate_type var/ship_template var/ship_name = "Space Privateers Association" - var/shuttle_spawned = FALSE - -/datum/round_event/pirates/setup() - pirate_type = PIRATES_ROGUES //pick(PIRATES_ROGUES, PIRATES_SILVERSCALES, PIRATES_DUTCHMAN) + var/initial_send_time = world.time + var/response_max_time = 2 MINUTES switch(pirate_type) if(PIRATES_ROGUES) ship_name = pick(strings(PIRATE_NAMES_FILE, "rogue_names")) @@ -38,11 +37,7 @@ // if(PIRATES_DUTCHMAN) // ship_name = "Flying Dutchman" -/datum/round_event/pirates/announce(fake) priority_announce("Incoming subspace communication. Secure channel opened at all communication consoles.", "Incoming Message", "commandreport") - if(fake) - return - threat_msg = new var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) if(D) payoff = max(payoff_min, FLOOR(D.account_balance * 0.80, 1000)) @@ -62,35 +57,27 @@ // threat_msg.title = "Business proposition" // threat_msg.content = "Ahoy! This be the [ship_name]. Cough up [payoff] credits or you'll walk the plank." // threat_msg.possible_answers = list("We'll pay.","We will not be extorted.") - threat_msg.answer_callback = CALLBACK(src,.proc/answered) + threat_msg.answer_callback = CALLBACK(GLOBAL_PROC, .proc/pirates_answered, threat_msg, payoff, ship_name, initial_send_time, response_max_time, ship_template) + addtimer(CALLBACK(GLOBAL_PROC, .proc/spawn_pirates, threat_msg, ship_template, FALSE), response_max_time) SScommunications.send_message(threat_msg,unique = TRUE) -/datum/round_event/pirates/proc/answered() - if(threat_msg?.answered == 1) +/proc/pirates_answered(datum/comm_message/threat_msg, payoff, ship_name, initial_send_time, response_max_time, ship_template) + if(world.time > initial_send_time + response_max_time) + priority_announce("Too late to beg for mercy!",sender_override = ship_name) + return + if(threat_msg && threat_msg.answered == 1) var/datum/bank_account/D = SSeconomy.get_dep_account(ACCOUNT_CAR) if(D) if(D.adjust_money(-payoff)) priority_announce("Thanks for the credits, landlubbers.",sender_override = ship_name) - paid_off = TRUE return else priority_announce("Trying to cheat us? You'll regret this!",sender_override = ship_name) - else if(threat_msg?.answered == 2) - priority_announce("You won't pay? Fine then, we'll take those credits by force!",sender_override = ship_name) - if(!shuttle_spawned) - spawn_shuttle() - else - priority_announce("Too late to beg for mercy!",sender_override = ship_name) + spawn_pirates(threat_msg, ship_template, TRUE) -/datum/round_event/pirates/start() - if(threat_msg && !threat_msg.answered) - threat_msg.possible_answers = list("Too late") - threat_msg.answered = 1 - if(!paid_off && !shuttle_spawned) - spawn_shuttle() - -/datum/round_event/pirates/proc/spawn_shuttle() - shuttle_spawned = TRUE +/proc/spawn_pirates(datum/comm_message/threat_msg, ship_template, skip_answer_check) + if(!skip_answer_check && threat_msg?.answered == 1) + return var/list/candidates = pollGhostCandidates("Do you wish to be considered for pirate crew?", ROLE_TRAITOR) shuffle_inplace(candidates) @@ -109,12 +96,12 @@ for(var/turf/A in ship.get_affected_turfs(T)) for(var/obj/effect/mob_spawn/human/pirate/spawner in A) if(candidates.len > 0) - var/mob/M = candidates[1] - spawner.create(M.ckey) - candidates -= M - announce_to_ghosts(M) + var/mob/our_candidate = candidates[1] + spawner.create(our_candidate.ckey) + candidates -= our_candidate + notify_ghosts("The pirate ship has an object of interest: [our_candidate]!", source=our_candidate, action=NOTIFY_ORBIT, header="Something's Interesting!") else - announce_to_ghosts(spawner) + notify_ghosts("The pirate ship has an object of interest: [spawner]!", source=spawner, action=NOTIFY_ORBIT, header="Something's Interesting!") priority_announce("Unidentified armed ship detected near the station.") diff --git a/code/modules/events/space_dragon.dm b/code/modules/events/space_dragon.dm index 7b242f1dfe..35687bb7ed 100644 --- a/code/modules/events/space_dragon.dm +++ b/code/modules/events/space_dragon.dm @@ -4,6 +4,7 @@ weight = 8 max_occurrences = 1 min_players = 20 + dynamic_should_hijack = TRUE /datum/round_event/ghost_role/space_dragon minimum_required = 1 diff --git a/code/modules/events/space_ninja.dm b/code/modules/events/space_ninja.dm index 0a24fecd44..15d94ab130 100644 --- a/code/modules/events/space_ninja.dm +++ b/code/modules/events/space_ninja.dm @@ -5,6 +5,7 @@ weight = 10 earliest_start = 20 MINUTES min_players = 15 + dynamic_should_hijack = TRUE /datum/round_event/ghost_role/space_ninja minimum_required = 1 diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index b032b84a77..798cd9a2f6 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -84,6 +84,12 @@ user.visible_message("[user] is scratching [user.p_their()] back as hard as [user.p_they()] can with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) +/obj/item/cultivator/bone + name = "bone cultivator" + desc = "A handle and a few bones tied together to resemble a hoe. Should work for removing weeds." + icon = 'icons/obj/mining.dmi' + icon_state = "cultivator_bone" + /obj/item/hatchet name = "hatchet" desc = "A very sharp axe blade upon a short fibremetal handle. It has a long history of chopping things, but now it is used for chopping wood." @@ -112,6 +118,12 @@ playsound(src, 'sound/weapons/bladeslice.ogg', 50, 1, -1) return (BRUTELOSS) +/obj/item/hatchet/bone + name = "bone hatchet" + desc = "A primitive hatchet made out of mostly bone, with some sinew to keep it together. It just might do for cutting logs into planks." + icon = 'icons/obj/mining.dmi' + icon_state = "hatchet_bone" + /obj/item/scythe icon_state = "scythe0" lefthand_file = 'icons/mob/inhands/weapons/polearms_lefthand.dmi' diff --git a/code/modules/instruments/instrument_data/hardcoded.dm b/code/modules/instruments/instrument_data/hardcoded.dm index 757fea08a8..5db7e8b3bb 100644 --- a/code/modules/instruments/instrument_data/hardcoded.dm +++ b/code/modules/instruments/instrument_data/hardcoded.dm @@ -7,11 +7,11 @@ instrument_flags = INSTRUMENT_LEGACY volume_multiplier = 1 //not as loud as synth'd -/datum/instrument/hardcoded/accordian - name = "Accordian" - id = "accordian" +/datum/instrument/hardcoded/accordion + name = "Accordion" + id = "accordion" legacy_instrument_ext = "mid" - legacy_instrument_path = "accordian" + legacy_instrument_path = "accordion" /datum/instrument/hardcoded/bikehorn name = "Bike Horn" diff --git a/code/modules/instruments/instrument_data/organ.dm b/code/modules/instruments/instrument_data/organ.dm index 25da740998..edf9de9485 100644 --- a/code/modules/instruments/instrument_data/organ.dm +++ b/code/modules/instruments/instrument_data/organ.dm @@ -19,8 +19,8 @@ "60"='sound/instruments/synthesis_samples/organ/crisis_hammond/c4.ogg', "72"='sound/instruments/synthesis_samples/organ/crisis_hammond/c5.ogg') -/datum/instrument/organ/crisis_accordian - name = "Crisis Accordian" +/datum/instrument/organ/crisis_accordion + name = "Crisis Accordion" id = "crack" real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_accordian/c2.ogg', "48"='sound/instruments/synthesis_samples/organ/crisis_accordian/c3.ogg', @@ -34,8 +34,8 @@ "60"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c4.ogg', "72"='sound/instruments/synthesis_samples/organ/crisis_harmonica/c5.ogg') -/datum/instrument/organ/crisis_tango_accordian - name = "Crisis Tango Accordian" +/datum/instrument/organ/crisis_tango_accordion + name = "Crisis Tango Accordion" id = "crtango" real_samples = list("36"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c2.ogg', "48"='sound/instruments/synthesis_samples/organ/crisis_tangaccordian/c3.ogg', diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 855e2ccbd7..1f5becace8 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -63,6 +63,9 @@ var/list/mind_traits // Traits added to the mind of the mob assigned this job var/list/blacklisted_quirks //list of quirk typepaths blacklisted. +/// Should this job be allowed to be picked for the bureaucratic error event? + var/allow_bureaucratic_error = TRUE + var/display_order = JOB_DISPLAY_ORDER_DEFAULT //If a job complies with dresscodes, loadout items will not be equipped instead of the job's outfit, instead placing the items into the player's backpack. diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm index d0eb690e94..38625cfd9c 100644 --- a/code/modules/jobs/job_types/ai.dm +++ b/code/modules/jobs/job_types/ai.dm @@ -14,6 +14,7 @@ exp_type = EXP_TYPE_CREW exp_type_department = EXP_TYPE_SILICON display_order = JOB_DISPLAY_ORDER_AI + allow_bureaucratic_error = FALSE var/do_special_check = TRUE threat = 5 considered_combat_role = TRUE diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm index 48c7afe304..ec65d75835 100644 --- a/code/modules/jobs/job_types/prisoner.dm +++ b/code/modules/jobs/job_types/prisoner.dm @@ -5,7 +5,7 @@ department_flag = CIVILIAN faction = "Station" total_positions = 0 - spawn_positions = 2 + spawn_positions = 4 supervisors = "the security team" outfit = /datum/outfit/job/prisoner diff --git a/code/modules/keybindings/bindings_client.dm b/code/modules/keybindings/bindings_client.dm index 3d12f89cfe..7c0c6216a5 100644 --- a/code/modules/keybindings/bindings_client.dm +++ b/code/modules/keybindings/bindings_client.dm @@ -6,6 +6,7 @@ set hidden = TRUE client_keysend_amount += 1 + last_activity = world.time var/cache = client_keysend_amount @@ -89,6 +90,7 @@ set hidden = TRUE keys_held -= _key + last_activity = world.time var/movement = movement_keys[_key] if(!(next_move_dir_add & movement)) next_move_dir_sub |= movement diff --git a/code/modules/language/language_holder.dm b/code/modules/language/language_holder.dm index 219d8dc184..2ad1bb762b 100644 --- a/code/modules/language/language_holder.dm +++ b/code/modules/language/language_holder.dm @@ -312,12 +312,14 @@ Key procs /datum/language/machine = list(LANGUAGE_ATOM), /datum/language/draconic = list(LANGUAGE_ATOM), /datum/language/slime = list(LANGUAGE_ATOM), - /datum/language/dwarf = list(LANGUAGE_ATOM)) + /datum/language/dwarf = list(LANGUAGE_ATOM), + /datum/language/neokanji = list(LANGUAGE_ATOM)) spoken_languages = list(/datum/language/common = list(LANGUAGE_ATOM), /datum/language/machine = list(LANGUAGE_ATOM), /datum/language/draconic = list(LANGUAGE_ATOM), /datum/language/slime = list(LANGUAGE_ATOM), - /datum/language/dwarf = list(LANGUAGE_ATOM)) + /datum/language/dwarf = list(LANGUAGE_ATOM), + /datum/language/neokanji = list(LANGUAGE_ATOM)) /datum/language_holder/venus understood_languages = list(/datum/language/common = list(LANGUAGE_ATOM), diff --git a/code/modules/language/neokanji.dm b/code/modules/language/neokanji.dm new file mode 100644 index 0000000000..bfd7face5b --- /dev/null +++ b/code/modules/language/neokanji.dm @@ -0,0 +1,25 @@ +/datum/language/neokanji + name = "Neo-Kanji" + desc = "A bastardized mixture of many old Earth asian dialects. Famously known as the official language of the spider clan." + speech_verb = "proclaims" + ask_verb = "queries" + exclaim_verb = "declares" + whisper_verb = "hushes" + key = "k" + space_chance = 40 + default_priority = 94 + flags = TONGUELESS_SPEECH + chooseable_roundstart = TRUE + syllables = list("ka", "ki", "ku", "ke", "ko", "ta", + "chi", "tsu", "te", "to", "sa", "shi", + "su", "se", "so", "na","ni","nu","ne", + "no","n","ha","hi","fu","he","ho","ma", + "mi","mu","me","mo","ya","yu","yo","ra", + "ri","ru","re","ro","wa","wo", "an", "ang", + "ao", "ba", "bai", "ban", "bang", "bao", + "bei", "beng", "chuai", "xing", "xong", "zhao", + "zhong", "xil", "ping", "dang", "guang", "guan", + "jing", "jiao", "kung", "fu", "lo", "wang", + "liu", "ling", "mang", "nong", "peng", "qiong", + "san","tiao", "wan","xiong", "men") + icon_state = "neokanji" diff --git a/code/modules/library/soapstone.dm b/code/modules/library/soapstone.dm index 0d312c485a..fd268a7774 100644 --- a/code/modules/library/soapstone.dm +++ b/code/modules/library/soapstone.dm @@ -232,6 +232,9 @@ return data /obj/structure/chisel_message/ui_act(action, params, datum/tgui/ui) + . = ..() + if(.) + return var/mob/user = usr var/is_admin = check_rights_for(user.client, R_ADMIN) var/is_creator = user.ckey == creator_key diff --git a/code/modules/mining/equipment/kinetic_crusher.dm b/code/modules/mining/equipment/kinetic_crusher.dm index ddec9232ce..45f1b1d94e 100644 --- a/code/modules/mining/equipment/kinetic_crusher.dm +++ b/code/modules/mining/equipment/kinetic_crusher.dm @@ -228,6 +228,13 @@ /obj/item/kinetic_crusher/glaive/update_icon_state() item_state = "crusher[wielded]-glaive" // this is not icon_state and not supported by 2hcomponent +/obj/item/kinetic_crusher/glaive/bone + name = "necropolis bone glaive" + desc = "Tribals trying to immitate technology have spent a long time to somehow assemble bits and pieces to work together just like the real thing. \ + Although it does take a lot of effort and luck to create, it was a success." + icon_state = "crusher-bone" + item_state = "crusher0-bone" + //destablizing force /obj/item/projectile/destabilizer name = "destabilizing force" diff --git a/code/modules/mining/equipment/mining_tools.dm b/code/modules/mining/equipment/mining_tools.dm index 31ee37c3b0..bb0ac0f957 100644 --- a/code/modules/mining/equipment/mining_tools.dm +++ b/code/modules/mining/equipment/mining_tools.dm @@ -179,6 +179,12 @@ custom_materials = list(/datum/material/iron=50) w_class = WEIGHT_CLASS_SMALL +/obj/item/shovel/spade/bone + name = "bone spade" + desc = "A bone spade, suitable for digging and moving dirt." + icon_state = "spade_bone" + toolspeed = 0.75 + /obj/item/shovel/serrated name = "serrated bone shovel" desc = "A wicked tool that cleaves through dirt just as easily as it does flesh. The design was styled after ancient lavaland tribal designs." diff --git a/code/modules/mob/dead/dead.dm b/code/modules/mob/dead/dead.dm index 5647bc2305..ce767ae00d 100644 --- a/code/modules/mob/dead/dead.dm +++ b/code/modules/mob/dead/dead.dm @@ -13,7 +13,7 @@ INITIALIZE_IMMEDIATE(/mob/dead) stack_trace("Warning: [src]([type]) initialized multiple times!") flags_1 |= INITIALIZED_1 tag = "mob_[next_mob_id++]" - GLOB.mob_list += src + add_to_mob_list() prepare_huds() diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index f7f3450f6e..2068ed47e8 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -33,6 +33,13 @@ . = ..() + GLOB.new_player_list += src + +/mob/dead/new_player/Destroy() + GLOB.new_player_list -= src + + return ..() + /mob/dead/new_player/prepare_huds() return @@ -391,7 +398,7 @@ var/id_max = text2num(href_list["maxid"]) if( (id_max - id_min) > 100 ) //Basic exploit prevention - //(protip, this stops no exploits) + //(protip, this stops no exploits) to_chat(usr, "The option ID difference is too big. Please contact administration or the database admin.") return diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 1aa2863eda..0f30fe20fc 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -123,7 +123,7 @@ GLOBAL_VAR_INIT(observer_default_invisibility, INVISIBILITY_OBSERVER) animate(src, pixel_y = 2, time = 10, loop = -1) - GLOB.dead_mob_list += src + add_to_dead_mob_list() for(var/v in GLOB.active_alternate_appearances) if(!v) diff --git a/code/modules/mob/living/brain/MMI.dm b/code/modules/mob/living/brain/MMI.dm index 85c256f5b0..f38f326bc6 100644 --- a/code/modules/mob/living/brain/MMI.dm +++ b/code/modules/mob/living/brain/MMI.dm @@ -64,8 +64,8 @@ brainmob.container = src if(!(newbrain.organ_flags & ORGAN_FAILING)) // the brain organ hasn't been beaten to death. brainmob.stat = CONSCIOUS //we manually revive the brain mob - GLOB.dead_mob_list -= brainmob - GLOB.alive_mob_list += brainmob + brainmob.remove_from_dead_mob_list() + brainmob.add_to_alive_mob_list() brainmob.reset_perspective() brain = newbrain @@ -102,8 +102,8 @@ brainmob.stat = DEAD brainmob.emp_damage = 0 brainmob.reset_perspective() //so the brainmob follows the brain organ instead of the mmi. And to update our vision - GLOB.alive_mob_list -= brainmob //Get outta here - GLOB.dead_mob_list += brainmob + brainmob.remove_from_alive_mob_list() //Get outta here + brainmob.add_to_dead_mob_list() brain.brainmob = brainmob //Set the brain to use the brainmob brainmob = null //Set mmi brainmob var to null if(user) diff --git a/code/modules/mob/living/brain/life.dm b/code/modules/mob/living/brain/life.dm index 6d06da41ae..823d47dee2 100644 --- a/code/modules/mob/living/brain/life.dm +++ b/code/modules/mob/living/brain/life.dm @@ -25,9 +25,6 @@ else emp_damage = max(emp_damage-1, 0) -/mob/living/brain/handle_status_effects() - return - /mob/living/brain/handle_traits() return diff --git a/code/modules/mob/living/brain/posibrain.dm b/code/modules/mob/living/brain/posibrain.dm index 893d7c5103..e1eb09405a 100644 --- a/code/modules/mob/living/brain/posibrain.dm +++ b/code/modules/mob/living/brain/posibrain.dm @@ -159,8 +159,8 @@ GLOBAL_VAR(posibrain_notify_cooldown) to_chat(brainmob, welcome_message) brainmob.mind.assigned_role = new_role brainmob.stat = CONSCIOUS - GLOB.dead_mob_list -= brainmob - GLOB.alive_mob_list += brainmob + brainmob.remove_from_dead_mob_list() + brainmob.add_to_alive_mob_list() visible_message(new_mob_message) check_success() diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 65e59d0e29..e98ddf5954 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -22,7 +22,7 @@ /mob/living/carbon/Moved() . = ..() - if(. && (movement_type & FLOATING)) //floating is easy + if(. && !CHECK_BITFIELD(movement_type, FLOATING)) //floating is easy if(HAS_TRAIT(src, TRAIT_NOHUNGER)) set_nutrition(NUTRITION_LEVEL_FED - 1) //just less than feeling vigorous else if(nutrition && stat != DEAD) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d13a0f1149..8669a1458a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -83,6 +83,33 @@ . += "Chemical Storage: [changeling.chem_charges]/[changeling.chem_storage]" . += "Absorbed DNA: [changeling.absorbedcount]" + //NINJACODE + if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja)) //Only display if actually a ninja. + var/obj/item/clothing/suit/space/space_ninja/SN = wear_suit + . += "SpiderOS Status: [SN.s_initialized ? "Initialized" : "Disabled"]" + . += "Current Time: [STATION_TIME_TIMESTAMP("hh:mm:ss", world.time)]" + if(SN.s_initialized) + //Suit gear + . += "Energy Charge: [round(SN.cell.charge/100)]%" + //Ninja status + . += "Fingerprints: [md5(dna.uni_identity)]" + . += "Unique Identity: [dna.unique_enzymes]" + . += "Overall Status: [stat > 1 ? "dead" : "[health]% healthy"]" + . += "Nutrition Status: [nutrition]" + . += "Oxygen Loss: [getOxyLoss()]" + . += "Toxin Levels: [getToxLoss()]" + . += "Burn Severity: [getFireLoss()]" + . += "Brute Trauma: [getBruteLoss()]" + . += "Radiation Levels: [radiation] rad" + . += "Body Temperature: [bodytemperature-T0C] degrees C ([bodytemperature*1.8-459.67] degrees F)" + + //Diseases + if(length(diseases)) + . += "Viruses:" + for(var/thing in diseases) + var/datum/disease/D = thing + . += "* [D.name], Type: [D.spread_text], Stage: [D.stage]/[D.max_stages], Possible Cure: [D.cure_text]" + /mob/living/carbon/human/show_inv(mob/user) user.set_machine(src) var/has_breathable_mask = istype(wear_mask, /obj/item/clothing/mask) @@ -1028,10 +1055,10 @@ return if(!HAS_TRAIT(src, TRAIT_IGNOREDAMAGESLOWDOWN)) //if we want to ignore slowdown from damage, but not from equipment var/scaling = maxHealth / 100 - var/health_deficiency = max(((maxHealth / scaling) - (health / scaling)), (getStaminaLoss()*0.75)) + var/health_deficiency = max(((maxHealth / scaling) - (health / scaling)), max(0, getStaminaLoss() - 39)) if(health_deficiency >= 40) - add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, (health_deficiency - 15) / 75) - add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, (health_deficiency - 15) / 25) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown, TRUE, health_deficiency / 75) + add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying, TRUE, health_deficiency / 25) else remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown) remove_movespeed_modifier(/datum/movespeed_modifier/damage_slowdown_flying) diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 8464e15328..21554f25b4 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1397,7 +1397,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) //////////// /datum/species/proc/handle_digestion(mob/living/carbon/human/H) - if(HAS_TRAIT(src, TRAIT_NOHUNGER)) + if(HAS_TRAIT(H, TRAIT_NOHUNGER)) return //hunger is for BABIES //The fucking TRAIT_FAT mutation is the dumbest shit ever. It makes the code so difficult to work with diff --git a/code/modules/mob/living/carbon/human/species_types/xeno.dm b/code/modules/mob/living/carbon/human/species_types/xeno.dm index e9d9aa2d5b..d3249edd96 100644 --- a/code/modules/mob/living/carbon/human/species_types/xeno.dm +++ b/code/modules/mob/living/carbon/human/species_types/xeno.dm @@ -14,5 +14,6 @@ skinned_type = /obj/item/stack/sheet/animalhide/xeno exotic_bloodtype = "X*" damage_overlay_type = "xeno" - liked_food = MEAT + disliked_food = JUNKFOOD + liked_food = GROSS | MEAT species_category = SPECIES_CATEGORY_ALIEN diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index 6f0f5453da..a839a0dd83 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -570,24 +570,15 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put else SEND_SIGNAL(src, COMSIG_CLEAR_MOOD_EVENT, "jittery") - if(stuttering) - stuttering = max(stuttering-1, 0) + if(druggy) + adjust_drugginess(-1) - if(slurring || drunkenness) - slurring = max(slurring-1,0,drunkenness) - - if(cultslurring) - cultslurring = max(cultslurring-1, 0) - - if(clockcultslurring) - clockcultslurring = max(clockcultslurring-1, 0) + if(drunkenness) + drunkenness = max(drunkenness-1,0) if(silent) silent = max(silent-1, 0) - if(druggy) - adjust_drugginess(-1) - if(hallucination) handle_hallucinations() diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 2d529e976a..cbf0de51de 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -65,9 +65,9 @@ I.on_mob_death(src, gibbed) if(mind) mind.store_memory("Time of death: [tod]", 0) - GLOB.alive_mob_list -= src + remove_from_alive_mob_list() if(!gibbed) - GLOB.dead_mob_list += src + add_to_dead_mob_list() if(ckey) var/datum/preferences/P = GLOB.preferences_datums[ckey] if(P) diff --git a/code/modules/mob/living/life.dm b/code/modules/mob/living/life.dm index 43a5d9c2c8..0c73c623d1 100644 --- a/code/modules/mob/living/life.dm +++ b/code/modules/mob/living/life.dm @@ -150,11 +150,26 @@ /mob/living/proc/handle_stomach() return -//this updates all special effects: knockdown, druggy, stuttering, etc.. +/* + * this updates some effects: mostly old stuff such as drunkness, druggy, stuttering, etc. + * that should be converted to status effect datums one day. + */ /mob/living/proc/handle_status_effects() if(confused) confused = max(0, confused - 1) + if(stuttering) + stuttering = max(stuttering-1, 0) + + if(slurring) + slurring = max(slurring-1,0) + + if(cultslurring) + cultslurring = max(cultslurring-1, 0) + + if(clockcultslurring) + clockcultslurring = max(clockcultslurring-1, 0) + /mob/living/proc/handle_traits() //Eyes if(eye_blind) //blindness, heals slowly over time diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 5603801dce..be8241c063 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -589,8 +589,8 @@ if(full_heal) fully_heal(admin_revive) if(stat == DEAD && can_be_revived()) //in some cases you can't revive (e.g. no brain) - GLOB.dead_mob_list -= src - GLOB.alive_mob_list += src + remove_from_dead_mob_list() + add_to_alive_mob_list() suiciding = 0 stat = UNCONSCIOUS //the mob starts unconscious, if(!eye_blind) @@ -1289,11 +1289,11 @@ return FALSE if(NAMEOF(src, stat)) if((stat == DEAD) && (var_value < DEAD))//Bringing the dead back to life - GLOB.dead_mob_list -= src - GLOB.alive_mob_list += src + remove_from_dead_mob_list() + add_to_alive_mob_list() if((stat < DEAD) && (var_value == DEAD))//Kill he - GLOB.alive_mob_list -= src - GLOB.dead_mob_list += src + remove_from_alive_mob_list() + add_to_dead_mob_list() if(NAMEOF(src, health)) //this doesn't work. gotta use procs instead. return FALSE . = ..() diff --git a/code/modules/mob/living/living_blocking_parrying.dm b/code/modules/mob/living/living_blocking_parrying.dm index 0ccc03982a..bdc44ab356 100644 --- a/code/modules/mob/living/living_blocking_parrying.dm +++ b/code/modules/mob/living/living_blocking_parrying.dm @@ -166,7 +166,7 @@ GLOBAL_LIST_EMPTY(block_parry_data) /// Clickdelay duration post-parry if you fail to parry an attack var/parry_failed_clickcd_duration = 0 SECONDS /// Parry cooldown post-parry if failed. This is ADDED to parry_cooldown!!! - var/parry_failed_cooldown_duration = 0 SECONDS + var/parry_failed_cooldown_duration = 3.5 SECONDS // Advanced /// Flags added to return value diff --git a/code/modules/mob/living/silicon/pai/death.dm b/code/modules/mob/living/silicon/pai/death.dm index c60d84438c..c2bc49f9a8 100644 --- a/code/modules/mob/living/silicon/pai/death.dm +++ b/code/modules/mob/living/silicon/pai/death.dm @@ -7,6 +7,6 @@ clear_fullscreens() //New pAI's get a brand new mind to prevent meta stuff from their previous life. This new mind causes problems down the line if it's not deleted here. - GLOB.alive_mob_list -= src + remove_from_alive_mob_list() ghostize() qdel(src) diff --git a/code/modules/mob/living/silicon/pai/pai_defense.dm b/code/modules/mob/living/silicon/pai/pai_defense.dm index c339aa920f..ca5d3ce459 100644 --- a/code/modules/mob/living/silicon/pai/pai_defense.dm +++ b/code/modules/mob/living/silicon/pai/pai_defense.dm @@ -1,5 +1,3 @@ -#define PAI_EMP_SILENCE_DURATION 3 MINUTES - /mob/living/silicon/pai/blob_act(obj/structure/blob/B) return FALSE @@ -9,7 +7,7 @@ return take_holo_damage(severity/2) DefaultCombatKnockdown(severity*4) - silent = max(silent, (PAI_EMP_SILENCE_DURATION) / SSmobs.wait / severity) + short_radio() if(holoform) fold_in(force = TRUE) emitter_next_use = world.time + emitter_emp_cd diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7ab826cae3..bd1c260bf5 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -95,8 +95,8 @@ if(mmi.brainmob) if(mmi.brainmob.stat == DEAD) mmi.brainmob.stat = CONSCIOUS - GLOB.dead_mob_list -= mmi.brainmob - GLOB.alive_mob_list += mmi.brainmob + mmi.brainmob.remove_from_dead_mob_list() + mmi.brainmob.add_to_alive_mob_list() mind.transfer_to(mmi.brainmob) mmi.update_icon() else diff --git a/code/modules/mob/living/simple_animal/gremlin/gremlin.dm b/code/modules/mob/living/simple_animal/gremlin/gremlin.dm index 61436cea1c..a6312b9ddf 100644 --- a/code/modules/mob/living/simple_animal/gremlin/gremlin.dm +++ b/code/modules/mob/living/simple_animal/gremlin/gremlin.dm @@ -66,6 +66,7 @@ GLOBAL_LIST(bad_gremlin_items) /mob/living/simple_animal/hostile/gremlin/Initialize() . = ..() AddElement(/datum/element/ventcrawling, given_tier = VENTCRAWLER_ALWAYS) + ADD_TRAIT(src, TRAIT_SHOCKIMMUNE, INNATE_TRAIT) access_card = new /obj/item/card/id(src) var/datum/job/captain/C = new /datum/job/captain access_card.access = C.get_access() diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 8388d6501a..747abb4b19 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -95,20 +95,78 @@ /mob/living/simple_animal/hostile/carp/cayenne name = "Cayenne" + real_name = "Cayenne" desc = "A failed Syndicate experiment in weaponized space carp technology, it now serves as a lovable mascot." gender = FEMALE - regen_amount = 8 - speak_emote = list("squeaks") - maxHealth = 90 - health = 90 - gold_core_spawnable = NO_SPAWN - faction = list(ROLE_SYNDICATE, "carp") //They are still a carp AIStatus = AI_OFF + gold_core_spawnable = NO_SPAWN + faction = list(ROLE_SYNDICATE) + /// Keeping track of the nuke disk for the functionality of storing it. + var/obj/item/disk/nuclear/disky + /// Location of the file storing disk overlays + // var/icon/disk_overlay_file = 'icons/mob/carp.dmi' + /// Colored disk mouth appearance for adding it as a mouth overlay + var/mutable_appearance/colored_disk_mouth - harm_intent_damage = 12 - obj_damage = 70 - melee_damage_lower = 15 - melee_damage_upper = 18 +/mob/living/simple_animal/hostile/carp/cayenne/Initialize() + . = ..() + // AddElement(/datum/element/pet_bonus, "bloops happily!") + // colored_disk_mouth = mutable_appearance(SSgreyscale.GetColoredIconByType(/datum/greyscale_config/carp/disk_mouth, greyscale_colors), "disk_mouth") + ADD_TRAIT(src, TRAIT_DISK_VERIFIER, INNATE_TRAIT) //carp can verify disky + +/mob/living/simple_animal/hostile/carp/cayenne/IsAdvancedToolUser() + return TRUE //carp SMART + +/mob/living/simple_animal/hostile/carp/cayenne/death(gibbed) + if(disky) + disky.forceMove(drop_location()) + disky = null + return ..() + +/mob/living/simple_animal/hostile/carp/cayenne/Destroy(force) + QDEL_NULL(disky) + return ..() + +/mob/living/simple_animal/hostile/carp/cayenne/examine(mob/user) + . = ..() + if(disky) + . += span_notice("Wait... is that [disky] in [p_their()] mouth?") + +/mob/living/simple_animal/hostile/carp/cayenne/AttackingTarget(atom/attacked_target) + if(istype(attacked_target, /obj/item/disk/nuclear)) + var/obj/item/disk/nuclear/potential_disky = attacked_target + if(potential_disky.anchored) + return + potential_disky.forceMove(src) + disky = potential_disky + to_chat(src, span_nicegreen("YES!! You manage to pick up [disky]. (Click anywhere to place it back down.)")) + update_icon() + if(!disky.fake) + client.give_award(/datum/award/achievement/misc/cayenne_disk, src) + return + if(disky) + if(isopenturf(attacked_target)) + to_chat(src, span_notice("You place [disky] on [attacked_target]")) + disky.forceMove(attacked_target.drop_location()) + disky = null + update_icon() + else + disky.melee_attack_chain(src, attacked_target) + return + return ..() + +/mob/living/simple_animal/hostile/carp/cayenne/Exited(atom/movable/gone, direction) + . = ..() + if(disky == gone) + disky = null + update_icon() + +/mob/living/simple_animal/hostile/carp/cayenne/update_overlays() + . = ..() + if(!disky || stat == DEAD) + return + // . += colored_disk_mouth + // . += mutable_appearance(disk_overlay_file, "disk_overlay") #undef REGENERATION_DELAY diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm index e6c5e7c22b..08ed786252 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner.dm @@ -1,11 +1,8 @@ #define MINER_DASH_RANGE 4 /* - BLOOD-DRUNK MINER - Effectively a highly aggressive miner, the blood-drunk miner has very few attacks but compensates by being highly aggressive. - The blood-drunk miner's attacks are as follows - If not in KA range, it will rapidly dash at its target - If in KA range, it will fire its kinetic accelerator @@ -13,11 +10,8 @@ The blood-drunk miner's attacks are as follows - After any of these attacks, may transform its cleaving saw: Untransformed, it attacks very rapidly for smaller amounts of damage Transformed, it attacks at normal speed for higher damage and cleaves enemies hit - When the blood-drunk miner dies, it leaves behind the cleaving saw it was using and its kinetic accelerator. - Difficulty: Medium - */ /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner @@ -37,7 +31,7 @@ Difficulty: Medium move_to_delay = 2 projectiletype = /obj/item/projectile/kinetic/miner projectilesound = 'sound/weapons/kenetic_accel.ogg' - ranged = 1 + ranged = TRUE ranged_cooldown_time = 16 pixel_x = -16 crusher_loot = list(/obj/item/melee/transforming/cleaving_saw, /obj/item/gun/energy/kinetic_accelerator/premiumka, /obj/item/crusher_trophy/miner_eye, /obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe, @@ -55,18 +49,56 @@ Difficulty: Medium var/dashing = FALSE var/dash_cooldown = 15 var/guidance = FALSE + var/transform_stop_attack = FALSE // stops the blood drunk miner from attacking after transforming his weapon until the next attack chain deathmessage = "falls to the ground, decaying into glowing particles." - death_sound = "bodyfall" - + deathsound = "bodyfall" footstep_type = FOOTSTEP_MOB_HEAVY + attack_action_types = list(/datum/action/innate/megafauna_attack/dash, + /datum/action/innate/megafauna_attack/kinetic_accelerator, + /datum/action/innate/megafauna_attack/transform_weapon) -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance - guidance = TRUE - -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget() +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize() . = ..() - if(. && prob(12)) - INVOKE_ASYNC(src, .proc/dash) + miner_saw = new(src) + +/datum/action/innate/megafauna_attack/dash + name = "Dash To Target" + icon_icon = 'icons/mob/actions/actions_items.dmi' + button_icon_state = "sniper_zoom" + chosen_message = "You are now dashing to your target." + chosen_attack_num = 1 + +/datum/action/innate/megafauna_attack/kinetic_accelerator + name = "Fire Kinetic Accelerator" + icon_icon = 'icons/obj/guns/energy.dmi' + button_icon_state = "kineticgun" + chosen_message = "You are now shooting your kinetic accelerator." + chosen_attack_num = 2 + +/datum/action/innate/megafauna_attack/transform_weapon + name = "Transform Weapon" + icon_icon = 'icons/obj/lavaland/artefacts.dmi' + button_icon_state = "cleaving_saw" + chosen_message = "You are now transforming your weapon." + chosen_attack_num = 3 + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire() + if(client) + switch(chosen_attack) + if(1) + dash(target) + if(2) + shoot_ka() + if(3) + transform_weapon() + return + + Goto(target, move_to_delay, minimum_distance) + if(get_dist(src, target) > MINER_DASH_RANGE && dash_cooldown <= world.time) + dash_attack() + else + shoot_ka() + transform_weapon() /obj/item/melee/transforming/cleaving_saw/miner //nerfed saw because it is very murdery force = 6 @@ -74,7 +106,7 @@ Difficulty: Medium /obj/item/melee/transforming/cleaving_saw/miner/attack(mob/living/target, mob/living/carbon/human/user) target.add_stun_absorption("miner", 10, INFINITY) - . = ..() + ..() target.stun_absorption -= "miner" /obj/item/projectile/kinetic/miner @@ -83,22 +115,16 @@ Difficulty: Medium icon_state = "ka_tracer" range = MINER_DASH_RANGE -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Initialize() - . = ..() - internal = new/obj/item/gps/internal/miner(src) - miner_saw = new(src) - /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/adjustHealth(amount, updating_health = TRUE, forced = FALSE) var/adjustment_amount = amount * 0.1 if(world.time + adjustment_amount > next_action) - DelayNextAction(adjustment_amount, considered_action = FALSE, flush = TRUE) //attacking it interrupts it attacking, but only briefly + DelayNextAction(adjustment_amount) //attacking it interrupts it attacking, but only briefly . = ..() /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/death() - if(health > 0) - return - new /obj/effect/temp_visual/dir_setting/miner_death(loc, dir) - return ..() + . = ..() + if(.) + new /obj/effect/temp_visual/dir_setting/miner_death(loc, dir) /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/Move(atom/newloc) if(dashing || (newloc && newloc.z == z && (islava(newloc) || ischasm(newloc)))) //we're not stupid! @@ -110,11 +136,14 @@ Difficulty: Medium return return ..() +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/MeleeAction(patience = TRUE) + transform_stop_attack = FALSE + return ..() + /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/AttackingTarget() - if(QDELETED(target)) - return - if(!CheckActionCooldown() || !Adjacent(target)) //some cheating - INVOKE_ASYNC(src, .proc/quick_attack_loop) + if(client) + transform_stop_attack = FALSE + if(QDELETED(target) || transform_stop_attack) return face_atom(target) if(isliving(target)) @@ -129,12 +158,10 @@ Difficulty: Medium adjustHealth(-(L.maxHealth * 0.5)) L.gib() return TRUE - miner_saw.melee_attack_chain(src, target, null, ATTACK_IGNORE_CLICKDELAY) - FlushCurrentAction() + DelayNextAction(CLICK_CD_MELEE) + miner_saw.melee_attack_chain(src, target) if(guidance) adjustHealth(-2) - transform_weapon() - INVOKE_ASYNC(src, .proc/quick_attack_loop) return TRUE /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/do_attack_animation(atom/A, visual_effect_icon, obj/item/used_item, no_effect) @@ -147,16 +174,10 @@ Difficulty: Medium . = ..() if(. && target && !targets_the_same) wander = TRUE - transform_weapon() - INVOKE_ASYNC(src, .proc/quick_attack_loop) -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/OpenFire() - Goto(target, move_to_delay, minimum_distance) - if(get_dist(src, target) > MINER_DASH_RANGE && dash_cooldown <= world.time) - INVOKE_ASYNC(src, .proc/dash, target) - else - shoot_ka() - transform_weapon() +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash_attack() + INVOKE_ASYNC(src, .proc/dash, target) + shoot_ka() /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/shoot_ka() if(ranged_cooldown <= world.time && get_dist(src, target) <= MINER_DASH_RANGE && !Adjacent(target)) @@ -165,22 +186,7 @@ Difficulty: Medium face_atom(target) new /obj/effect/temp_visual/dir_setting/firing_effect(loc, dir) Shoot(target) - DelayNextAction(CLICK_CD_RANGE, flush = TRUE) - -//I'm still of the belief that this entire proc needs to be wiped from existence. -// do not take my touching of it to be endorsement of it. ~mso -/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/quick_attack_loop() - while(!QDELETED(target) && !CheckActionCooldown()) //this is done this way because next_move can change to be sooner while we sleep. - stoplag(1) - sleep((next_action - world.time) * 1.5) //but don't ask me what the fuck this is about - if(QDELETED(target)) - return - if(dashing || !CheckActionCooldown() || !Adjacent(target)) - if(dashing && next_action <= world.time) - SetNextAction(1, considered_action = FALSE, immediate = FALSE, flush = TRUE) - INVOKE_ASYNC(src, .proc/quick_attack_loop) //lets try that again. - return - AttackingTarget() + DelayNextAction(CLICK_CD_RANGE) /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/dash(atom/dash_target) if(world.time < dash_cooldown) @@ -225,19 +231,23 @@ Difficulty: Medium dashing = TRUE alpha = 0 animate(src, alpha = 255, time = 5) - sleep(2) + SLEEP_CHECK_DEATH(2) D.forceMove(step_forward_turf) forceMove(target_turf) playsound(target_turf, 'sound/weapons/punchmiss.ogg', 40, 1, -1) - sleep(1) + SLEEP_CHECK_DEATH(1) dashing = FALSE - shoot_ka() return TRUE /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/proc/transform_weapon() if(time_until_next_transform <= world.time) miner_saw.transform_cooldown = 0 miner_saw.transform_weapon(src, TRUE) + if(!miner_saw.active) + rapid_melee = 5 // 4 deci cooldown before changes, npcpool subsystem wait is 20, 20/4 = 5 + else + rapid_melee = 3 // same thing but halved (slightly rounded up) + transform_stop_attack = TRUE icon_state = "miner[miner_saw.active ? "_transformed":""]" icon_living = "miner[miner_saw.active ? "_transformed":""]" time_until_next_transform = world.time + rand(50, 100) @@ -269,6 +279,14 @@ Difficulty: Medium desc = "The sweet blood, oh, it sings to me." invisibility = 100 +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/guidance + guidance = TRUE + +/mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/hunter/AttackingTarget() + . = ..() + if(. && prob(12)) + INVOKE_ASYNC(src, .proc/dash) + /mob/living/simple_animal/hostile/megafauna/blood_drunk_miner/doom name = "hostile-environment miner" desc = "A miner destined to hop across dimensions for all eternity, hunting anomalous creatures." @@ -277,4 +295,5 @@ Difficulty: Medium ranged_cooldown_time = 8 dash_cooldown = 8 + #undef MINER_DASH_RANGE diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm index 14b71b3bac..e4c087b1e1 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/hierophant.dm @@ -364,7 +364,7 @@ Difficulty: Normal var/turf/T = get_turf(victim) if(!istype(victim) || victim.stat == DEAD || !T || arena_cooldown > world.time) return - if((istype(get_area(T), /area/ruin/unpowered/hierophant) || istype(get_area(src), /area/ruin/unpowered/hierophant)) && victim != src) + if((istype(get_area(T), /area/ruin/lavaland/unpowered/hierophant) || istype(get_area(src), /area/ruin/lavaland/unpowered/hierophant)) && victim != src) return arena_cooldown = world.time + initial(arena_cooldown) for(var/d in GLOB.cardinals) diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm index 869f29951b..938483be84 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/wendigo.dm @@ -32,6 +32,9 @@ Difficulty: Hard wander = FALSE del_on_death = TRUE blood_volume = BLOOD_VOLUME_NORMAL + achievement_type = /datum/award/achievement/boss/wendigo_kill + crusher_achievement_type = /datum/award/achievement/boss/wendigo_crusher + score_achievement_type = /datum/award/score/wendigo_score deathmessage = "falls, shaking the ground around it" deathsound = 'sound/effects/gravhit.ogg' attack_action_types = list(/datum/action/innate/megafauna_attack/heavy_stomp, diff --git a/code/modules/mob/living/simple_animal/hostile/plaguerat.dm b/code/modules/mob/living/simple_animal/hostile/plaguerat.dm index 2b92894317..497359829e 100644 --- a/code/modules/mob/living/simple_animal/hostile/plaguerat.dm +++ b/code/modules/mob/living/simple_animal/hostile/plaguerat.dm @@ -136,7 +136,7 @@ GLOBAL_LIST_EMPTY(plague_rats) if(LAZYLEN(GLOB.plague_rats) >= cap) visible_message("[src] gnaws into its food, [cap] rats are now on the station!") return - var/mob/living/newmouse = new /mob/living/simple_animal/hostile/plaguerat(loc) + new /mob/living/simple_animal/hostile/plaguerat(loc) visible_message("[src] gnaws into its food, attracting another rat!") /mob/living/simple_animal/hostile/plaguerat/proc/exit_vents() diff --git a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm index 39e9e84ed2..800c7d29ca 100644 --- a/code/modules/mob/living/simple_animal/hostile/space_dragon.dm +++ b/code/modules/mob/living/simple_animal/hostile/space_dragon.dm @@ -456,7 +456,7 @@ var/dir_to_target = get_dir(get_turf(src), get_turf(L)) var/throwtarget = get_edge_target_turf(target, dir_to_target) L.safe_throw_at(throwtarget, 10, 1, src) - L.Paralyze(50) + L.drop_all_held_items() addtimer(CALLBACK(src, .proc/reset_status), 4 + ((tiredness * tiredness_mult) / 10)) tiredness = tiredness + (gust_tiredness * tiredness_mult) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 65c553b11d..dc892364c4 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -195,12 +195,6 @@ stat = CONSCIOUS med_hud_set_status() - -/mob/living/simple_animal/handle_status_effects() - ..() - if(stuttering) - stuttering = 0 - /mob/living/simple_animal/proc/handle_automated_action() set waitfor = FALSE return diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 2ed0bfa9d2..8f74d3b45f 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -1,5 +1,5 @@ /mob/Login() - GLOB.player_list |= src + add_to_player_list() lastKnownIP = client.address computer_id = client.computer_id log_access("Mob Login: [key_name(src)] was assigned to a [type]") diff --git a/code/modules/mob/logout.dm b/code/modules/mob/logout.dm index 536eacca7d..2e2eeeb4fb 100644 --- a/code/modules/mob/logout.dm +++ b/code/modules/mob/logout.dm @@ -3,7 +3,7 @@ log_message("[key_name(src)] is no longer owning mob [src]([src.type])", LOG_OWNERSHIP) SStgui.on_logout(src) unset_machine() - GLOB.player_list -= src + remove_from_player_list() ..() diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 5ba4769f99..8a71bb72c4 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1,9 +1,8 @@ /mob/Destroy()//This makes sure that mobs with clients/keys are not just deleted from the game. - GLOB.mob_list -= src - GLOB.dead_mob_list -= src - GLOB.alive_mob_list -= src + remove_from_mob_list() + remove_from_dead_mob_list() + remove_from_alive_mob_list() GLOB.all_clockwork_mobs -= src - GLOB.mob_directory -= tag focus = null LAssailant = null movespeed_modification = null @@ -22,12 +21,11 @@ return QDEL_HINT_HARDDEL /mob/Initialize() - GLOB.mob_list += src - GLOB.mob_directory[tag] = src + add_to_mob_list() if(stat == DEAD) - GLOB.dead_mob_list += src + add_to_dead_mob_list() else - GLOB.alive_mob_list += src + add_to_alive_mob_list() set_focus(src) prepare_huds() for(var/v in GLOB.active_alternate_appearances) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index b77b9913ba..8e6226069c 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -180,3 +180,6 @@ ///Override for sound_environments. If this is set the user will always hear a specific type of reverb (Instead of the area defined reverb) var/sound_environment_override = SOUND_ENVIRONMENT_NONE + +/// A mock client, provided by tests and friends + var/datum/client_interface/mock_client diff --git a/code/modules/mob/mob_lists.dm b/code/modules/mob/mob_lists.dm new file mode 100644 index 0000000000..14f519ec30 --- /dev/null +++ b/code/modules/mob/mob_lists.dm @@ -0,0 +1,119 @@ +///Adds the mob reference to the list and directory of all mobs. Called on Initialize(). +/mob/proc/add_to_mob_list() + GLOB.mob_list |= src + GLOB.mob_directory[tag] = src + +///Removes the mob reference from the list and directory of all mobs. Called on Destroy(). +/mob/proc/remove_from_mob_list() + GLOB.mob_list -= src + GLOB.mob_directory -= tag + +///Adds the mob reference to the list of all mobs alive. If mob is cliented, it adds it to the list of all living player-mobs. +/mob/proc/add_to_alive_mob_list() + GLOB.alive_mob_list |= src + if(client) + add_to_current_living_players() + +///Removes the mob reference from the list of all mobs alive. If mob is cliented, it removes it from the list of all living player-mobs. +/mob/proc/remove_from_alive_mob_list() + GLOB.alive_mob_list -= src + if(client) + remove_from_current_living_players() + + +///Adds the mob reference to the list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs. +/mob/proc/add_to_dead_mob_list() + GLOB.dead_mob_list |= src + if(client) + add_to_current_dead_players() + +///Remvoes the mob reference from list of all the dead mobs. If mob is cliented, it adds it to the list of all dead player-mobs. +/mob/proc/remove_from_dead_mob_list() + GLOB.dead_mob_list -= src + if(client) + remove_from_current_dead_players() + + +///Adds the cliented mob reference to the list of all player-mobs, besides to either the of dead or alive player-mob lists, as appropriate. Called on Login(). +/mob/proc/add_to_player_list() + SHOULD_CALL_PARENT(TRUE) + GLOB.player_list |= src + if(!SSticker?.mode) + return + if(stat == DEAD) + add_to_current_dead_players() + else + add_to_current_living_players() + +///Removes the mob reference from the list of all player-mobs, besides from either the of dead or alive player-mob lists, as appropriate. Called on Logout(). +/mob/proc/remove_from_player_list() + SHOULD_CALL_PARENT(TRUE) + GLOB.player_list -= src + if(!SSticker?.mode) + return + if(stat == DEAD) + remove_from_current_dead_players() + else + remove_from_current_living_players() + + +///Adds the cliented mob reference to either the list of dead player-mobs or to the list of observers, depending on how they joined the game. +/mob/proc/add_to_current_dead_players() + if(!SSticker?.mode) + return + SSticker.mode.current_players[CURRENT_DEAD_PLAYERS] |= src + +/mob/dead/observer/add_to_current_dead_players() + if(!SSticker?.mode) + return + if(started_as_observer) + SSticker.mode.current_players[CURRENT_OBSERVERS] |= src + return + return ..() + +/mob/dead/new_player/add_to_current_dead_players() + return + +///Removes the mob reference from either the list of dead player-mobs or from the list of observers, depending on how they joined the game. +/mob/proc/remove_from_current_dead_players() + if(!SSticker?.mode) + return + SSticker.mode.current_players[CURRENT_DEAD_PLAYERS] -= src + +/mob/dead/observer/remove_from_current_dead_players() + if(!SSticker?.mode) + return + if(started_as_observer) + SSticker.mode.current_players[CURRENT_OBSERVERS] -= src + return + return ..() + + +///Adds the cliented mob reference to the list of living player-mobs. If the mob is an antag, it adds it to the list of living antag player-mobs. +/mob/proc/add_to_current_living_players() + if(!SSticker?.mode) + return + SSticker.mode.current_players[CURRENT_LIVING_PLAYERS] |= src + if(mind && (mind.special_role || length(mind.antag_datums))) + add_to_current_living_antags() + +///Removes the mob reference from the list of living player-mobs. If the mob is an antag, it removes it from the list of living antag player-mobs. +/mob/proc/remove_from_current_living_players() + if(!SSticker?.mode) + return + SSticker.mode.current_players[CURRENT_LIVING_PLAYERS] -= src + if(LAZYLEN(mind?.antag_datums)) + remove_from_current_living_antags() + + +///Adds the cliented mob reference to the list of living antag player-mobs. +/mob/proc/add_to_current_living_antags() + if(!SSticker?.mode) + return + SSticker.mode.current_players[CURRENT_LIVING_ANTAGS] |= src + +///Removes the mob reference from the list of living antag player-mobs. +/mob/proc/remove_from_current_living_antags() + if(!SSticker?.mode) + return + SSticker.mode.current_players[CURRENT_LIVING_ANTAGS] -= src diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 3b6f37184a..d8ef440ef9 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -4,6 +4,7 @@ set name = "say_indicator" set hidden = TRUE set category = "IC" + client?.last_activity = world.time display_typing_indicator() var/message = input(usr, "", "say") as text|null // If they don't type anything just drop the message. @@ -21,12 +22,16 @@ to_chat(usr, "Speech is currently admin-disabled.") return clear_typing_indicator() // clear it immediately! + + client?.last_activity = world.time + say(message) /mob/verb/me_typing_indicator() set name = "me_indicator" set hidden = TRUE set category = "IC" + client?.last_activity = world.time display_typing_indicator() var/message = input(usr, "", "me") as message|null // If they don't type anything just drop the message. @@ -52,6 +57,8 @@ message = trim(copytext_char(sanitize(message), 1, MAX_MESSAGE_LEN)) clear_typing_indicator() // clear it immediately! + client?.last_activity = world.time + usr.emote("me",1,message,TRUE) /mob/say_mod(input, message_mode) @@ -73,6 +80,7 @@ return lowertext(copytext_char(input, 1, customsayverb)) /mob/proc/whisper_keybind() + client?.last_activity = world.time var/message = input(src, "", "whisper") as text|null if(!length(message)) return @@ -89,6 +97,7 @@ whisper(message) /mob/proc/whisper(message, datum/language/language=null) + client?.last_activity = world.time say(message, language) //only living mobs actually whisper, everything else just talks /mob/proc/say_dead(var/message) @@ -132,6 +141,7 @@ message = emoji_parse(message) var/rendered = "DEAD: [name][alt_name] [emoji_parse(spanned)]" log_talk(message, LOG_SAY, tag="DEAD") + client?.last_activity = world.time deadchat_broadcast(rendered, follow_target = src, speaker_key = key) /mob/proc/check_emote(message) diff --git a/code/modules/ninja/__ninjaDefines.dm b/code/modules/ninja/__ninjaDefines.dm index 3f5db48407..0cfd1a4895 100644 --- a/code/modules/ninja/__ninjaDefines.dm +++ b/code/modules/ninja/__ninjaDefines.dm @@ -15,7 +15,6 @@ //Defines for the suit's unique abilities #define IS_NINJA_SUIT_INITIALIZATION(action) (istype(action, /datum/action/item_action/initialize_ninja_suit)) -#define IS_NINJA_SUIT_STATUS(action) (istype(action, /datum/action/item_action/ninjastatus)) #define IS_NINJA_SUIT_BOOST(action) (istype(action, /datum/action/item_action/ninjaboost)) #define IS_NINJA_SUIT_EMP(action) (istype(action, /datum/action/item_action/ninjapulse)) #define IS_NINJA_SUIT_STAR_CREATION(action) (istype(action, /datum/action/item_action/ninjastar)) diff --git a/code/modules/ninja/outfit.dm b/code/modules/ninja/outfit.dm index a6faa9a3d5..ca740d9ad7 100644 --- a/code/modules/ninja/outfit.dm +++ b/code/modules/ninja/outfit.dm @@ -21,3 +21,6 @@ var/obj/item/clothing/suit/space/space_ninja/S = H.wear_suit if(istype(H.belt, belt)) S.energyKatana = H.belt + H.grant_language(/datum/language/neokanji) + var/datum/language_holder/LH = H.get_language_holder() + LH.selected_language = /datum/language/neokanji diff --git a/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm b/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm index 0bedd31c72..33e6b1ae26 100644 --- a/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm +++ b/code/modules/ninja/suit/ninja_equipment_actions/ninja_status_read.dm @@ -5,35 +5,3 @@ button_icon_state = "health" icon_icon = 'icons/obj/device.dmi' var/action_background_icon_state = "bg_default_on" - -/** - * Proc called to put a status readout to the ninja in chat. - * - * Called put some information about the ninja's current status into chat. - * This information used to be displayed constantly on the status tab screen - * when the suit was on, but was turned into this as to remove the code from - * human.dm - */ -/obj/item/clothing/suit/space/space_ninja/proc/ninjastatus() - var/mob/living/carbon/human/ninja = affecting - var/list/info_list = list() - info_list += "SpiderOS Status: [s_initialized ? "Initialized" : "Disabled"]\n" - //Ninja status - info_list += "Fingerprints: [md5(ninja.dna.uni_identity)]\n" - info_list += "Unique Identity: [ninja.dna.unique_enzymes]\n" - info_list += "Overall Status: [ninja.stat > 1 ? "dead" : "[ninja.health]% healthy"]\n" - info_list += "Nutrition Status: [ninja.nutrition]\n" - info_list += "Oxygen Loss: [ninja.getOxyLoss()]\n" - info_list += "Toxin Levels: [ninja.getToxLoss()]\n" - info_list += "Burn Severity: [ninja.getFireLoss()]\n" - info_list += "Brute Trauma: [ninja.getBruteLoss()]\n" - info_list += "Radiation Levels: [ninja.radiation] rad\n" - info_list += "Body Temperature: [ninja.bodytemperature-T0C] degrees C ([ninja.bodytemperature*1.8-459.67] degrees F)\n" - - //Diseases - if(length(ninja.diseases)) - info_list += "Viruses:" - for(var/datum/disease/ninja_disease in ninja.diseases) - info_list += "* [ninja_disease.name], Type: [ninja_disease.spread_text], Stage: [ninja_disease.stage]/[ninja_disease.max_stages], Possible Cure: [ninja_disease.cure_text]\n" - - to_chat(ninja, "[info_list.Join()]") diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index 66d9a85290..d9d362c43c 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -121,9 +121,6 @@ if(s_coold > 0) to_chat(user, "ERROR: suit is on cooldown.") return FALSE - if(IS_NINJA_SUIT_STATUS(action)) - ninjastatus() - return TRUE if(IS_NINJA_SUIT_BOOST(action)) ninjaboost() return TRUE diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index 8f4d8eac67..a9bfe21102 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -39,7 +39,7 @@ /obj/item/ammo_casing/c38/lethal name = ".38 bullet casing" - desc = "A .38 bullet casing" + desc = "A .38 bullet casing." projectile_type = /obj/item/projectile/bullet/c38 /obj/item/ammo_casing/c38/trac diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 1f1cc10459..f07ad0bc39 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -60,6 +60,13 @@ desc = "Designed to quickly reload revolvers. These rounds are manufactured within extremely tight tolerances, making them easy to show off trickshots with." ammo_type = /obj/item/ammo_casing/c38/match +/obj/item/ammo_box/c38/pouch + name = "ammo packet (.38)" + desc = "A small ammunition packet made of synthleather. Not particularly useful for speedily reloading, but can hold a bit more." + multiload = FALSE + max_ammo = 8 + icon_state = "38pch" + /obj/item/ammo_box/g4570 name = "ammo box (.45-70 GOVT)" desc = "Brought to you at great expense,this box contains 10 more .45-70 GOVT bullets." diff --git a/code/modules/projectiles/boxes_magazines/external/lmg.dm b/code/modules/projectiles/boxes_magazines/external/lmg.dm index 659d9ae2c7..95ba17c733 100644 --- a/code/modules/projectiles/boxes_magazines/external/lmg.dm +++ b/code/modules/projectiles/boxes_magazines/external/lmg.dm @@ -23,4 +23,10 @@ /obj/item/ammo_box/magazine/mm712x82/match name = "box magazine (Match 7.12x82mm)" + icon_state = "a762-50" ammo_type = /obj/item/ammo_casing/mm712x82/match + max_ammo = 50 + +/obj/item/ammo_box/magazine/mm712x82/update_icon() + ..() + icon_state = "a762-[round(ammo_count(),10)]" diff --git a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm index 12f4e1f1c5..4aa8b917b5 100644 --- a/code/modules/projectiles/boxes_magazines/internal/shotgun.dm +++ b/code/modules/projectiles/boxes_magazines/internal/shotgun.dm @@ -61,3 +61,7 @@ ammo_type = /obj/item/ammo_casing/c38 // they're rubber by default, i guess caliber = "38" max_ammo = 7 + +/obj/item/ammo_box/magazine/internal/shot/levergun/brush + name = "brush gun internal magazine" + ammo_type = /obj/item/ammo_casing/g4570 diff --git a/code/modules/projectiles/guns/ballistic/automatic.dm b/code/modules/projectiles/guns/ballistic/automatic.dm index a3985c8f42..9388ca214a 100644 --- a/code/modules/projectiles/guns/ballistic/automatic.dm +++ b/code/modules/projectiles/guns/ballistic/automatic.dm @@ -122,7 +122,7 @@ icon_state = "c20r[magazine ? "-[CEILING(get_ammo(0)/4, 1)*4]" : ""][chambered ? "" : "-e"][suppressed ? "-suppressed" : ""]" /obj/item/gun/ballistic/automatic/wt550 - name = "security semi-auto smg" + name = "security semi-auto PDW" desc = "An outdated personal defence weapon. Uses 4.6x30mm rounds and is designated the WT-550 Semi-Automatic SMG." icon_state = "wt550" item_state = "arg" diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index 3e7e2c9e9c..f84ed9cd8d 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -11,6 +11,7 @@ mag_type = /obj/item/ammo_box/magazine/internal/shot casing_ejector = FALSE var/recentpump = 0 // to prevent spammage + var/clip_delay = CLICK_CD_MELEE weapon_weight = WEAPON_HEAVY sawn_item_state = "sawnshotgun" @@ -24,6 +25,8 @@ playsound(user, 'sound/weapons/shotguninsert.ogg', 60, 1) A.update_icon() update_icon() + if(istype(A, /obj/item/ammo_box)) + user.SetNextAction(clip_delay) /obj/item/gun/ballistic/shotgun/process_chamber(mob/living/user, empty_chamber = 0) return ..() //changed argument value @@ -240,20 +243,20 @@ /obj/item/gun/ballistic/shotgun/automatic/combat/compact name = "warden's combat shotgun" - desc = "A modified version of the semi automatic combat shotgun with a collapsible stock. For close encounters." + desc = "A modified version of the semi-automatic combat shotgun with a collapsible stock and a safety that prevents firing while folded. For close encounters." icon_state = "cshotgunc" mag_type = /obj/item/ammo_box/magazine/internal/shot/com w_class = WEIGHT_CLASS_NORMAL var/stock = FALSE + var/extend_sound = 'sound/weapons/batonextend.ogg' recoil = 5 spread = 2 /obj/item/gun/ballistic/shotgun/automatic/combat/compact/AltClick(mob/living/user) - . = ..() - if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user))) + if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)) || item_flags & IN_STORAGE) return toggle_stock(user) - return TRUE + . = ..() /obj/item/gun/ballistic/shotgun/automatic/combat/compact/examine(mob/user) . = ..() @@ -271,11 +274,20 @@ to_chat(user, "You fold the stock.") recoil = 5 spread = 2 + playsound(src.loc, extend_sound, 50, 1) update_icon() /obj/item/gun/ballistic/shotgun/automatic/combat/compact/update_icon_state() icon_state = "[current_skin ? unique_reskin[current_skin] : "cshotgun"][stock ? "" : "c"]" +/obj/item/gun/ballistic/shotgun/automatic/combat/compact/afterattack(atom/target, mob/living/user, flag, params) + if(!stock) + shoot_with_empty_chamber(user) + to_chat(user, "[src] won't fire with a folded stock!") + else + . = ..() + update_icon() + //Dual Feed Shotgun /obj/item/gun/ballistic/shotgun/automatic/dual_tube @@ -349,9 +361,13 @@ icon_state = "levercarabine" item_state = "leveraction" sawn_item_state = "maresleg" + var/can_cut = TRUE /obj/item/gun/ballistic/shotgun/leveraction/attackby(obj/item/A, mob/user, params) ..() + if(!can_cut) + to_chat(user, "You can't cut \the [src] down!") + return if(A.tool_behaviour == TOOL_SAW || istype(A, /obj/item/gun/energy/plasmacutter)) sawoff(user) if(istype(A, /obj/item/melee/transforming/energy)) @@ -367,3 +383,11 @@ icon_state = "[unique_reskin[current_skin]][sawn_off ? "-sawn" : ""][chambered ? "" : "-e"]" else icon_state = "[initial(icon_state)][sawn_off ? "-sawn" : ""][chambered ? "" : "-e"]" + +/obj/item/gun/ballistic/shotgun/leveraction/brush + name = "brush gun" + desc = "While lever-actions have been horribly out of date for hundreds of years now, \ + putting a nicely sized hole in a man-sized target with a .45-70 round has stayed relatively timeless." + icon_state = "brushgun" + can_cut = FALSE + mag_type = /obj/item/ammo_box/magazine/internal/shot/levergun/brush diff --git a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm index 1e6318ecba..4d394401c4 100644 --- a/code/modules/projectiles/guns/energy/kinetic_accelerator.dm +++ b/code/modules/projectiles/guns/energy/kinetic_accelerator.dm @@ -278,6 +278,7 @@ w_class = WEIGHT_CLASS_SMALL require_module = 1 module_type = list(/obj/item/robot_module/miner) + module_flags = BORG_MODULE_MINER var/denied_type = null var/maximum_of_type = 1 var/cost = 30 diff --git a/code/modules/projectiles/guns/magic/motivation.dm b/code/modules/projectiles/guns/magic/motivation.dm index 0eaeea4418..a33165b28b 100644 --- a/code/modules/projectiles/guns/magic/motivation.dm +++ b/code/modules/projectiles/guns/magic/motivation.dm @@ -1,6 +1,6 @@ /obj/item/gun/magic/staff/motivation name = "Motivation" - desc = "Rumored to have the ability to open up a portal the depths of Lavaland." + desc = "Rumored to have the ability to open up a portal to the depths of Lavaland." icon = 'icons/obj/items_and_weapons.dmi' icon_state = "motivation" item_state = "motivation" @@ -21,15 +21,15 @@ recharge_rate = 5 var/datum/action/judgement_cut/judgementcut = new/datum/action/judgement_cut() block_parry_data = /datum/block_parry_data/motivation - + //to get this to toggle correctly /obj/item/gun/magic/staff/motivation/Initialize() . = ..() judgementcut = new(src) -//lets the user know that their judgment cuts are recharging +//lets the user know that their judgement cuts are recharging /obj/item/gun/magic/staff/motivation/shoot_with_empty_chamber(mob/living/user as mob|obj) - to_chat(user, "Judgment Cut is recharging.") + to_chat(user, "Judgement Cut is recharging.") //action button to toggle judgement cuts on/off /datum/action/judgement_cut @@ -47,7 +47,7 @@ /obj/item/gun/magic/staff/motivation/can_trigger_gun(mob/living/user) . = ..() if(!judgementcut.judgement_toggled) - to_chat(user, " Judgment Cut is disabled.") + to_chat(user, "Judgement Cut is disabled.") return FALSE //adds/removes judgement cut and judgement cut end upon pickup/drop diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 02c8a9802c..f59e45ff01 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -84,6 +84,7 @@ else reagents.trans_to(D, amount_per_transfer_from_this, 1/range) D.add_atom_colour(mix_color_from_reagents(D.reagents.reagent_list), TEMPORARY_COLOUR_PRIORITY) + playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) last_spray = world.time INVOKE_ASYNC(D, /obj/effect/decal/chempuff/proc/run_puff, A) diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm index fe9ffe2035..fbfd626ae7 100644 --- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm +++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm @@ -37,7 +37,7 @@ build_path = /obj/item/storage/bag/tray category = list("initial","Dinnerware") -/datum/design/tray +/datum/design/cafeteria_tray name = "Cafeteria Tray" id = "foodtray" build_type = AUTOLATHE diff --git a/code/modules/research/nanites/nanite_programs/healing.dm b/code/modules/research/nanites/nanite_programs/healing.dm index 81a837504a..e3cc63c3a0 100644 --- a/code/modules/research/nanites/nanite_programs/healing.dm +++ b/code/modules/research/nanites/nanite_programs/healing.dm @@ -242,13 +242,24 @@ sleep(30) playsound(C, 'sound/machines/defib_zap.ogg', 50, FALSE) if(check_revivable()) + var/tplus = world.time - C.timeofdeath playsound(C, 'sound/machines/defib_success.ogg', 50, FALSE) C.set_heartattack(FALSE) + var/oxydamage = C.getOxyLoss() + if(C.health < HEALTH_THRESHOLD_FULLCRIT && oxydamage) + var/diff = C.health - HEALTH_THRESHOLD_FULLCRIT + C.adjustOxyLoss(diff) //Heal their oxydamage up to hardcrit (or if less, as much as they have, since the proc has sanity) C.revive(full_heal = FALSE, admin_revive = FALSE) C.emote("gasp") C.Jitter(100) SEND_SIGNAL(C, COMSIG_LIVING_MINOR_SHOCK) - log_game("[C] has been successfully defibrillated by nanites.") + var/list/policies = CONFIG_GET(keyed_list/policy) + var/timelimit = CONFIG_GET(number/defib_cmd_time_limit) * 10 //the config is in seconds, not deciseconds + var/late = timelimit && (tplus > timelimit) + var/policy = late? policies[POLICYCONFIG_ON_DEFIB_LATE] : policies[POLICYCONFIG_ON_DEFIB_INTACT] + if(policy) + to_chat(C, policy) + C.log_message("has been successfully defibrillated by nanites, [tplus] deciseconds from time of death, considered [late? "late" : "memory-intact"] revival under configured policy limits.", LOG_GAME) else playsound(C, 'sound/machines/defib_failed.ogg', 50, FALSE) diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index 4cd6728e8a..897c7610a1 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -528,7 +528,8 @@ BZ_brain_damage_min += bz gas_max[GAS_N2] = PP(breath, GAS_N2) + 5 - var/o2_pp = PP(breath, GAS_O2) + var/datum/breathing_class/class = GLOB.gas_data.breathing_classes[breathing_class] + var/o2_pp = class.get_effective_pp(breath) safe_breath_min = min(3, 0.3 * o2_pp) safe_breath_max = max(18, 1.3 * o2_pp + 1) ..() diff --git a/code/modules/surgery/organs/tongue.dm b/code/modules/surgery/organs/tongue.dm index 7cba3d358a..833fd5bc94 100644 --- a/code/modules/surgery/organs/tongue.dm +++ b/code/modules/surgery/organs/tongue.dm @@ -26,6 +26,7 @@ /datum/language/vampiric, /datum/language/dwarf, /datum/language/signlanguage, + /datum/language/neokanji, )) healing_factor = STANDARD_ORGAN_HEALING*5 //Fast!! decay_factor = STANDARD_ORGAN_DECAY/2 @@ -253,7 +254,8 @@ /datum/language/beachbum, /datum/language/aphasia, /datum/language/sylvan, - /datum/language/voltaic + /datum/language/voltaic, + /datum/language/neokanji, )) /obj/item/organ/tongue/ethereal/Initialize(mapload) diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm index 0f1004221c..5c7b71b779 100644 --- a/code/modules/surgery/tools.dm +++ b/code/modules/surgery/tools.dm @@ -48,6 +48,13 @@ w_class = WEIGHT_CLASS_TINY toolspeed = 0.5 +/obj/item/retractor/ashwalker + name = "bontractor" + desc = "Kinda looks like a chicken bone." + icon = 'icons/obj/mining.dmi' + icon_state = "retractor_bone" + toolspeed = 0.85 + /obj/item/hemostat name = "hemostat" desc = "You think you have seen this before." @@ -78,6 +85,14 @@ toolspeed = 0.5 attack_verb = list("attacked", "pinched") +/obj/item/hemostat/ashwalker + name = "femurstat" + desc = "Bones that are strapped together with sinews. Used to stop bleeding." + icon = 'icons/obj/mining.dmi' + icon_state = "hemostat_bone" + toolspeed = 0.85 + + /obj/item/cautery name = "cautery" desc = "This stops bleeding." @@ -108,6 +123,13 @@ toolspeed = 0.5 attack_verb = list("burnt") +/obj/item/cautery/ashwalker + name = "coretery" + desc = "A legion core strapped to a bone. It can close wounds." + icon = 'icons/obj/mining.dmi' + icon_state = "cautery_bone" + toolspeed = 0.85 + /obj/item/surgicaldrill name = "surgical drill" desc = "You can drill using this item. You dig?" @@ -257,6 +279,14 @@ user.visible_message("[user] is slitting [user.p_their()] [pick("wrists", "throat", "stomach")] with [src]! It looks like [user.p_theyre()] trying to commit suicide!") return (BRUTELOSS) +/obj/item/scalpel/ashwalker + name = "diamond scalpel" + desc = "Bones and a Diamond tied together to make a scalpel." + icon = 'icons/obj/mining.dmi' + icon_state = "scalpel_bone" + force = 12 + toolspeed = 0.85 + /obj/item/circular_saw name = "circular saw" desc = "For heavy duty cutting." @@ -309,6 +339,14 @@ attack_verb = list("attacked", "slashed", "sawed", "cut") sharpness = SHARP_EDGED +/obj/item/circular_saw/ashwalker + name = "diamond bonesaw" + desc = "Bones designed like a skull, with diamond teeth to cut through bones." + icon = 'icons/obj/mining.dmi' + icon_state = "saw_bone" + force = 12 + toolspeed = 0.85 + /obj/item/surgical_drapes name = "surgical drapes" desc = "Nanotrasen brand surgical drapes provide optimal safety and infection control." @@ -341,6 +379,13 @@ prototype = SSresearch.techweb_design_by_id(id) . |= prototype.surgery + +/obj/item/surgical_drapes/goliath + name = "goliath drapes" + desc = "Probably not the most hygienic but what the heck else are you gonna use?" + icon = 'icons/obj/mining.dmi' + icon_state = "surgical_drapes_goli" + /obj/item/organ_storage //allows medical cyborgs to manipulate organs without hands name = "organ storage bag" desc = "A container for holding body parts." @@ -433,3 +478,10 @@ to_chat(user, "You refrain from hitting [L] with [src], as you are in help intent.") return return ..() + +/obj/item/bonesetter/bone + name = "bone bonesetter" + desc = "A bonesetter made of bones... for setting bones with... bones?" + icon = 'icons/obj/mining.dmi' + icon_state = "bone setter_bone" + toolspeed = 0.85 diff --git a/code/modules/tgui/external.dm b/code/modules/tgui/external.dm index 565c595473..d858c2d6bf 100644 --- a/code/modules/tgui/external.dm +++ b/code/modules/tgui/external.dm @@ -74,7 +74,7 @@ * return bool If the user's input has been handled and the UI should update. */ /datum/proc/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) - // SHOULD_CALL_PARENT(TRUE) + SHOULD_CALL_PARENT(TRUE) // If UI is not interactive or usr calling Topic is not the UI user, bail. if(!ui || ui.status != UI_INTERACTIVE) return TRUE @@ -145,6 +145,7 @@ * client/verb/uiclose(), which closes the ui window */ /datum/proc/ui_close(mob/user) + SIGNAL_HANDLER /** * verb diff --git a/code/modules/tgui/tgui.dm b/code/modules/tgui/tgui.dm index 55497b150a..c739d69d0b 100644 --- a/code/modules/tgui/tgui.dm +++ b/code/modules/tgui/tgui.dm @@ -58,11 +58,16 @@ src.interface = interface if(title) src.title = title - src.state = src_object.ui_state() + src.state = src_object.ui_state(user) // Deprecated if(ui_x && ui_y) src.window_size = list(ui_x, ui_y) +/datum/tgui/Destroy() + user = null + src_object = null + return ..() + /** * public * @@ -295,6 +300,7 @@ process_status() if(src_object.ui_act(act_type, payload, src, state)) SStgui.update_uis(src_object) + usr?.client?.last_activity = world.time return FALSE switch(type) if("ready") diff --git a/code/modules/tgui/tgui_alert.dm b/code/modules/tgui/tgui_alert.dm index d144588ad9..83a26c2963 100644 --- a/code/modules/tgui/tgui_alert.dm +++ b/code/modules/tgui/tgui_alert.dm @@ -8,8 +8,9 @@ * * title - The of the alert modal, shown on the top of the TGUI window. * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Set to zero for no timeout. + * * autofocus - The bool that controls if this alert should grab window focus. */ -/proc/tgui_alert(mob/user, message = null, title = null, list/buttons = list("Ok"), timeout = 0) +/proc/tgui_alert(mob/user, message = null, title = null, list/buttons = list("Ok"), timeout = 0, autofocus = TRUE) if (!user) user = usr if (!istype(user)) @@ -18,7 +19,7 @@ user = client.mob else return - var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout) + var/datum/tgui_modal/alert = new(user, message, title, buttons, timeout, autofocus) alert.ui_interact(user) alert.wait() if (alert) @@ -36,8 +37,9 @@ * * buttons - The options that can be chosen by the user, each string is assigned a button on the UI. * * callback - The callback to be invoked when a choice is made. * * timeout - The timeout of the alert, after which the modal will close and qdel itself. Disabled by default, can be set to seconds otherwise. + * * autofocus - The bool that controls if this alert should grab window focus. */ -/proc/tgui_alert_async(mob/user, message = null, title = null, list/buttons = list("Ok"), datum/callback/callback, timeout = 0) +/proc/tgui_alert_async(mob/user, message = null, title = null, list/buttons = list("Ok"), datum/callback/callback, timeout = 0, autofocus = TRUE) if (!user) user = usr if (!istype(user)) @@ -46,7 +48,7 @@ user = client.mob else return - var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout) + var/datum/tgui_modal/async/alert = new(user, message, title, buttons, callback, timeout, autofocus) alert.ui_interact(user) /** @@ -68,13 +70,16 @@ var/start_time /// The lifespan of the tgui_modal, after which the window will close and delete itself. var/timeout + /// The bool that controls if this modal should grab window focus + var/autofocus /// Boolean field describing if the tgui_modal was closed by the user. var/closed -/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout) +/datum/tgui_modal/New(mob/user, message, title, list/buttons, timeout, autofocus) src.title = title src.message = message src.buttons = buttons.Copy() + src.autofocus = autofocus if (timeout) src.timeout = timeout start_time = world.time @@ -110,7 +115,8 @@ . = list( "title" = title, "message" = message, - "buttons" = buttons + "buttons" = buttons, + "autofocus" = autofocus ) if(timeout) @@ -140,8 +146,8 @@ /// The callback to be invoked by the tgui_modal upon having a choice made. var/datum/callback/callback -/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, message, title, buttons, timeout) +/datum/tgui_modal/async/New(mob/user, message, title, list/buttons, callback, timeout, autofocus) + ..(user, message, title, buttons, timeout, autofocus) src.callback = callback /datum/tgui_modal/async/Destroy(force, ...) diff --git a/code/modules/tgui/tgui_input_list.dm b/code/modules/tgui/tgui_input_list.dm index 242b69a934..a02dfac5f5 100644 --- a/code/modules/tgui/tgui_input_list.dm +++ b/code/modules/tgui/tgui_input_list.dm @@ -82,6 +82,7 @@ src.message = message src.buttons = list() src.buttons_map = list() + var/list/repeat_buttons = list() // Gets rid of illegal characters var/static/regex/whitelistedWords = regex(@{"([^\u0020-\u8000]+)"}) @@ -89,6 +90,9 @@ for(var/i in buttons) var/string_key = whitelistedWords.Replace("[i]", "") + //avoids duplicated keys E.g: when areas have the same name + string_key = avoid_assoc_duplicate_keys(string_key, repeat_buttons) + src.buttons += string_key src.buttons_map[string_key] = i @@ -144,7 +148,7 @@ if("choose") if (!(params["choice"] in buttons)) return - choice = buttons_map[params["choice"]] + set_choice(buttons_map[params["choice"]]) SStgui.close_uis(src) return TRUE if("cancel") @@ -152,6 +156,9 @@ closed = TRUE return TRUE +/datum/tgui_list_input/proc/set_choice(choice) + src.choice = choice + /** * # async tgui_list_input * @@ -162,23 +169,17 @@ var/datum/callback/callback /datum/tgui_list_input/async/New(mob/user, message, title, list/buttons, callback, timeout) - ..(user, title, message, buttons, timeout) + ..(user, message, title, buttons, timeout) src.callback = callback /datum/tgui_list_input/async/Destroy(force, ...) QDEL_NULL(callback) . = ..() -/datum/tgui_list_input/async/ui_close(mob/user) +/datum/tgui_list_input/async/set_choice(choice) . = ..() - qdel(src) - -/datum/tgui_list_input/async/ui_act(action, list/params) - . = ..() - if (!. || choice == null) - return - callback.InvokeAsync(choice) - qdel(src) + if(!isnull(src.choice)) + callback?.InvokeAsync(src.choice) /datum/tgui_list_input/async/wait() return diff --git a/code/modules/tgui/tgui_window.dm b/code/modules/tgui/tgui_window.dm index ae54b2dd3f..af6b5bdc74 100644 --- a/code/modules/tgui/tgui_window.dm +++ b/code/modules/tgui/tgui_window.dm @@ -258,7 +258,7 @@ if(istype(asset, /datum/asset/spritesheet)) var/datum/asset/spritesheet/spritesheet = asset send_message("asset/stylesheet", spritesheet.css_filename()) - send_message("asset/mappings", asset.get_url_mappings()) + send_raw_message(asset.get_serialized_url_mappings()) /** * private diff --git a/code/modules/tooltip/tooltip.dm b/code/modules/tooltip/tooltip.dm index 65e44cfbc6..725eca89db 100644 --- a/code/modules/tooltip/tooltip.dm +++ b/code/modules/tooltip/tooltip.dm @@ -119,15 +119,18 @@ Notes: //Includes sanity checks. /proc/closeToolTip(mob/user) if(istype(user)) - if(user.client && user.client.tooltips) - user.client.tooltips.hide() + if(user.client) + var/client/client = user.client + if(client.tooltips) + client.tooltips.hide() + deltimer(client.tip_timer) //delete any in-progress timer if the mouse is moved off the item before it finishes + client.tip_timer = null /** * # `get_tooltip_data()` * * If set, will return a list for the tooltip (that will also be put together in a `Join()`) - * However, if returning `null`, falls back to default behavior, which is `examine(src)`, and it will definitely include - * images since it is the default behavior + * However, if returning `null`, the tooltip will not be shown as #14942 changed it. * * Though no tooltips will be created for atoms that have `tooltips = FALSE` */ @@ -137,11 +140,12 @@ Notes: /atom/movable/MouseEntered(location, control, params) . = ..() if(tooltips) - if(!QDELETED(src) && usr.client.prefs.enable_tips) + if(!QDELETED(src) && usr?.client.prefs.enable_tips) var/list/tooltip_data = get_tooltip_data() if(length(tooltip_data)) var/examine_data = tooltip_data.Join("
") - openToolTip(usr, src, params, title = name, content = examine_data) + var/timedelay = max(usr.client.prefs.tip_delay * 0.01, 0.01) // I heard multiplying is faster, also runtimes from very low/negative numbers + usr.client.tip_timer = addtimer(CALLBACK(GLOBAL_PROC, .proc/openToolTip, usr, src, params, name, examine_data), timedelay, TIMER_STOPPABLE) /atom/movable/MouseExited(location, control, params) . = ..() @@ -150,3 +154,7 @@ Notes: /client/MouseDown(object, location, control, params) closeToolTip(usr) . = ..() + +/client + /// Timers are now handled by clients, not by doing a mess on the item and multiple people overwriting a single timer on the object, have fun. + var/tip_timer = null diff --git a/code/modules/unit_tests/_unit_tests.dm b/code/modules/unit_tests/_unit_tests.dm index 706a7a3910..c7f69fcaf1 100644 --- a/code/modules/unit_tests/_unit_tests.dm +++ b/code/modules/unit_tests/_unit_tests.dm @@ -57,8 +57,9 @@ // #include "crayons.dm" // #include "create_and_destroy.dm" // #include "designs.dm" -// #include "dynamic_ruleset_sanity.dm" +#include "dynamic_ruleset_sanity.dm" // #include "egg_glands.dm" +// #include "dynamic_ruleset_sanity.dm" // #include "emoting.dm" // #include "food_edibility_check.dm" // #include "greyscale_config.dm" diff --git a/code/modules/unit_tests/dynamic_ruleset_sanity.dm b/code/modules/unit_tests/dynamic_ruleset_sanity.dm new file mode 100644 index 0000000000..837e0b235c --- /dev/null +++ b/code/modules/unit_tests/dynamic_ruleset_sanity.dm @@ -0,0 +1,36 @@ +/// Verifies that roundstart dynamic rulesets are setup properly without external configuration. +/datum/unit_test/dynamic_roundstart_ruleset_sanity + +/datum/unit_test/dynamic_roundstart_ruleset_sanity/Run() + for (var/_ruleset in subtypesof(/datum/dynamic_ruleset/roundstart)) + var/datum/dynamic_ruleset/roundstart/ruleset = _ruleset + + var/has_scaling_cost = initial(ruleset.scaling_cost) + var/is_lone = initial(ruleset.flags) & (LONE_RULESET | HIGH_IMPACT_RULESET) + + if (has_scaling_cost && is_lone) + Fail("[ruleset] has a scaling_cost, but is also a lone/highlander ruleset.") + else if (!has_scaling_cost && !is_lone) + Fail("[ruleset] has no scaling cost, but is also not a lone/highlander ruleset.") + +/// Verifies that dynamic rulesets have unique antag_flag. +/datum/unit_test/dynamic_unique_antag_flags + +/datum/unit_test/dynamic_unique_antag_flags/Run() + var/list/known_antag_flags = list() + + for (var/datum/dynamic_ruleset/ruleset as anything in subtypesof(/datum/dynamic_ruleset)) + if (isnull(initial(ruleset.antag_datum))) + continue + + var/antag_flag = initial(ruleset.antag_flag) + + if (isnull(antag_flag)) + Fail("[ruleset] has a null antag_flag!") + continue + + if (antag_flag in known_antag_flags) + Fail("[ruleset] has a non-unique antag_flag [antag_flag] (used by [known_antag_flags[antag_flag]])!") + continue + + known_antag_flags[antag_flag] = ruleset diff --git a/code/modules/uplink/uplink_items/uplink_dangerous.dm b/code/modules/uplink/uplink_items/uplink_dangerous.dm index f13d11736f..0032f83d09 100644 --- a/code/modules/uplink/uplink_items/uplink_dangerous.dm +++ b/code/modules/uplink/uplink_items/uplink_dangerous.dm @@ -292,7 +292,5 @@ desc = "An ancient blade said to have ties with Lavaland's most inner demons. \ Allows you to cut from a far distance!" item = /obj/item/gun/magic/staff/motivation - cost = 20 - player_minimum = 20 + cost = 10 exclude_modes = list(/datum/game_mode/nuclear, /datum/game_mode/nuclear/clown_ops, /datum/game_mode/traitor/internal_affairs) - cant_discount = TRUE diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index 12e9f365d0..d0144269b7 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -91,9 +91,9 @@ /obj/vehicle/proc/after_add_occupant(mob/M) auto_assign_occupant_flags(M) -/obj/vehicle/proc/auto_assign_occupant_flags(mob/M) //override for each type that needs it. Default is assign driver if drivers is not at max. +/obj/vehicle/proc/auto_assign_occupant_flags(mob/M) //override for each type that needs it. Default is assign driver if drivers is not at max. if(driver_amount() < max_drivers) - add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION) + add_control_flags(M, VEHICLE_CONTROL_DRIVE) /obj/vehicle/proc/remove_occupant(mob/M) if(!istype(M)) diff --git a/code/modules/vehicles/cars/car.dm b/code/modules/vehicles/cars/car.dm index 08a7986fa3..0196abe82c 100644 --- a/code/modules/vehicles/cars/car.dm +++ b/code/modules/vehicles/cars/car.dm @@ -16,7 +16,7 @@ . = ..() initialize_controller_action_type(/datum/action/vehicle/sealed/remove_key, VEHICLE_CONTROL_DRIVE) if(car_traits & CAN_KIDNAP) - initialize_controller_action_type(/datum/action/vehicle/sealed/DumpKidnappedMobs, VEHICLE_CONTROL_DRIVE) + initialize_controller_action_type(/datum/action/vehicle/sealed/dump_kidnapped_mobs, VEHICLE_CONTROL_DRIVE) /obj/vehicle/sealed/car/driver_move(mob/user, direction) if(key_type && !is_key(inserted_key)) diff --git a/code/modules/vehicles/cars/clowncar.dm b/code/modules/vehicles/cars/clowncar.dm index 0b75dbf4db..c4da65a902 100644 --- a/code/modules/vehicles/cars/clowncar.dm +++ b/code/modules/vehicles/cars/clowncar.dm @@ -1,6 +1,6 @@ /obj/vehicle/sealed/car/clowncar name = "clown car" - desc = "How someone could even fit in there is beyond me." + desc = "How someone could even fit in there is byond me." icon_state = "clowncar" max_integrity = 150 armor = list("melee" = 70, "bullet" = 40, "laser" = 40, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 80) @@ -10,25 +10,36 @@ car_traits = CAN_KIDNAP key_type = /obj/item/bikehorn key_type_exact = FALSE - var/droppingoil = FALSE - var/RTDcooldown = 150 - var/lastRTDtime = 0 + ///list of headlight colors we use to pick through when we have party mode due to emag + var/headlight_colors = list(COLOR_RED, COLOR_ORANGE, COLOR_YELLOW, COLOR_LIME, COLOR_BRIGHT_BLUE, COLOR_CYAN, COLOR_PURPLE) + ///Cooldown time inbetween [/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice()] usages + var/dice_cooldown_time = 150 + ///How many times kidnappers in the clown car said thanks + var/thankscount = 0 + ///Current status of the cannon, alternates between CLOWN_CANNON_INACTIVE, CLOWN_CANNON_BUSY and CLOWN_CANNON_READY + var/cannonmode = CLOWN_CANNON_INACTIVE + var/light_on = TRUE + +/obj/vehicle/sealed/car/clowncar/Initialize() + . = ..() + START_PROCESSING(SSobj,src) + +/obj/vehicle/sealed/car/clowncar/process() + if(light_on && (obj_flags & EMAGGED)) + set_light_color(pick(headlight_colors)) /obj/vehicle/sealed/car/clowncar/generate_actions() . = ..() - initialize_controller_action_type(/datum/action/vehicle/sealed/horn/clowncar, VEHICLE_CONTROL_DRIVE) - -/obj/vehicle/sealed/car/clowncar/driver_move(mob/user, direction) //Prevent it from moving onto space - if(isspaceturf(get_step(src, direction))) - return FALSE - else - return ..() + initialize_controller_action_type(/datum/action/vehicle/sealed/horn, VEHICLE_CONTROL_DRIVE) + initialize_controller_action_type(/datum/action/vehicle/sealed/thank, VEHICLE_CONTROL_KIDNAPPED) /obj/vehicle/sealed/car/clowncar/auto_assign_occupant_flags(mob/M) if(ishuman(M)) var/mob/living/carbon/human/H = M if(H.mind && HAS_TRAIT(H.mind, TRAIT_CLOWN_MENTALITY)) //Ensures only clowns can drive the car. (Including more at once) - add_control_flags(M, VEHICLE_CONTROL_DRIVE|VEHICLE_CONTROL_PERMISSION) + add_control_flags(H, VEHICLE_CONTROL_DRIVE) + RegisterSignal(H, COMSIG_MOB_CLICKON, .proc/fire_cannon_at) + M.log_message("has entered [src] as a possible driver", LOG_ATTACK) return add_control_flags(M, VEHICLE_CONTROL_KIDNAPPED) @@ -36,106 +47,195 @@ . = ..() playsound(src, pick('sound/vehicles/clowncar_load1.ogg', 'sound/vehicles/clowncar_load2.ogg'), 75) +/obj/vehicle/sealed/car/clowncar/after_add_occupant(mob/M, control_flags) + . = ..() + if(return_controllers_with_flag(VEHICLE_CONTROL_KIDNAPPED).len >= 30) + for(var/mob/voreman as anything in return_drivers()) + voreman.client.give_award(/datum/award/achievement/misc/round_and_full, voreman) + +/obj/vehicle/sealed/car/clowncar/attack_animal(mob/living/simple_animal/user, list/modifiers) + if((user.loc != src) || user.environment_smash & (ENVIRONMENT_SMASH_WALLS|ENVIRONMENT_SMASH_RWALLS)) + return ..() + +/obj/vehicle/sealed/car/clowncar/mob_exit(mob/M, silent = FALSE, randomstep = FALSE) + . = ..() + UnregisterSignal(M, COMSIG_MOB_CLICKON) + /obj/vehicle/sealed/car/clowncar/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir) . = ..() if(prob(33)) - visible_message("[src] spews out a ton of space lube!") + visible_message(span_danger("[src] spews out a ton of space lube!")) new /obj/effect/particle_effect/foam(loc) //YEET -/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user, attackchain_flags = NONE, damage_multiplier = 1) +/obj/vehicle/sealed/car/clowncar/attacked_by(obj/item/I, mob/living/user) . = ..() - if(istype(I, /obj/item/reagent_containers/food/snacks/grown/banana)) - var/obj/item/reagent_containers/food/snacks/grown/banana/banana = I - obj_integrity += min(banana.seed.potency, max_integrity-obj_integrity) - to_chat(user, "You use the [banana] to repair the [src]!") - qdel(banana) + if(!istype(I, /obj/item/reagent_containers/food/snacks/grown/banana)) + return + var/obj/item/reagent_containers/food/snacks/grown/banana/banana = I + obj_integrity += min(banana.seed.potency, max_integrity-obj_integrity) + to_chat(user, span_danger("You use the [banana] to repair the [src]!")) + qdel(banana) -/obj/vehicle/sealed/car/clowncar/Bump(atom/movable/M) +/obj/vehicle/sealed/car/clowncar/Bump(atom/bumped) . = ..() - if(isliving(M)) - if(ismegafauna(M)) + if(isliving(bumped)) + if(ismegafauna(bumped)) return - var/mob/living/L = M - if(iscarbon(L)) - var/mob/living/carbon/C = L - C.DefaultCombatKnockdown(40) //I play to make sprites go horizontal - L.visible_message("[src] rams into [L] and sucks him up!") //fuck off shezza this isn't ERP. - mob_forced_enter(L) + var/mob/living/hittarget_living = bumped + if(iscarbon(hittarget_living)) + var/mob/living/carbon/carb = hittarget_living + carb.DefaultCombatKnockdown(40) //I play to make sprites go horizontal + hittarget_living.visible_message(span_warning("[src] rams into [hittarget_living] and sucks [hittarget_living.p_them()] up!")) //fuck off shezza this isn't ERP. + mob_forced_enter(hittarget_living) playsound(src, pick('sound/vehicles/clowncar_ram1.ogg', 'sound/vehicles/clowncar_ram2.ogg', 'sound/vehicles/clowncar_ram3.ogg'), 75) - else if(istype(M, /turf/closed) || istype(M, /obj/machinery/door/airlock/external)) - visible_message("[src] rams into [M] and crashes!") - playsound(src, pick('sound/vehicles/clowncar_crash1.ogg', 'sound/vehicles/clowncar_crash2.ogg'), 75) - playsound(src, 'sound/vehicles/clowncar_crashpins.ogg', 75) - DumpMobs(TRUE) + log_combat(src, hittarget_living, "sucked up") + return + if(!istype(bumped, /turf/closed)) + return + visible_message(span_warning("[src] rams into [bumped] and crashes!")) + playsound(src, pick('sound/vehicles/clowncar_crash1.ogg', 'sound/vehicles/clowncar_crash2.ogg'), 75) + playsound(src, 'sound/vehicles/clowncar_crashpins.ogg', 75) + DumpMobs(TRUE) + log_combat(src, bumped, "crashed into", null, "dumping all passengers") /obj/vehicle/sealed/car/clowncar/emag_act(mob/user) . = ..() if(obj_flags & EMAGGED) return obj_flags |= EMAGGED - to_chat(user, "You scramble the clowncar child safety lock and a panel with 6 colorful buttons appears!") - initialize_controller_action_type(/datum/action/vehicle/sealed/RollTheDice, VEHICLE_CONTROL_DRIVE) + to_chat(user, span_danger("You scramble \the [src]'s child safety lock, and a panel with six colorful buttons appears!")) + initialize_controller_action_type(/datum/action/vehicle/sealed/roll_the_dice, VEHICLE_CONTROL_DRIVE) + initialize_controller_action_type(/datum/action/vehicle/sealed/cannon, VEHICLE_CONTROL_DRIVE) return TRUE -/obj/vehicle/sealed/car/clowncar/Destroy() +/obj/vehicle/sealed/car/clowncar/obj_destruction(damage_flag) playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) + STOP_PROCESSING(SSobj,src) return ..() -/obj/vehicle/sealed/car/clowncar/after_move(direction) - . = ..() - if(droppingoil) - new /obj/effect/decal/cleanable/oil/slippery(loc) - -/obj/vehicle/sealed/car/clowncar/proc/RollTheDice(mob/user) - if(world.time - lastRTDtime < RTDcooldown) - to_chat(user, "The button panel is currently recharging.") +/** + * Plays a random funky effect + * Only available while car is emagged + * Possible effects: + * * Spawn bananapeel + * * Spawn random reagent foam + * * Make the clown car look like a singulo temporarily + * * Spawn Laughing chem gas + * * Drop oil + * * Fart and make everyone nearby laugh + */ +/obj/vehicle/sealed/car/clowncar/proc/roll_the_dice(mob/user) + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_CLOWNCAR_RANDOMNESS)) + to_chat(user, span_notice("The button panel is currently recharging.")) return - lastRTDtime = world.time - var/randomnum = rand(1,6) - switch(randomnum) + TIMER_COOLDOWN_START(src, COOLDOWN_CLOWNCAR_RANDOMNESS, dice_cooldown_time) + switch(rand(1,6)) if(1) - visible_message("[user] has pressed one of the colorful buttons on [src] and a special banana peel drops out of it.") + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and a special banana peel drops out of it.")) new /obj/item/grown/bananapeel/specialpeel(loc) if(2) - visible_message("[user] has pressed one of the colorful buttons on [src] and unknown chemicals flood out of it.") - var/datum/reagents/R = new/datum/reagents(300) - R.my_atom = src - R.add_reagent(get_random_reagent_id(), 100) + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and unknown chemicals flood out of it.")) + var/datum/reagents/randomchems = new/datum/reagents(300) + randomchems.my_atom = src + randomchems.add_reagent(get_random_reagent_id(), 100) var/datum/effect_system/foam_spread/foam = new - foam.set_up(200, loc, R) + foam.set_up(200, loc, randomchems) foam.start() if(3) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car turns on its singularity disguise system.") + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car turns on its singularity disguise system.")) icon = 'icons/obj/singularity.dmi' icon_state = "singularity_s1" - addtimer(CALLBACK(src, .proc/ResetIcon), 100) + addtimer(CALLBACK(src, .proc/reset_icon), 10 SECONDS) if(4) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car spews out a cloud of laughing gas.") - var/datum/reagents/R = new/datum/reagents(300) - R.my_atom = src - R.add_reagent(/datum/reagent/consumable/superlaughter, 50) + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car spews out a cloud of laughing gas.")) + var/datum/reagents/funnychems = new/datum/reagents(300) + funnychems.my_atom = src + funnychems.add_reagent(/datum/reagent/consumable/superlaughter, 50) var/datum/effect_system/smoke_spread/chem/smoke = new() - smoke.set_up(R, 4) + smoke.set_up(funnychems, 4) smoke.attach(src) smoke.start() if(5) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car starts dropping an oil trail.") - droppingoil = TRUE - addtimer(CALLBACK(src, .proc/StopDroppingOil), 30) + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car starts dropping an oil trail.")) + RegisterSignal(src, COMSIG_MOVABLE_MOVED, .proc/cover_in_oil) + addtimer(CALLBACK(src, .proc/stop_dropping_oil), 3 SECONDS) if(6) - visible_message("[user] has pressed one of the colorful buttons on [src] and the clown car lets out a comedic toot.") + visible_message(span_danger("[user] presses one of the colorful buttons on [src], and the clown car lets out a comedic toot.")) playsound(src, 'sound/vehicles/clowncar_fart.ogg', 100) for(var/mob/living/L in orange(loc, 6)) L.emote("laughs") - for(var/mob/living/L in occupants) + for(var/mob/living/L as anything in occupants) L.emote("laughs") -/obj/vehicle/sealed/car/clowncar/proc/ResetIcon() +///resets the icon and iconstate of the clowncar after it was set to singulo states +/obj/vehicle/sealed/car/clowncar/proc/reset_icon() icon = initial(icon) icon_state = initial(icon_state) -/obj/vehicle/sealed/car/clowncar/proc/StopDroppingOil() - droppingoil = FALSE +///Deploys oil when the clowncar moves in oil deploy mode +/obj/vehicle/sealed/car/clowncar/proc/cover_in_oil() + SIGNAL_HANDLER + new /obj/effect/decal/cleanable/oil/slippery(loc) + +///Stops dropping oil after the time has run up +/obj/vehicle/sealed/car/clowncar/proc/stop_dropping_oil() + UnregisterSignal(src, COMSIG_MOVABLE_MOVED) + +///Toggles the on and off state of the clown cannon that shoots random kidnapped people +/obj/vehicle/sealed/car/clowncar/proc/toggle_cannon(mob/user) + if(cannonmode == CLOWN_CANNON_BUSY) + to_chat(user, span_notice("Please wait for the vehicle to finish its current action first.")) + return + if(cannonmode) //canon active, deactivate + flick("clowncar_fromfire", src) + icon_state = "clowncar" + addtimer(CALLBACK(src, .proc/deactivate_cannon), 2 SECONDS) + playsound(src, 'sound/vehicles/clowncar_cannonmode2.ogg', 75) + visible_message(span_danger("The [src] starts going back into mobile mode.")) + else + canmove = FALSE //anchor and activate canon + flick("clowncar_tofire", src) + icon_state = "clowncar_fire" + visible_message(span_danger("The [src] opens up and reveals a large cannon.")) + addtimer(CALLBACK(src, .proc/activate_cannon), 2 SECONDS) + playsound(src, 'sound/vehicles/clowncar_cannonmode1.ogg', 75) + cannonmode = CLOWN_CANNON_BUSY + +///Finalizes canon activation +/obj/vehicle/sealed/car/clowncar/proc/activate_cannon() + // mouse_pointer = 'icons/effects/mouse_pointers/mecha_mouse.dmi' + cannonmode = CLOWN_CANNON_READY + for(var/mob/living/driver as anything in return_controllers_with_flag(VEHICLE_CONTROL_DRIVE)) + driver.update_mouse_pointer() + +///Finalizes canon deactivation +/obj/vehicle/sealed/car/clowncar/proc/deactivate_cannon() + canmove = TRUE + // mouse_pointer = null + cannonmode = CLOWN_CANNON_INACTIVE + for(var/mob/living/driver as anything in return_controllers_with_flag(VEHICLE_CONTROL_DRIVE)) + driver.update_mouse_pointer() + +///Fires the cannon where the user clicks +/obj/vehicle/sealed/car/clowncar/proc/fire_cannon_at(mob/user, atom/A, params) + SIGNAL_HANDLER + if(cannonmode != CLOWN_CANNON_READY || !length(return_controllers_with_flag(VEHICLE_CONTROL_KIDNAPPED))) + return NONE + var/mob/living/unlucky_sod = pick(return_controllers_with_flag(VEHICLE_CONTROL_KIDNAPPED)) + mob_exit(unlucky_sod, TRUE) + flick("clowncar_recoil", src) + playsound(src, pick('sound/vehicles/carcannon1.ogg', 'sound/vehicles/carcannon2.ogg', 'sound/vehicles/carcannon3.ogg'), 75) + unlucky_sod.throw_at(A, 10, 2) + log_combat(user, unlucky_sod, "fired", src, "towards [A]") //this doesn't catch if the mob hits something between the car and the target + return COMSIG_MOB_CANCEL_CLICKON + +///Increments the thanks counter every time someone thats been kidnapped thanks the driver +/obj/vehicle/sealed/car/clowncar/proc/increment_thanks_counter() + thankscount++ + if(thankscount < 100) + return + for(var/mob/busdriver as anything in return_drivers()) + busdriver.client.give_award(/datum/award/achievement/misc/the_best_driver, busdriver) /obj/vehicle/sealed/car/clowncar/twitch_plays key_type = null @@ -144,12 +244,10 @@ /obj/vehicle/sealed/car/clowncar/twitch_plays/Initialize() . = ..() AddComponent(/datum/component/twitch_plays/simple_movement) - START_PROCESSING(SSfastprocess, src) GLOB.poi_list |= src notify_ghosts("Twitch Plays: Clown Car") /obj/vehicle/sealed/car/clowncar/twitch_plays/Destroy() - STOP_PROCESSING(SSfastprocess, src) GLOB.poi_list -= src return ..() @@ -158,3 +256,4 @@ if(!dir) return driver_move(null, dir) + ..() diff --git a/code/modules/vehicles/vehicle_actions.dm b/code/modules/vehicles/vehicle_actions.dm index 5de2c8961f..8b2c72008c 100644 --- a/code/modules/vehicles/vehicle_actions.dm +++ b/code/modules/vehicles/vehicle_actions.dm @@ -126,44 +126,70 @@ desc = "Honk your classy horn." button_icon_state = "car_horn" var/hornsound = 'sound/items/carhorn.ogg' - var/last_honk_time /datum/action/vehicle/sealed/horn/Trigger() - if(world.time - last_honk_time > 20) - vehicle_entered_target.visible_message("[vehicle_entered_target] loudly honks") - to_chat(owner, "You press the vehicle's horn.") - playsound(vehicle_entered_target, hornsound, 75) - last_honk_time = world.time + if(TIMER_COOLDOWN_CHECK(src, COOLDOWN_CAR_HONK)) + return + TIMER_COOLDOWN_START(src, COOLDOWN_CAR_HONK, 2 SECONDS) + vehicle_entered_target.visible_message(span_danger("[vehicle_entered_target] loudly honks!")) + to_chat(owner, span_notice("You press [vehicle_entered_target]'s horn.")) + if(istype(vehicle_target.inserted_key, /obj/item/bikehorn)) + vehicle_target.inserted_key.attack_self(owner) //The bikehorn plays a sound instead + return + playsound(vehicle_entered_target, hornsound, 75) -/datum/action/vehicle/sealed/horn/clowncar/Trigger() - if(world.time - last_honk_time > 20) - vehicle_entered_target.visible_message("[vehicle_entered_target] loudly honks") - to_chat(owner, "You press the vehicle's horn.") - last_honk_time = world.time - if(vehicle_target.inserted_key) - vehicle_target.inserted_key.attack_self(owner) //The key plays a sound - else - playsound(vehicle_entered_target, hornsound, 75) - -/datum/action/vehicle/sealed/DumpKidnappedMobs - name = "Dump kidnapped mobs" +/datum/action/vehicle/sealed/dump_kidnapped_mobs + name = "Dump Kidnapped Mobs" desc = "Dump all objects and people in your car on the floor." button_icon_state = "car_dump" -/datum/action/vehicle/sealed/DumpKidnappedMobs/Trigger() - vehicle_entered_target.visible_message("[vehicle_entered_target] starts dumping the people inside of it.") +/datum/action/vehicle/sealed/dump_kidnapped_mobs/Trigger() + vehicle_entered_target.visible_message(span_danger("[vehicle_entered_target] starts dumping the people inside of it.")) vehicle_entered_target.DumpSpecificMobs(VEHICLE_CONTROL_KIDNAPPED) -/datum/action/vehicle/sealed/RollTheDice - name = "Press a colorful button" +/datum/action/vehicle/sealed/roll_the_dice + name = "Press Colorful Button" desc = "Press one of those colorful buttons on your display panel!" button_icon_state = "car_rtd" -/datum/action/vehicle/sealed/RollTheDice/Trigger() - if(istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) - var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target - C.RollTheDice(owner) +/datum/action/vehicle/sealed/roll_the_dice/Trigger() + if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) + return + var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target + C.roll_the_dice(owner) + +/datum/action/vehicle/sealed/cannon + name = "Toggle Siege Mode" + desc = "Destroy them with their own fodder!" + button_icon_state = "car_cannon" + +/datum/action/vehicle/sealed/cannon/Trigger() + if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) + return + var/obj/vehicle/sealed/car/clowncar/C = vehicle_entered_target + C.toggle_cannon(owner) + + +/datum/action/vehicle/sealed/thank + name = "Thank the Clown Car Driver" + desc = "They're just doing their job." + button_icon_state = "car_thanktheclown" + COOLDOWN_DECLARE(thank_time_cooldown) + + +/datum/action/vehicle/sealed/thank/Trigger() + if(!istype(vehicle_entered_target, /obj/vehicle/sealed/car/clowncar)) + return + if(!COOLDOWN_FINISHED(src, thank_time_cooldown)) + return + COOLDOWN_START(src, thank_time_cooldown, 6 SECONDS) + var/obj/vehicle/sealed/car/clowncar/clown_car = vehicle_entered_target + var/mob/living/carbon/human/clown = pick(clown_car.return_drivers()) + if(!clown) + return + owner.say("Thank you for the fun ride, [clown.name]!") + clown_car.increment_thanks_counter() /datum/action/vehicle/ridden/scooter/skateboard/ollie @@ -197,7 +223,9 @@ L.Move(landing_turf, vehicle_target.dir) passtable_off(L, VEHICLE_TRAIT) V.pass_flags &= ~PASSTABLE - if(locate(/obj/structure/table) in V.loc.contents) + if((locate(/obj/structure/table) in V.loc.contents) || (locate(/obj/structure/fluff/railing) in V.loc.contents)) + if(locate(/obj/structure/fluff/railing) in V.loc.contents) + L.client.give_award(/datum/award/achievement/misc/tram_surfer, L) V.grinding = TRUE V.icon_state = "[V.board_icon]-grind" addtimer(CALLBACK(V, /obj/vehicle/ridden/scooter/skateboard/.proc/grind), 2) diff --git a/code/modules/vending/cigarette.dm b/code/modules/vending/cigarette.dm index 0f26abde1d..fa4247575f 100644 --- a/code/modules/vending/cigarette.dm +++ b/code/modules/vending/cigarette.dm @@ -14,7 +14,8 @@ /obj/item/storage/fancy/rollingpapers = 5) contraband = list(/obj/item/lighter = 3, /obj/item/clothing/mask/vape = 5, - /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1) + /obj/item/storage/fancy/cigarettes/cigpack_shadyjims = 1, + /obj/item/clothing/mask/cigarette/dart = 3) premium = list(/obj/item/storage/fancy/cigarettes/cigpack_robustgold = 3, /obj/item/storage/fancy/cigarettes/cigars = 1, /obj/item/storage/fancy/cigarettes/cigars/havana = 1, diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 6adc9d38e6..8822ef2ff0 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -15,9 +15,9 @@ /obj/item/clothing/glasses/monocle = 3, /obj/item/clothing/suit/jacket = 4, /obj/item/clothing/suit/jacket/flannel = 4, - /obj/item/clothing/suit/jacket/flannel/red = 4, - /obj/item/clothing/suit/jacket/flannel/aqua = 4, - /obj/item/clothing/suit/jacket/flannel/brown = 4, + /obj/item/clothing/suit/toggle/jacket/flannel/red = 4, + /obj/item/clothing/suit/toggle/jacket/flannel/aqua = 4, + /obj/item/clothing/suit/toggle/jacket/flannel/brown = 4, /obj/item/clothing/suit/jacket/puffer/vest = 4, /obj/item/clothing/suit/jacket/puffer = 4, /obj/item/clothing/suit/hooded/cloak/david = 4, @@ -219,7 +219,17 @@ /obj/item/clothing/under/misc/corporateuniform = 5, /obj/item/clothing/suit/hooded/wintercoat/polychromic = 5, /obj/item/clothing/suit/toggle/wbreakpoly/polychromic = 5, - /obj/item/clothing/shoes/sneakers/poly/polychromic = 10) + /obj/item/clothing/shoes/sneakers/poly/polychromic = 10, + /obj/item/clothing/suit/toggle/jacket/fancytrench = 4, + /obj/item/clothing/suit/toggle/jacket/greenjacket = 4, + /obj/item/clothing/suit/jacket/gentlecoat = 4, + /obj/item/clothing/suit/jacket/gothicshirtcross = 4, + /obj/item/clothing/suit/jacket/gothicshirt = 4, + /obj/item/clothing/suit/jacket/gothiccoat = 4, + /obj/item/clothing/suit/jacket/heartcoat = 4, + /obj/item/clothing/suit/jacket/purplehoodie = 4, + /obj/item/clothing/suit/jacket/bluehoodie = 4, + /obj/item/clothing/suit/toggle/jacket/whitehoodie = 4) refill_canister = /obj/item/vending_refill/clothing default_price = PRICE_CHEAP extra_price = PRICE_BELOW_NORMAL diff --git a/config/dynamic.json b/config/dynamic.json new file mode 100644 index 0000000000..bed7b4b387 --- /dev/null +++ b/config/dynamic.json @@ -0,0 +1,138 @@ +{ + "Dynamic": {}, + "Roundstart": { + "Traitors": { + "cost": 8, + "scaling_cost": 9, + "weight": 5, + "required_candidates": 1, + "minimum_required_age": 0, + "requirements": [ + 101, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10, + 10 + ], + "antag_cap": { + "denominator": 24 + }, + "protected_roles": [ + "Prisoner", + "Security Officer", + "Warden", + "Detective", + "Head of Security", + "Captain" + ], + "restricted_roles": [ + "Cyborg" + ] + }, + + "Blood Brothers": { + "weight": 0 + }, + + "Changelings": { + "weight": 3 + }, + + "Heretics": { + "weight": 3 + }, + + "Wizard": { + "weight": 3 + }, + + "Blood Cult": { + "weight": 2 + }, + + "Nuclear Emergency": { + "weight": 3 + }, + + "Revolution": { + "weight": 2 + }, + + "Clock Cult": { + "weight": 3 + } + }, + + "Midround": { + "Syndicate Sleeper Agent": { + "weight": 7 + }, + + "Malfunctioning AI": { + "weight": 3 + }, + + "Wizard": { + "weight": 2 + }, + + "Nuclear Assault": { + "weight": 3 + }, + + "Blob": { + "weight": 2 + }, + + "Blob Infection": { + "weight": 2 + }, + + "Alien Infestation": { + "weight": 3 + }, + + "Nightmare": { + "weight": 4 + }, + + "Space Dragon": { + "weight": 3 + }, + + "Abductors": { + "weight": 3 + }, + + "Swarmers": { + "weight": 3 + }, + + "Space Ninja": { + "weight": 4 + }, + + "Spiders": { + "weight": 0 + } + }, + + "Latejoin": { + "Syndicate Infiltrator": { + "weight": 7 + }, + + "Provocateur": { + "weight": 2 + }, + + "Heretic Smuggler": { + "weight": 4 + } + } +} diff --git a/config/entries/connections.txt b/config/entries/connections.txt index 6351a77fcf..41df00bc40 100644 --- a/config/entries/connections.txt +++ b/config/entries/connections.txt @@ -2,9 +2,12 @@ ## Requires database #PANIC_BUNKER -## If a player connects during a bunker with less then or this amount of living time (Minutes), we deny the connection +## If a player connects during a bunker with less then or this amount of living time (Minutes), we deny the connection. Set to -1 to disable criteria. #PANIC_BUNKER_LIVING 90 +## The above but for VPN connections. Set to -1 to disable criteria. You can set the above to disabled and set this to only enforce bunker on VPNs. +#PANIC_BUNKER_LIVING_VPN 120 + ## The message the Panic Bunker gives when someone is rejected by it ## %minutes% is replaced with PANIC_BUNKER_LIVING on runtime, remove it if you don't want this #PANIC_BUNKER_MESSAGE Sorry, but the server is currently not accepting connections from players with less than %minutes% minutes of living time. diff --git a/config/entries/dynamic.txt b/config/entries/dynamic.txt deleted file mode 100644 index e08fb7634d..0000000000 --- a/config/entries/dynamic.txt +++ /dev/null @@ -1,318 +0,0 @@ -## Dynamic storytellers weights: how likely each storyteller is to show up. This is adjusted by voting and recency. -STORYTELLER_WEIGHT CHAOTIC 2 -STORYTELLER_WEIGHT TEAMWORK 4 -STORYTELLER_WEIGHT CONVERSION 0 -STORYTELLER_WEIGHT RANDOM 2 -STORYTELLER_WEIGHT CLASSIC 6 -STORYTELLER_WEIGHT INTRIGUE 6 -STORYTELLER_WEIGHT STORY 6 -STORYTELLER_WEIGHT CALM 6 -STORYTELLER_WEIGHT EXTENDED 0 - -## Dynamic storyteller minimum player coutns: how many players before this storyteller can be rolled. -STORYTELLER_MIN_PLAYERS CHAOTIC 30 -STORYTELLER_MIN_PLAYERS TEAMWORK 30 - -## If this is uncommented, Dynamic won't disable certain storytellers based on recent round threats -#NO_STORYTELLER_THREAT_REMOVAL - -## Injection delays: how long (in minutes) will pass before a midround or latejoin antag is injected. -DYNAMIC_MIDROUND_DELAY_MIN 5 -DYNAMIC_MIDROUND_DELAY_MAX 15 -DYNAMIC_LATEJOIN_DELAY_MIN 10 -DYNAMIC_LATEJOIN_DELAY_MAX 30 - -DYNAMIC_FIRST_MIDROUND_DELAY_MIN 20 -DYNAMIC_FIRST_MIDROUND_DELAY_MAX 30 -DYNAMIC_FIRST_LATEJOIN_DELAY_MIN 2 -DYNAMIC_FIRST_LATEJOIN_DELAY_MAX 30 - -## How many roundstart players required for high population override to take effect. -DYNAMIC_HIGH_POP_LIMIT 80 #80 instead of 55 because fewer robust players - -## Threat requirements for a second roundstart ruleset being drafted -DYNAMIC_SECOND_RULE_REQUIREMENTS 101 101 101 101 100 90 80 70 60 50 -## Threat requirements for a *third* roundstart ruleset being drafted -DYNAMIC_THIRD_RULE_REQUIREMENTS 101 101 101 101 101 100 90 80 70 60 -## As above, but if there's 79+ players -DYNAMIC_SECOND_RULE_HIGH_POP_REQUIREMENT 50 -DYNAMIC_THIRD_RULE_HIGH_POP_REQUIREMENT 60 - -## Pop range per requirement. -## If the value is five the range is: -## 0-4, 5-9, 10-14, 15-19, 20-24, 25-29, 30-34, 35-39, 40-54, 45+ -## If it is six the range is: -## 0-5, 6-11, 12-17, 18-23, 24-29, 30-35, 36-41, 42-47, 48-53, 54+ -## If it is seven the range is: -## 0-6, 7-13, 14-20, 21-27, 28-34, 35-41, 42-48, 49-55, 56-62, 63+ -## Options outside this range can be used, of course. -DYNAMIC_POP_PER_REQUIREMENT 9 # 9 instead of 6 because 1/3 of players are probably not doing much? - -## 1 -> 9, probability for this rule to be picked against other rules. -## Note that requirements must also be met, and some requirements are impossible to meet. -DYNAMIC_WEIGHT TRAITOR 5 -DYNAMIC_WEIGHT MALF_AI 1 -DYNAMIC_WEIGHT TRAITORBRO 4 -DYNAMIC_WEIGHT CHANGELING 1 -DYNAMIC_WEIGHT WIZARD 1 -DYNAMIC_WEIGHT CULT 3 -DYNAMIC_WEIGHT NUCLEAR 3 -DYNAMIC_WEIGHT REVOLUTION 2 -DYNAMIC_WEIGHT BLOODSUCKER 4 -# All below are impossible-by-default -DYNAMIC_WEIGHT EXTENDED 3 -DYNAMIC_WEIGHT CLOCKWORK_CULT 3 -DYNAMIC_WEIGHT CLOWNOPS 3 -DYNAMIC_WEIGHT DEVIL 3 -DYNAMIC_WEIGHT MONKEY 3 -DYNAMIC_WEIGHT METEOR 3 - -## Midround antags -DYNAMIC_WEIGHT MIDROUND_TRAITOR 9 -DYNAMIC_WEIGHT MIDROUND_MALF_AI 5 -DYNAMIC_WEIGHT MIDROUND_WIZARD 4 -DYNAMIC_WEIGHT MIDROUND_NUCLEAR 2 -DYNAMIC_WEIGHT BLOB 2 -DYNAMIC_WEIGHT XENOS 2 -DYNAMIC_WEIGHT NIGHTMARE 3 -DYNAMIC_WEIGHT SENTIENT_DISEASE 4 -DYNAMIC_WEIGHT REVENANT 2 -DYNAMIC_WEIGHT SLAUGHTER_DEMON 1 -DYNAMIC_WEIGHT ABDUCTORS 3 -DYNAMIC_WEIGHT SPACE_NINJA 3 - -## Events -DYNAMIC_WEIGHT SPIDERS 5 -DYNAMIC_WEIGHT VENTCLOG_NORMAL 3 -DYNAMIC_WEIGHT VENTCLOG_THREATENING 3 -DYNAMIC_WEIGHT VENTCLOG_CATASTROPHIC 3 -DYNAMIC_WEIGHT ION_STORM 7 -DYNAMIC_WEIGHT METEOR_WAVE_NORMAL 3 -DYNAMIC_WEIGHT METEOR_WAVE_THREATENING 2 -DYNAMIC_WEIGHT METEOR_WAVE_CATASTROPHIC 1 -DYNAMIC_WEIGHT PIRATES 8 -DYNAMIC_WEIGHT ANOMALY_BLUESPACE 2 -DYNAMIC_WEIGHT ANOMALY_FLUX 2 -DYNAMIC_WEIGHT ANOMALY_GRAVITATIONAL 2 -DYNAMIC_WEIGHT ANOMALY_PYROCLASTIC 2 -DYNAMIC_WEIGHT ANOMALY_VORTEX 2 -DYNAMIC_WEIGHT BRAND_INTELLIGENCE 1 -DYNAMIC_WEIGHT CARP_MIGRATION 7 -DYNAMIC_WEIGHT COMMUNICATIONS_BLACKOUT 2 -DYNAMIC_WEIGHT PROCESSOR_OVERLOAD 2 -DYNAMIC_WEIGHT SPACE_DUST 2 -DYNAMIC_WEIGHT MAJOR_DUST 1 -DYNAMIC_WEIGHT ELECTRICAL_STORM 2 -DYNAMIC_WEIGHT HEART_ATTACK 2 -DYNAMIC_WEIGHT RADIATION_STORM 1 - -## Latejoin antags -DYNAMIC_WEIGHT LATEJOIN_TRAITOR 7 -DYNAMIC_WEIGHT LATEJOIN_REVOLUTION 2 -DYNAMIC_WEIGHT LATEJOIN_BLOODSUCKER 4 -DYNAMIC_WEIGHT LATEJOIN_COLLECTOR 5 - -## Threat cost. This is decreased from the mode's threat when the rule is executed. -DYNAMIC_COST TRAITOR 10 -DYNAMIC_COST MALF_AI 35 -DYNAMIC_COST TRAITORBRO 10 -DYNAMIC_COST CHANGELING 30 -DYNAMIC_COST WIZARD 30 -DYNAMIC_COST CULT 35 -DYNAMIC_COST NUCLEAR 45 -DYNAMIC_COST REVOLUTION 40 -DYNAMIC_cOST BLOODSUCKER 15 -DYNAMIC_COST EXTENDED 0 -DYNAMIC_COST CLOCKWORK_CULT 35 -DYNAMIC_COST CLOWNOPS 40 -DYNAMIC_COST DEVIL 0 -DYNAMIC_COST MONKEY 0 -DYNAMIC_COST METEOR 0 - -## Midround antags -DYNAMIC_COST MIDROUND_TRAITOR 10 -DYNAMIC_COST MIDROUND_MALF_AI 35 -DYNAMIC_COST MIDROUND_WIZARD 20 -DYNAMIC_COST MIDROUND_NUCLEAR 35 -DYNAMIC_COST BLOB 10 -DYNAMIC_COST XENOS 20 -DYNAMIC_COST NIGHTMARE 10 -DYNAMIC_COST SENTIENT_DISEASE 5 -DYNAMIC_COST REVENANT 5 -DYNAMIC_COST SLAUGHTER_DEMON 15 -DYNAMIC_COST ABDUCTORS 10 -DYNAMIC_COST SPACE_NINJA 15 - -## Events -DYNAMIC_COST SPIDERS 10 -DYNAMIC_COST VENTCLOG_NORMAL 2 -DYNAMIC_COST VENTCLOG_THREATENING 5 -DYNAMIC_COST VENTCLOG_CATASTROPHIC 15 -DYNAMIC_COST ION_STORM 3 -DYNAMIC_COST METEOR_WAVE_NORMAL 15 -DYNAMIC_COST METEOR_WAVE_THREATENING 25 -DYNAMIC_COST METEOR_WAVE_CATASTROPHIC 40 -DYNAMIC_COST PIRATES 10 -DYNAMIC_COST ANOMALY_BLUESPACE 3 -DYNAMIC_COST ANOMALY_FLUX 2 -DYNAMIC_COST ANOMALY_GRAVITATIONAL 3 -DYNAMIC_COST ANOMALY_PYROCLASTIC 5 -DYNAMIC_COST ANOMALY_VORTEX 5 -DYNAMIC_COST BRAND_INTELLIGENCE 5 -DYNAMIC_COST CARP_MIGRATION 3 -DYNAMIC_COST COMMUNICATIONS_BLACKOUT 5 -DYNAMIC_COST PROCESSOR_OVERLOAD 5 -DYNAMIC_COST SPACE_DUST 2 -DYNAMIC_COST MAJOR_DUST 4 -DYNAMIC_COST ELECTRICAL_STORM 1 -DYNAMIC_COST HEART_ATTACK 1 -DYNAMIC_COST RADIATION_STORM 3 - -## Latejoin antags -DYNAMIC_COST LATEJOIN_TRAITOR 5 -DYNAMIC_COST LATEJOIN_REVOLUTION 20 -DYNAMIC_COST LATEJOIN_BLOODSUCKER 10 -DYNAMIC_COST LATEJOIN_COLLECTOR 1 - -## Rule will not be generated with threat levels below requirement at a pop value. Pop values are determined by dynamic's pop-per-requirement. -## By default it's 0-8, 9-17, 18-26, 27-35, 36-44, 45-53, 54-60, 61-69, 70-78, 79+. -## This means that 40 30 30 20 20 20 15 15 15 10 will not generate below 40 at 0-8, 30 at 9-17 etc. -DYNAMIC_REQUIREMENTS TRAITOR 50 50 50 50 50 50 50 50 50 50 -DYNAMIC_REQUIREMENTS TRAITORBRO 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS CHANGELING 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS WIZARD 101 101 60 60 50 50 50 50 50 50 -DYNAMIC_REQUIREMENTS CULT 101 101 101 60 50 50 50 50 50 50 -DYNAMIC_REQUIREMENTS NUCLEAR 101 101 101 60 50 50 50 50 50 50 -DYNAMIC_REQUIREMENTS REVOLUTION 101 101 101 60 50 50 50 50 50 50 -DYNAMIC_REQUIREMENTS EXTENDED 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS CLOCKWORK_CULT 101 101 101 70 60 60 50 50 50 50 -DYNAMIC_REQUIREMENTS CLOWNOPS 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS DEVIL 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS MONKEY 101 101 101 101 101 101 101 101 101 101 -DYNAMIC_REQUIREMENTS METEOR 101 101 101 101 101 101 101 101 101 101 - -## Midround antags -DYNAMIC_REQUIREMENTS MIDROUND_TRAITOR 30 25 20 15 15 15 15 15 15 15 -DYNAMIC_REQUIREMENTS MIDROUND_MALF_AI 101 101 70 50 50 50 40 30 30 30 -DYNAMIC_REQUIREMENTS MIDROUND_WIZARD 90 90 60 40 30 30 30 30 30 30 -DYNAMIC_REQUIREMENTS MIDROUND_NUCLEAR 90 90 90 80 70 60 50 40 40 40 -DYNAMIC_REQUIREMENTS BLOB 101 101 101 80 60 50 50 50 50 50 -DYNAMIC_REQUIREMENTS XENOS 101 101 101 70 50 50 50 50 50 50 -DYNAMIC_REQUIREMENTS NIGHTMARE 101 101 101 70 50 40 20 15 15 15 -DYNAMIC_REQUIREMENTS SENTIENT_DISEASE 30 30 20 20 15 10 10 10 10 5 -DYNAMIC_REQUIREMENTS REVENANT 30 30 30 30 20 15 15 15 15 15 -DYNAMIC_REQUIREMENTS SLAUGHTER_DEMON 101 101 101 90 80 70 60 50 50 50 -DYNAMIC_REQUIREMENTS ABDUCTORS 80 80 70 50 40 30 30 20 15 15 -DYNAMIC_REQUIREMENTS SPACE_NINJA 101 101 101 90 80 70 60 50 40 30 - -## Events -DYNAMIC_REQUIREMENTS SPIDERS 70 60 50 50 40 40 40 30 20 15 -DYNAMIC_REQUIREMENTS VENTCLOG 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS ION_STORM 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS METEOR_WAVE 60 50 40 30 30 30 30 30 30 30 -DYNAMIC_REQUIREMENTS PIRATES 70 60 50 50 40 40 40 30 20 15 -DYNAMIC_REQUIREMENTS ANOMALY_BLUESPACE 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS ANOMALY_FLUX 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS ANOMALY_GRAVITATIONAL 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS ANOMALY_PYROCLASTIC 10 10 10 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS ANOMALY_VORTEX 10 10 10 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS BRAND_INTELLIGENCE 10 10 10 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS CARP_MIGRATION 10 10 10 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS COMMUNICATIONS_BLACKOUT 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS PROCESSOR_OVERLOAD 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS SPACE_DUST 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS MAJOR_DUST 10 10 10 10 10 10 10 10 10 10 -DYNAMIC_REQUIREMENTS ELECTRICAL_STORM 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS HEART_ATTACK 5 5 5 5 5 5 5 5 5 5 -DYNAMIC_REQUIREMENTS RADIATION_STORM 5 5 5 5 5 5 5 5 5 5 - -## Latejoin antags -DYNAMIC_REQUIREMENTS LATEJOIN_TRAITOR 40 30 20 15 15 15 15 15 15 15 -DYNAMIC_REQUIREMENTS LATEJOIN_REVOLUTION 101 101 70 40 40 40 40 40 40 40 -DYNAMIC_REQUIREMENTS LATEJOIN_BLOODSUCKER 40 30 20 15 15 15 15 15 15 15 -DYNAMIC_REQUIREMENTS LATEJOIN_COLLECTOR 10 10 10 10 10 10 10 10 10 10 - -## An alternative, static requirement used instead when pop is over mode's high_pop_limit. -DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITOR 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MALF_AI 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT TRAITORBRO 101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CHANGELING 101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT WIZARD 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CULT 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT NUCLEAR 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT REVOLUTION 50 -# All below are impossible-by-default -DYNAMIC_HIGH_POPULATION_REQUIREMENT EXTENDED 101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CLOCKWORK_CULT 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CLOWNOPS 101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT DEVIL 101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MONKEY 101 -DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR 101 - -## Midround antags -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_TRAITOR 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_MALF_AI 35 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_WIZARD 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MIDROUND_NUCLEAR 35 -DYNAMIC_HIGH_POPULATION_REQUIREMENT BLOB 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT XENOS 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT NIGHTMARE 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT SENTIENT_DISEASE 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT REVENANT 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT SLAUGHTER_DEMON 30 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ABDUCTORS 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT SPACE_NINJA 30 - -## Events -DYNAMIC_HIGH_POPULATION_REQUIREMENT SPIDERS 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT VENTCLOG 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ION_STORM 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT METEOR_WAVE 30 -DYNAMIC_HIGH_POPULATION_REQUIREMENT PIRATES 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_BLUESPACE 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_FLUX 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_GRAVITATIONAL 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_PYROCLASTIC 10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ANOMALY_VORTEX 10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT BRAND_INTELLIGENCE 10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT CARP_MIGRATION 10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT COMMUNICATIONS_BLACKOUT 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT PROCESSOR_OVERLOAD 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT SPACE_DUST 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT MAJOR_DUST 10 -DYNAMIC_HIGH_POPULATION_REQUIREMENT ELECTRICAL_STORM 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT HEART_ATTACK 5 -DYNAMIC_HIGH_POPULATION_REQUIREMENT RADIATION_STORM 5 - -## Latejoin antags -DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_TRAITOR 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_REVOLUTION 50 -DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_BLOODSUCKER 15 -DYNAMIC_HIGH_POPULATION_REQUIREMENT LATEJOIN_COLLECTOR 10 - -## Dynamic traitor stuff - -## Requirements for "hijack the shuttle" goals. -DYNAMIC_HIJACK_REQUIREMENTS 101 101 101 95 80 70 60 50 40 30 - -DYNAMIC_HIJACK_HIGH_POPULATION_REQUIREMENT 25 - -DYNAMIC_HIJACK_COST 10 - -DYNAMIC_GLORIOUS_DEATH_COST 5 - -DYNAMIC_ASSASSINATE_COST 2 - -## This requirement uses threat level, rather than current threat, which is why it's higher. -DYNAMIC_WAROPS_REQUIREMENT 60 - -DYNAMIC_WAROPS_COST 10 - -## Storyteller min players -# STORYTELLER_MIN_PLAYERS CHAOTIC 35 - -## Storyteller minimum chaos -# STORYTELLER_MIN_CHAOS CHAOTIC 75 - -## Storyteller maximum chaos -# STORYTELLER_MAX_CHAOS CHAOTIC 250 diff --git a/config/entries/gamemodes.txt b/config/entries/gamemodes.txt index f78c3743aa..7193bef584 100644 --- a/config/entries/gamemodes.txt +++ b/config/entries/gamemodes.txt @@ -51,6 +51,7 @@ CONTINUOUS WIZARD #CONTINUOUS MONKEY CONTINUOUS BLOODSUCKER CONTINUOUS HERESY +CONTINUOUS DYNAMIC ##Note: do not toggle continuous off for these modes, as they have no antagonists and would thus end immediately! diff --git a/config/entries/general.txt b/config/entries/general.txt index b426881de9..5fc3512c60 100644 --- a/config/entries/general.txt +++ b/config/entries/general.txt @@ -465,6 +465,9 @@ ECONOMY #Replaces standard extended/secret dichotomy with extended and calm/chaotic votes for dynamic. #DYNAMIC_VOTING +## Uncomment to enable dynamic ruleset config file. +DYNAMIC_CONFIG_ENABLED + ## Choose which Engine to start the round with. Weight is after the comma. Setting the weight to 0 removes the engine from rotation. BOX_RANDOM_ENGINE Box SM,3 BOX_RANDOM_ENGINE Box Tesla,3 diff --git a/config/entries/server.txt b/config/entries/server.txt index 0ffd5b21a3..2b905810cd 100644 --- a/config/entries/server.txt +++ b/config/entries/server.txt @@ -66,3 +66,9 @@ DISABLE_HIGH_POP_MC_MODE_AMOUNT 60 ## Uncomment to set the number of /world/Reboot()s before the DreamDaemon restarts itself. 0 means restart every round. Requires tgstation server tools. #ROUNDS_UNTIL_HARD_RESTART 10 + +## Force Gamemode ## +## Disallows roundstart gamemode voting if not null or uncommented +## Just input the gamemode lowercase in there, the thing will take a simple string for it +## Invalid gamemodes will default extended, have fun. +#FORCE_GAMEMODE diff --git a/config/spaceRuinBlacklist.txt b/config/spaceRuinBlacklist.txt index 969e4135f6..c62408b90c 100644 --- a/config/spaceRuinBlacklist.txt +++ b/config/spaceRuinBlacklist.txt @@ -53,3 +53,4 @@ #_maps/RandomRuins/SpaceRuins/spacehermit.dmm #_maps/RandomRuins/SpaceRuins/advancedlab.dmm #_maps/RandomRuins/SpaceRuins/spacediner.dmm +#_maps/RandomRuins/SpaceRuins/skelter.dmm diff --git a/html/changelog.html b/html/changelog.html index 734ebef9d1..e811c87938 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,6 +50,121 @@ -->
+

16 October 2021

+

Ryll/Shaps updated:

+
    +
  • Asay now supports pings (via using @[adminckey])
  • +
+

SandPoot updated:

+
    +
  • If a gamemode fails to load too many times, a safe gamemode will be loaded instead.
  • +
  • Dynamic is no longer hardcoded, and you can now set a gamemode to be forced in the configs.
  • +
  • Equip delays are a bit less weird now, only relevant for coders/people who use straight jackets... on themself, since that's the only thing that uses it right now.
  • +
  • Toggling arousal will properly update your sprite.
  • +
  • That also means no spam when moving it in your hands.
  • +
+

WanderingFox95 updated:

+
    +
  • Removes the quick attack loop (like TG did it)
  • +
+

dapnee updated:

+
    +
  • BEPIS to science tweak: moved the courtroom
  • +
+

keronshb updated:

+
    +
  • Adds the fat dart cigarette and to vendors
  • +
  • Adds the sprites for the fat dart
  • +
+ +

13 October 2021

+

Hatterhat updated:

+
    +
  • Contraband dealers are now embracing their inner Old Space Westerner. Look for the Old West Surplus Crate on your mildly-hacked cargo console today.
  • +
+

MrJWhit updated:

+
    +
  • Adds more fire-saftey closets and trashpiles to boxstation
  • +
  • Adds trashpiles to delta.
  • +
+ +

30 September 2021

+

Hatterhat updated:

+
    +
  • The xenomorph infestation on Moon Outpost 19 is significantly less prone to outbreaks, theoretically.
  • +
+

Putnam3145 updated:

+
    +
  • Minesweeper's "play on same board"
  • +
+ +

29 September 2021

+

Ghommie updated:

+
    +
  • Animals are no loner n(e)igh-immune to stuttering.
  • +
  • Silicons and animals won't keep stuttering or slurring forever after being struck by something that made them like that in the first place (such as a Blue Space Artillery).
  • +
+

Hatterhat updated:

+
    +
  • Reports from other stations' Wardens blasting themselves in sensitive places due to mishandled firearms has led to the introduction of a folding-stock safety for their shotgun, rendering it inoperable while the stock is folded.
  • +
  • Compact combat shotguns now stay compact when stored, by virtue of being unable to be extended while in a bag.
  • +
  • Reloading a shotgun with a shell clip now inflicts melee click delay.
  • +
+

LetterN updated:

+
    +
  • clowncar railgun- i mean gun
  • +
  • more achivements
  • +
  • syndie carp can pick up the disky (and is smart now)
  • +
  • hooks most of the achivements, all of the heretics work now
  • +
+

Putnam3145 updated:

+
    +
  • Lavaland can no longer be too cold for its natives to surivive
  • +
+

buffyuwu updated:

+
    +
  • flannels can now be toggled in style from buttoned to unbuttoned
  • +
  • ports more rp and existing tg assets with minor edits into loadout selection
  • +
+

keronshb updated:

+
    +
  • Ninja status back in the status menu
  • +
+

zeroisthebiggay updated:

+
    +
  • the monkey shuttle brig
  • +
  • meta gets a prison
  • +
  • the floating fire extinguisher
  • +
  • fucks the motivation's cost.
  • +
  • a new maintenance ambience
  • +
+ +

28 September 2021

+

zeroisthebiggay updated:

+
    +
  • helter skelter loot insanity
  • +
  • helter skelter comms insanity
  • +
+ +

27 September 2021

+

zeroisthebiggay updated:

+
    +
  • helter skelter actually spawns
  • +
  • code\modules\mob\living\simple_animal\hostile\plaguerat.dm:139:warning: newmouse: variable defined but not used
  • +
+ +

25 September 2021

+

buffyuwu updated:

+
    +
  • fixes accordions
  • +
+ +

24 September 2021

+

zeroisthebiggay updated:

+
    +
  • gremlins become shock immune
  • +
+

23 September 2021

KrabSpider updated:

    @@ -395,165 +510,6 @@
    • lets you select 4 prosthetic limbs instead of only 2
    - -

    16 August 2021

    -

    BlueWildrose updated:

    -
      -
    • Incapacitated mobs are blacklisted from being human-level intelligence sentience event candidates. This is particularly important due to slimes in BZ stasis on the station.
    • -
    -

    bunny232 updated:

    -
      -
    • Polyvitiligo actually changes your color now
    • -
    - -

    13 August 2021

    -

    Putnam3145 updated:

    -
      -
    • makes certain organs no longer have circular references
    • -
    - -

    12 August 2021

    -

    Arturlang updated:

    -
      -
    • Nonslimes and nonvampires will no longer be able to increase their blood to stupid heights
    • -
    -

    Putnam3145 updated:

    -
      -
    • Supermatter values use auxgm
    • -
    -

    cadyn updated:

    -
      -
    • precompile.sh and build.sh updated, auxmos set to 0.2.3 in dependencies.sh
    • -
    - -

    11 August 2021

    -

    timothyteakettle updated:

    -
      -
    • lets felinids, humans and moths have markings
    • -
    - -

    09 August 2021

    -

    Arturlang updated:

    -
      -
    • Nanite machinery overlays should now work properly
    • -
    • screen objects are now atom/movables instead
    • -
    • Update appearance is used for updating atoms now instead of update_icon and such
    • -
    -

    BlueWildrose updated:

    -
      -
    • Old gateway animation is back. Feedback is given that the gateway is open again.
    • -
    -

    Putnam3145 updated:

    -
      -
    • Rod of asclepius can now be used for revival surgery
    • -
    - -

    07 August 2021

    -

    BlueWildrose updated:

    -
      -
    • The black dress, pink tutu, the bathrobe, the kimonos, and the qipaos no longer have a missing pixel when wearing them with the feminine bodytype. They're also no longer adjustable (they have no sprite for the adjusted variant and therefore it would just make an error if someone did that.)
    • -
    -

    Putnam3145 updated:

    -
      -
    • Supernova rad storms are now half as likely per tick tweak: Supernovae don't announce they're ending if they never announced they're starting tweak: Supernovae say explicitly no rad storms can happen if they can't
    • -
    • Monstermos is back
    • -
    - -

    05 August 2021

    -

    Putnam3145 updated:

    -
      -
    • organs decay again
    • -
    - -

    04 August 2021

    -

    BlueWildrose updated:

    -
      -
    • The debrained overlay actually shows for brainless corpses now instead of showing a blue error.
    • -
    -

    timothyteakettle updated:

    -
      -
    • legs are no longer awful
    • -
    - -

    03 August 2021

    -

    zeroisthebiggay updated:

    -
      -
    • tempgun is a laser
    • -
    • bake mode is useful
    • -
    • tempgun has less shots
    • -
    • tempgun has more sprites
    • -
    - -

    02 August 2021

    -

    TripleShades updated:

    -
      -
    • Decorative (read: Station-safe) water tile in the code
    • -
    • Pubby's new water feature wont kill atmosphere anymore
    • -
    - -

    31 July 2021

    -

    MrJWhit updated:

    -
      -
    • Fixes some minor mistakes around space near boxstation.
    • -
    -

    TripleShades updated:

    -
      -
    • Fountain area to public mining station-side tweak: Moved around the tables and chairs and monitor at public mining station-side
    • -
    -

    WanderingFox95 updated:

    -
      -
    • Added new ruin maps: The Bathhouse, The Library, The Engineering outpost, The Hotsprings(un-cursed), Lust, Wrath and an alternate spawn for the BDM in the form of a mining outpost, based on the same Ruins on the Ice Moon. removed: A lot of the fun items within the ice moon-based ruins that would break mining even more and trading cards.
    • -
    • Yes, this includes that the lavaland version of the hot spring is literally just water and not cursed. tweak: Also "fixed" that only one version of the BDM ruin ever spawns. Not sure it needed fixing but even locally hosted, only blooddrunk2.dmm would spawn. Since I added another spawn for the BDM, I fixed that too.
    • -
    - -

    29 July 2021

    -

    EmeraldSundisk updated:

    -
      -
    • Adds decals between Virology and the general Medbay to provide clarity
    • -
    • Adds an airlock with access to the Engineering Cooling Loop
    • -
    • The Maintenance Theater now has a suitable amount of dust
    • -
    • Removed an errant entertainment monitor left in the morgue
    • -
    • Removed redundant scrubber piping in and around the bar and kitchen tweak: Slightly readjusts an airpipe to take advantage of newfound space tweak: The Toxins Lab has received (predominantly) visual adjustments as to render it more in line with the general science department tweak: Toxins Storage is no longer its own area and as such needn't worry about APCs
    • -
    • Hydroponics now has a proper APC as intended
    • -
    - -

    27 July 2021

    -

    Putnam3145 updated:

    -
      -
    • Generic fires work now
    • -
    • A knock-on effect of the HE pipe change is that space cooling is ~8.4x as powerful
    • -
    - -

    26 July 2021

    -

    SandPoot updated:

    -
      -
    • Removes a sneaky transform button on the vore panel.
    • -
    - -

    24 July 2021

    -

    MrJWhit updated:

    -
      -
    • Replaces the northwest maint room on box with a sadness room
    • -
    • Replaces bar stripper room with an arcade on boxstation
    • -
    • Squished the west bathrooms a bit and made a room to sell things on boxstation.
    • -
    • Southeast maint hallway on box is now ziggy and zaggier.
    • -
    • Fixed pipes being not connected with the recent map PR for boxstation.
    • -
    -

    Putnam3145 updated:

    -
      -
    • hallucination now bottoms out at 0
    • -
    • supermatter now causes only half the hallucinations
    • -
    -

    cadyn updated:

    -
      -
    • auxmos bump for dependencies.sh
    • -
    - -

    23 July 2021

    -

    silicons updated:

    -
      -
    • Batons are slightly more powerful.
    • -
GoonStation 13 Development Team diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index e2d22e5b59..71db5b168f 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -30068,3 +30068,82 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. - code_imp: cryogenics ain't a candidate for anomaly spawns anymore. buffyuwu: - rscadd: canvas and spray can are now sold in the fun vendor +2021-09-24: + zeroisthebiggay: + - balance: gremlins become shock immune +2021-09-25: + buffyuwu: + - bugfix: fixes accordions +2021-09-27: + zeroisthebiggay: + - bugfix: helter skelter actually spawns + - bugfix: 'code\modules\mob\living\simple_animal\hostile\plaguerat.dm:139:warning: + newmouse: variable defined but not used' +2021-09-28: + zeroisthebiggay: + - balance: helter skelter loot insanity + - bugfix: helter skelter comms insanity +2021-09-29: + Ghommie: + - rscdel: Animals are no loner n(e)igh-immune to stuttering. + - bugfix: Silicons and animals won't keep stuttering or slurring forever after being + struck by something that made them like that in the first place (such as a Blue + Space Artillery). + Hatterhat: + - balance: Reports from other stations' Wardens blasting themselves in sensitive + places due to mishandled firearms has led to the introduction of a folding-stock + safety for their shotgun, rendering it inoperable while the stock is folded. + - balance: Compact combat shotguns now stay compact when stored, by virtue of being + unable to be extended while in a bag. + - balance: Reloading a shotgun with a shell clip now inflicts melee click delay. + LetterN: + - rscadd: clowncar railgun- i mean gun + - rscadd: more achivements + - rscadd: syndie carp can pick up the disky (and is smart now) + - code_imp: hooks most of the achivements, all of the heretics work now + Putnam3145: + - bugfix: Lavaland can no longer be too cold for its natives to surivive + buffyuwu: + - bugfix: flannels can now be toggled in style from buttoned to unbuttoned + - rscadd: ports more rp and existing tg assets with minor edits into loadout selection + keronshb: + - refactor: Ninja status back in the status menu + zeroisthebiggay: + - bugfix: the monkey shuttle brig + - rscadd: meta gets a prison + - bugfix: the floating fire extinguisher + - balance: fucks the motivation's cost. + - soundadd: a new maintenance ambience +2021-09-30: + Hatterhat: + - rscdel: The xenomorph infestation on Moon Outpost 19 is significantly less prone + to outbreaks, theoretically. + Putnam3145: + - rscdel: Minesweeper's "play on same board" +2021-10-13: + Hatterhat: + - rscadd: Contraband dealers are now embracing their inner Old Space Westerner. + Look for the Old West Surplus Crate on your mildly-hacked cargo console today. + MrJWhit: + - rscadd: Adds more fire-saftey closets and trashpiles to boxstation + - rscadd: Adds trashpiles to delta. +2021-10-16: + Ryll/Shaps: + - rscadd: Asay now supports pings (via using @[adminckey]) + SandPoot: + - bugfix: If a gamemode fails to load too many times, a safe gamemode will be loaded + instead. + - code_imp: Dynamic is no longer hardcoded, and you can now set a gamemode to be + forced in the configs. + - bugfix: Equip delays are a bit less weird now, only relevant for coders/people + who use straight jackets... on themself, since that's the only thing that uses + it right now. + - bugfix: Toggling arousal will properly update your sprite. + - bugfix: That also means no spam when moving it in your hands. + WanderingFox95: + - bugfix: Removes the quick attack loop (like TG did it) + dapnee: + - rscadd: 'BEPIS to science tweak: moved the courtroom' + keronshb: + - rscadd: Adds the fat dart cigarette and to vendors + - imageadd: Adds the sprites for the fat dart diff --git a/icons/misc/language.dmi b/icons/misc/language.dmi index a33f914885..b24e9871c3 100644 Binary files a/icons/misc/language.dmi and b/icons/misc/language.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 28f28edaca..38f1d8e0af 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/mask.dmi b/icons/mob/clothing/mask.dmi index 17a49ea751..47ac700cbf 100644 Binary files a/icons/mob/clothing/mask.dmi and b/icons/mob/clothing/mask.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index 48759bf81c..c3502badc9 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/inhands/weapons/hammers_lefthand.dmi b/icons/mob/inhands/weapons/hammers_lefthand.dmi index 023dfeed89..988d64fde3 100644 Binary files a/icons/mob/inhands/weapons/hammers_lefthand.dmi and b/icons/mob/inhands/weapons/hammers_lefthand.dmi differ diff --git a/icons/mob/inhands/weapons/hammers_righthand.dmi b/icons/mob/inhands/weapons/hammers_righthand.dmi index f87d8c9b46..1e0e7c91bf 100644 Binary files a/icons/mob/inhands/weapons/hammers_righthand.dmi and b/icons/mob/inhands/weapons/hammers_righthand.dmi differ diff --git a/icons/obj/ammo.dmi b/icons/obj/ammo.dmi index e1caad8279..eb642648af 100644 Binary files a/icons/obj/ammo.dmi and b/icons/obj/ammo.dmi differ diff --git a/icons/obj/cigarettes.dmi b/icons/obj/cigarettes.dmi index 5c55efd67f..e4aa1917f4 100644 Binary files a/icons/obj/cigarettes.dmi and b/icons/obj/cigarettes.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index b6839de219..01ea212e6e 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index ab6cea5a3b..8e60dc7066 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/guns/projectile.dmi b/icons/obj/guns/projectile.dmi index 9d9279f148..1504b9f0c7 100644 Binary files a/icons/obj/guns/projectile.dmi and b/icons/obj/guns/projectile.dmi differ diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi index b84b195d14..f70f110078 100644 Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ diff --git a/icons/obj/surgery.dmi b/icons/obj/surgery.dmi index 58ba5fadd8..0f1ec3712d 100755 Binary files a/icons/obj/surgery.dmi and b/icons/obj/surgery.dmi differ diff --git a/modular_citadel/code/modules/client/loadout/suit.dm b/modular_citadel/code/modules/client/loadout/suit.dm index 92d94a41e8..066bcf14c7 100644 --- a/modular_citadel/code/modules/client/loadout/suit.dm +++ b/modular_citadel/code/modules/client/loadout/suit.dm @@ -27,22 +27,22 @@ /datum/gear/suit/jacketflannelblack // all of these are reskins of bomber jackets but with the vibe to make you look like a true lumberjack name = "Black flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel + path = /obj/item/clothing/suit/toggle/jacket/flannel subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketflannelred name = "Red flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel/red + path = /obj/item/clothing/suit/toggle/jacket/flannel/red subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketflannelaqua name = "Aqua flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel/aqua + path = /obj/item/clothing/suit/toggle/jacket/flannel/aqua subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketflannelbrown name = "Brown flannel jacket" - path = /obj/item/clothing/suit/jacket/flannel/brown + path = /obj/item/clothing/suit/toggle/jacket/flannel/brown subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS /datum/gear/suit/jacketleather @@ -97,6 +97,12 @@ name = "Brass winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/ratvar/fake +/datum/gear/suit/whitehoodie + name = "Soft hoodie" + path = /obj/item/clothing/suit/toggle/jacket/whitehoodie + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS + /datum/gear/suit/jacketbluehoodie name = "Blue hoodie" path = /obj/item/clothing/suit/jacket/bluehoodie @@ -132,6 +138,25 @@ loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION subcategory = LOADOUT_SUBCATEGORY_SUIT_GENERAL +/datum/gear/suit/gentlecoat + name = "Grey coat" + path = /obj/item/clothing/suit/jacket/gentlecoat + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_COATS + +/datum/gear/suit/greenjacket + name = "Green outdoorsman jacket" + path = /obj/item/clothing/suit/toggle/jacket/greenjacket + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_JACKETS + +/datum/gear/suit/fancytrench + name = "Grey trenchcoat" + path = /obj/item/clothing/suit/toggle/jacket/fancytrench + loadout_flags = LOADOUT_CAN_NAME | LOADOUT_CAN_DESCRIPTION + subcategory = LOADOUT_SUBCATEGORY_SUIT_COATS + + /datum/gear/suit/coat/polycoat name = "Polychromic winter coat" path = /obj/item/clothing/suit/hooded/wintercoat/polychromic diff --git a/sound/ambience/ambimaint10.ogg b/sound/ambience/ambimaint10.ogg new file mode 100644 index 0000000000..769f95f93d Binary files /dev/null and b/sound/ambience/ambimaint10.ogg differ diff --git a/sound/misc/bloop.ogg b/sound/misc/bloop.ogg new file mode 100644 index 0000000000..cfe1c24426 Binary files /dev/null and b/sound/misc/bloop.ogg differ diff --git a/sound/vehicles/carcannon1.ogg b/sound/vehicles/carcannon1.ogg new file mode 100644 index 0000000000..751fa6f754 Binary files /dev/null and b/sound/vehicles/carcannon1.ogg differ diff --git a/sound/vehicles/carcannon2.ogg b/sound/vehicles/carcannon2.ogg new file mode 100644 index 0000000000..7bc86d7cbc Binary files /dev/null and b/sound/vehicles/carcannon2.ogg differ diff --git a/sound/vehicles/carcannon3.ogg b/sound/vehicles/carcannon3.ogg new file mode 100644 index 0000000000..80407e553f Binary files /dev/null and b/sound/vehicles/carcannon3.ogg differ diff --git a/sound/vehicles/clowncar_cannonmode1.ogg b/sound/vehicles/clowncar_cannonmode1.ogg new file mode 100644 index 0000000000..aa21c8f990 Binary files /dev/null and b/sound/vehicles/clowncar_cannonmode1.ogg differ diff --git a/sound/vehicles/clowncar_cannonmode2.ogg b/sound/vehicles/clowncar_cannonmode2.ogg new file mode 100644 index 0000000000..931e146422 Binary files /dev/null and b/sound/vehicles/clowncar_cannonmode2.ogg differ diff --git a/tgstation.dme b/tgstation.dme index 204b69a11b..30c413815b 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -166,6 +166,7 @@ #include "code\__HELPERS\AStar.dm" #include "code\__HELPERS\chat.dm" #include "code\__HELPERS\cmp.dm" +#include "code\__HELPERS\config.dm" #include "code\__HELPERS\custom_holoforms.dm" #include "code\__HELPERS\dates.dm" #include "code\__HELPERS\dna.dm" @@ -458,6 +459,8 @@ #include "code\datums\achievements\_awards.dm" #include "code\datums\achievements\boss_achievements.dm" #include "code\datums\achievements\boss_scores.dm" +#include "code\datums\achievements\job_achievements.dm" +#include "code\datums\achievements\job_scores.dm" #include "code\datums\achievements\mafia_achievements.dm" #include "code\datums\achievements\misc_achievements.dm" #include "code\datums\achievements\misc_scores.dm" @@ -691,6 +694,7 @@ #include "code\datums\materials\basemats.dm" #include "code\datums\materials\meat.dm" #include "code\datums\materials\pizza.dm" +#include "code\datums\mocking\client.dm" #include "code\datums\mood_events\beauty_events.dm" #include "code\datums\mood_events\drink_events.dm" #include "code\datums\mood_events\drug_events.dm" @@ -810,12 +814,14 @@ #include "code\game\gamemodes\devil\objectives.dm" #include "code\game\gamemodes\devil\devil agent\devil_agent.dm" #include "code\game\gamemodes\dynamic\dynamic.dm" +#include "code\game\gamemodes\dynamic\dynamic_hijacking.dm" +#include "code\game\gamemodes\dynamic\dynamic_logging.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_latejoin.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_midround.dm" -#include "code\game\gamemodes\dynamic\dynamic_rulesets_minor.dm" #include "code\game\gamemodes\dynamic\dynamic_rulesets_roundstart.dm" -#include "code\game\gamemodes\dynamic\dynamic_storytellers.dm" +#include "code\game\gamemodes\dynamic\dynamic_simulations.dm" +#include "code\game\gamemodes\dynamic\ruleset_picking.dm" #include "code\game\gamemodes\eldritch_cult\eldritch_cult.dm" #include "code\game\gamemodes\extended\extended.dm" #include "code\game\gamemodes\gangs\dominator.dm" @@ -1759,8 +1765,8 @@ #include "code\modules\antagonists\slaughter\slaughter.dm" #include "code\modules\antagonists\slaughter\slaughter_antag.dm" #include "code\modules\antagonists\slaughter\slaughterevent.dm" -#include "code\modules\antagonists\space_ninja\space_ninja.dm" #include "code\modules\antagonists\space_dragon\space_dragon.dm" +#include "code\modules\antagonists\space_ninja\space_ninja.dm" #include "code\modules\antagonists\survivalist\survivalist.dm" #include "code\modules\antagonists\swarmer\swarmer.dm" #include "code\modules\antagonists\swarmer\swarmer_event.dm" @@ -1974,6 +1980,7 @@ #include "code\modules\client\client_colour.dm" #include "code\modules\client\client_defines.dm" #include "code\modules\client\client_procs.dm" +#include "code\modules\client\client_vpn_detect.dm" #include "code\modules\client\message.dm" #include "code\modules\client\player_details.dm" #include "code\modules\client\preferences.dm" @@ -2132,8 +2139,8 @@ #include "code\modules\events\radiation_storm.dm" #include "code\modules\events\sentience.dm" #include "code\modules\events\shuttle_loan.dm" -#include "code\modules\events\space_ninja.dm" #include "code\modules\events\space_dragon.dm" +#include "code\modules\events\space_ninja.dm" #include "code\modules\events\spacevine.dm" #include "code\modules\events\spider_infestation.dm" #include "code\modules\events\spontaneous_appendicitis.dm" @@ -2421,6 +2428,7 @@ #include "code\modules\language\monkey.dm" #include "code\modules\language\mushroom.dm" #include "code\modules\language\narsian.dm" +#include "code\modules\language\neokanji.dm" #include "code\modules\language\ratvarian.dm" #include "code\modules\language\signlanguage.dm" #include "code\modules\language\slime.dm" @@ -2511,6 +2519,7 @@ #include "code\modules\mob\mob.dm" #include "code\modules\mob\mob_defines.dm" #include "code\modules\mob\mob_helpers.dm" +#include "code\modules\mob\mob_lists.dm" #include "code\modules\mob\mob_movement.dm" #include "code\modules\mob\mob_transformation_simple.dm" #include "code\modules\mob\say.dm" diff --git a/tgui/packages/tgui/interfaces/Colormate.js b/tgui/packages/tgui/interfaces/Colormate.js new file mode 100644 index 0000000000..f376547102 --- /dev/null +++ b/tgui/packages/tgui/interfaces/Colormate.js @@ -0,0 +1,286 @@ +import { useBackend } from '../backend'; +import { Button, Flex, Icon, NoticeBox, NumberInput, Section, Tabs } from '../components'; +import { Window } from '../layouts'; + +export const Colormate = (props, context) => { + const { act, data } = useBackend(context); + const { matrixactive, temp } = data; + const item = data.item || []; + return ( + + + {temp ? ( + {temp} + ) : (null)} + {Object.keys(item).length ? ( + <> + +
+
Item:
+ +
+
+
Preview:
+ +
+
+
+ + act('switch_modes', { + mode: "0", + })} > + Regular coloring + + act('switch_modes', { + mode: "1", + })} > + Matrixed coloring + + + {matrixactive ? ( + <> +
Coloring: {item.name}
+ + + ) : ( + <> +
Coloring: {item.name}
+ + + )} +
+ + ) : ( +
+
No item inserted.
+
+ )} +
+
+ ); +}; + +export const ColormateNoMatrix = (props, context) => { + const { act, data } = useBackend(context); + return ( +
+ + +
+ ); +}; + +export const ColormateMatrix = (props, context) => { + const { act, data } = useBackend(context); + const matrixcolors = data.matrixcolors || []; + return ( +
+ + +
+ ); +};