diff --git a/_maps/safehouses/bathroom.dmm b/_maps/safehouses/bathroom.dmm new file mode 100644 index 00000000000..62e928ac054 --- /dev/null +++ b/_maps/safehouses/bathroom.dmm @@ -0,0 +1,155 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"c" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"e" = ( +/obj/effect/spawner/structure/window, +/obj/effect/decal/cleanable/blood/splatter/over_window, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"q" = ( +/obj/structure/urinal/directional/west, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"s" = ( +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/obj/machinery/light/small/blacklight/directional/east, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"v" = ( +/obj/machinery/light/small/blacklight/directional/east, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/tracks, +/obj/vehicle/ridden/wheelchair, +/obj/effect/spawner/random/medical/injector, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"x" = ( +/obj/structure/railing/corner/end{ + dir = 4 + }, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"y" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/blacklight/directional/west, +/obj/effect/spawner/random/medical/medkit, +/obj/effect/spawner/random/medical/medkit, +/obj/effect/spawner/random/medical/minor_healing, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"z" = ( +/obj/structure/sign/poster/abductor/random/directional/east, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"D" = ( +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"G" = ( +/turf/closed/wall/mineral/silver, +/area/virtual_domain/safehouse) +"J" = ( +/obj/structure/railing, +/obj/effect/landmark/bitrunning/cache_goal_turf, +/obj/effect/turf_decal/loading_area{ + dir = 4 + }, +/turf/open/floor/bitrunning_transport, +/area/virtual_domain/safehouse) +"M" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/toilet{ + dir = 4 + }, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"N" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"T" = ( +/obj/effect/landmark/bitrunning/hololadder_spawn, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"V" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"X" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/freezer, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) +"Z" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/blacklight/directional/west, +/turf/open/floor/iron/freezer, +/area/virtual_domain/safehouse) + +(1,1,1) = {" +G +G +G +G +G +G +"} +(2,1,1) = {" +G +Z +M +q +y +G +"} +(3,1,1) = {" +G +c +D +a +T +G +"} +(4,1,1) = {" +X +a +D +D +T +G +"} +(5,1,1) = {" +G +V +x +N +T +G +"} +(6,1,1) = {" +G +s +J +z +v +e +"} +(7,1,1) = {" +G +G +G +G +G +G +"} diff --git a/_maps/virtual_domains/psyker_shuffle.dmm b/_maps/virtual_domains/psyker_shuffle.dmm new file mode 100644 index 00000000000..9c846c650da --- /dev/null +++ b/_maps/virtual_domains/psyker_shuffle.dmm @@ -0,0 +1,1074 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/obj/structure/closet/crate/secure, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"b" = ( +/obj/item/restraints/legcuffs/beartrap/prearmed, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"e" = ( +/obj/item/gun/ballistic/shotgun/lethal, +/obj/structure/closet/crate/preopen, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"h" = ( +/obj/structure/closet/crate/preopen, +/obj/item/gun/ballistic/automatic/mini_uzi, +/obj/item/gun/ballistic/revolver{ + pixel_x = 2; + pixel_y = 3 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = 1; + pixel_y = 1 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = -1; + pixel_y = 5 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = -3 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/gun/ballistic/revolver{ + pixel_x = -4; + pixel_y = 2 + }, +/obj/item/gun/ballistic/revolver, +/turf/template_noop, +/area/virtual_domain/safehouse) +"k" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"m" = ( +/obj/item/toy/gun{ + pixel_y = 3 + }, +/obj/structure/closet/crate/wooden, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"o" = ( +/turf/template_noop, +/area/template_noop) +"q" = ( +/obj/effect/landmark/bitrunning/crate_replacer, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"r" = ( +/mob/living/simple_animal/hostile/mimic, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"s" = ( +/mob/living/simple_animal/hostile/mimic/crate, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"t" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"v" = ( +/obj/structure/closet/crate/hydroponics, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"x" = ( +/obj/item/gun/ballistic/shotgun/lethal, +/obj/item/gun/ballistic/revolver/mateba, +/obj/structure/closet/crate/preopen, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"B" = ( +/turf/template_noop, +/area/ruin/space/has_grav/powered/virtual_domain) +"F" = ( +/obj/structure/closet/crate/internals, +/obj/item/gun/ballistic/revolver/mateba, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"G" = ( +/obj/structure/closet/crate, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"K" = ( +/obj/structure/closet/crate/eva, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"M" = ( +/obj/machinery/door/airlock/abductor, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"N" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"O" = ( +/obj/structure/closet/crate/freezer/surplus_limbs, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"P" = ( +/obj/structure/closet/crate/wooden, +/obj/item/gun/ballistic/revolver/mateba, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Q" = ( +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"R" = ( +/obj/structure/closet/crate/secure/loot, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"S" = ( +/obj/structure/closet/crate/secure/bitrunning/encrypted, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"U" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"X" = ( +/obj/item/gun/ballistic/shotgun/lethal, +/obj/structure/closet/crate/preopen, +/obj/projectile/bullet/shotgun_frag12, +/obj/projectile/bullet/shotgun_frag12, +/obj/projectile/bullet/shotgun_frag12, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Y" = ( +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) + +(1,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} +(2,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} +(3,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} +(4,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} +(5,1,1) = {" +o +o +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +Y +k +o +o +o +o +o +o +o +o +"} +(6,1,1) = {" +o +o +Y +Y +r +Q +Q +Q +Q +Q +Q +Q +Q +Q +a +Y +Y +Y +o +o +o +o +o +o +o +o +"} +(7,1,1) = {" +o +o +Y +Y +Y +K +Q +a +Q +Q +Y +Q +Q +Q +Q +Q +Y +Y +o +o +o +o +o +o +o +o +"} +(8,1,1) = {" +o +o +Y +Y +Y +m +Q +Q +Q +Y +Y +Y +Q +Q +Q +Q +Y +Y +o +o +o +o +o +o +o +o +"} +(9,1,1) = {" +o +o +Y +X +Y +Y +Q +Q +Q +Q +K +Y +Q +r +Y +Q +Y +Y +o +o +o +o +o +o +o +o +"} +(10,1,1) = {" +o +o +Y +b +Q +Y +Y +Q +Q +Q +Q +Q +Q +Y +Y +Q +Q +Y +o +o +o +o +o +o +o +o +"} +(11,1,1) = {" +o +o +Y +Q +Q +Q +Q +Q +Q +Y +Q +Q +Q +Q +Q +Q +Q +Y +o +o +o +o +o +o +o +o +"} +(12,1,1) = {" +o +o +Y +a +Q +b +Q +O +Q +Y +Q +Q +S +Q +Q +Q +Q +Y +o +o +o +o +o +o +o +o +"} +(13,1,1) = {" +o +o +Y +b +Q +Y +Q +Q +Q +Q +Q +Q +Q +Q +Y +Y +Q +Y +Y +Y +Y +Y +Y +Y +Y +o +"} +(14,1,1) = {" +o +o +Y +a +a +Y +Q +Q +Q +Q +Q +Q +Q +Q +Y +Q +Q +Q +t +t +t +t +t +U +Y +Y +"} +(15,1,1) = {" +o +o +Y +Y +Y +Y +Q +G +Q +Y +Y +Y +Q +Q +Q +Q +Q +Q +t +t +t +t +t +t +B +Y +"} +(16,1,1) = {" +o +o +Y +r +Q +Q +Q +Q +Q +Y +Y +Y +a +Q +Q +Q +Q +Q +t +h +t +t +t +t +B +Y +"} +(17,1,1) = {" +o +o +Y +Q +Y +Q +Q +Q +O +Y +Y +Y +a +Q +Q +Q +Q +Q +t +t +t +t +t +t +B +Y +"} +(18,1,1) = {" +o +o +Y +Q +Y +Q +Y +Y +Y +Y +Y +Y +Q +Q +Q +Q +Q +Q +t +t +t +t +t +t +B +Y +"} +(19,1,1) = {" +o +o +Y +Q +Y +Q +Q +P +Y +Y +Q +Q +Q +Q +Y +Y +Q +Q +t +t +t +t +t +t +B +Y +"} +(20,1,1) = {" +o +o +Y +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Y +Q +Q +t +t +t +t +t +N +B +Y +"} +(21,1,1) = {" +o +o +Y +a +Q +Q +Y +Q +Q +Y +Y +Q +Q +R +Q +Q +Q +Y +Y +Y +Y +Y +Y +Y +B +Y +"} +(22,1,1) = {" +o +o +Y +Y +Q +Q +Y +Q +Q +v +Q +Q +Q +Q +Q +Q +Q +Y +o +o +o +o +o +Y +B +Y +"} +(23,1,1) = {" +o +o +o +Y +Y +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Y +o +o +o +o +o +Y +Y +Y +"} +(24,1,1) = {" +o +o +Y +Y +Y +Y +Q +Q +Q +Q +Q +Y +Q +Q +Q +Q +Q +Y +o +o +o +o +o +o +o +o +"} +(25,1,1) = {" +Y +Y +Y +a +Y +Y +Y +Y +Q +Q +Q +Y +Q +Y +Q +Q +Y +Y +o +o +o +o +o +o +o +o +"} +(26,1,1) = {" +Y +a +Q +e +Q +Y +a +Q +Q +Q +Q +Y +Q +Y +Y +a +Y +Y +o +o +o +o +o +o +o +o +"} +(27,1,1) = {" +Y +Q +Q +Q +s +M +Q +Q +Q +Q +Y +Y +Q +Y +Q +Q +Q +Y +Y +o +o +o +o +o +o +o +"} +(28,1,1) = {" +Y +Y +Q +Q +a +Y +Q +a +Q +Q +Q +F +Q +Y +s +Q +Q +a +Y +o +o +o +o +o +o +o +"} +(29,1,1) = {" +Y +Y +Q +Q +Q +Y +Y +Y +Y +Y +Y +Y +Y +Y +Q +K +Q +Q +Y +o +o +o +o +o +o +o +"} +(30,1,1) = {" +Y +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +Q +a +Q +Q +Q +K +Y +o +o +o +o +o +o +o +"} +(31,1,1) = {" +Y +a +Q +s +Y +Y +Y +s +Q +Q +Q +Q +Y +Y +x +Y +Q +Y +Y +o +o +o +o +o +o +o +"} +(32,1,1) = {" +Y +a +Y +Y +Y +o +Y +Y +Q +a +Y +Y +Y +Y +Y +Y +Y +q +o +o +o +o +o +o +o +o +"} +(33,1,1) = {" +Y +Y +Y +o +o +o +o +Y +Y +Y +Y +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} diff --git a/_maps/virtual_domains/psyker_zombies.dmm b/_maps/virtual_domains/psyker_zombies.dmm new file mode 100644 index 00000000000..339c4e15e4c --- /dev/null +++ b/_maps/virtual_domains/psyker_zombies.dmm @@ -0,0 +1,1215 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"a" = ( +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"b" = ( +/obj/item/pizzabox/bomb/armed, +/obj/structure/rack, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"c" = ( +/obj/structure/sign/warning/directional/west, +/turf/open/chasm/lavaland, +/area/ruin/space/has_grav/powered/virtual_domain) +"h" = ( +/obj/structure/rack, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"i" = ( +/obj/structure/sign/warning/directional/east, +/turf/open/chasm/lavaland, +/area/ruin/space/has_grav/powered/virtual_domain) +"o" = ( +/turf/template_noop, +/area/template_noop) +"p" = ( +/obj/structure/rack, +/obj/item/reagent_containers/cup/glass/bottle/rootbeer{ + pixel_x = 3 + }, +/obj/item/reagent_containers/cup/glass/bottle/rootbeer{ + pixel_x = -3 + }, +/obj/item/reagent_containers/cup/glass/bottle/rootbeer{ + pixel_y = 1 + }, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"r" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/template_noop, +/area/virtual_domain/safehouse) +"t" = ( +/turf/template_noop, +/area/virtual_domain/safehouse) +"x" = ( +/obj/effect/mapping_helpers/airlock/locked, +/obj/machinery/door/airlock/abductor, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"A" = ( +/obj/effect/spawner/random/trash/caution_sign, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"B" = ( +/obj/machinery/door/airlock/abductor, +/obj/effect/mapping_helpers/airlock/abandoned, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"F" = ( +/obj/structure/mystery_box/guns, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"K" = ( +/obj/effect/baseturf_helper/virtual_domain, +/turf/closed/indestructible/binary, +/area/ruin/space/has_grav/powered/virtual_domain) +"M" = ( +/obj/effect/mob_spawn/corpse/human/zombie, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"O" = ( +/obj/effect/landmark/bitrunning/safehouse_spawn, +/turf/template_noop, +/area/virtual_domain/safehouse) +"Q" = ( +/turf/open/chasm/lavaland, +/area/ruin/space/has_grav/powered/virtual_domain) +"R" = ( +/obj/effect/mine/explosive/light, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"T" = ( +/obj/machinery/door/airlock/abductor, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"U" = ( +/obj/effect/landmark/bitrunning/cache_spawn, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"V" = ( +/obj/structure/sign/warning/directional/east, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"W" = ( +/obj/effect/mob_spawn/corpse/human/cyber_police, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"X" = ( +/mob/living/simple_animal/hostile/zombie, +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) +"Y" = ( +/turf/open/indestructible/dark, +/area/ruin/space/has_grav/powered/virtual_domain) + +(1,1,1) = {" +o +o +o +o +o +o +o +o +o +o +a +a +a +a +a +a +a +a +o +o +o +o +o +o +o +o +o +o +"} +(2,1,1) = {" +o +o +o +o +o +o +o +o +a +a +a +Y +Y +Y +Y +Y +Y +a +a +o +o +o +o +o +o +o +o +o +"} +(3,1,1) = {" +o +o +a +a +a +a +a +a +a +Y +Y +Y +Y +Y +Y +Y +Y +Y +a +a +K +o +o +o +o +o +o +o +"} +(4,1,1) = {" +o +o +a +W +X +Y +B +Y +Y +Y +Y +R +a +a +X +Y +Y +Y +Y +a +a +o +o +o +o +o +o +o +"} +(5,1,1) = {" +o +o +a +b +b +p +a +R +Y +Y +Y +a +a +a +a +X +Y +Y +Y +Y +a +o +o +o +o +o +o +o +"} +(6,1,1) = {" +o +o +a +a +a +a +a +Y +Y +Y +a +a +Y +Y +a +a +a +a +Y +Y +a +o +o +o +o +o +o +o +"} +(7,1,1) = {" +o +o +a +a +a +a +a +a +Y +Y +a +Y +Y +Y +a +a +a +Y +Y +Y +a +o +o +o +o +o +o +o +"} +(8,1,1) = {" +o +o +a +a +X +Y +Y +Y +Y +Y +a +Y +Y +Y +Y +Y +Y +Y +R +a +a +o +o +o +o +o +o +o +"} +(9,1,1) = {" +o +o +a +a +W +Y +Y +Y +A +Y +a +X +Y +Y +Y +Y +Y +Y +Y +a +o +o +o +o +o +o +o +o +"} +(10,1,1) = {" +o +o +a +a +Y +Q +Q +Q +Q +Y +a +a +Y +Q +Q +Q +Q +Q +Y +a +o +o +o +o +o +o +o +o +"} +(11,1,1) = {" +o +o +a +Y +Y +Q +Q +Q +Q +Y +Y +a +Y +Q +Q +Q +Q +Q +Y +a +o +o +o +o +o +o +o +o +"} +(12,1,1) = {" +o +o +a +Y +Y +Y +Y +Y +Y +Y +Y +a +Y +Y +Y +Y +A +Y +Y +a +o +o +o +o +o +o +o +o +"} +(13,1,1) = {" +o +o +a +Y +Y +Y +a +a +Y +Y +Y +a +Y +a +Y +Y +Y +Y +Y +a +o +o +o +o +o +o +o +o +"} +(14,1,1) = {" +o +o +a +Y +Y +Y +Y +a +Y +Y +a +a +Y +a +Y +Y +Y +Y +Y +a +o +o +o +o +o +o +o +o +"} +(15,1,1) = {" +o +o +a +Y +R +Y +a +a +Y +Y +a +a +Y +a +a +Y +Y +Y +X +a +o +o +o +o +o +o +o +o +"} +(16,1,1) = {" +o +o +a +Y +Y +Y +X +a +Y +Y +X +a +Y +Y +a +Y +a +a +a +a +a +a +a +a +a +a +a +o +"} +(17,1,1) = {" +o +o +a +Y +V +Y +a +a +Y +Y +Y +x +Y +Y +Y +Y +a +h +Y +Y +t +t +t +t +t +O +a +o +"} +(18,1,1) = {" +o +o +a +Y +a +Q +a +a +Y +Y +a +a +X +Y +Y +Y +a +F +Y +Y +t +t +t +t +t +t +a +o +"} +(19,1,1) = {" +o +o +a +Q +Q +Q +a +X +Y +Y +a +a +a +Y +Y +Y +a +Y +Y +Y +t +t +t +t +t +t +a +o +"} +(20,1,1) = {" +o +o +a +Q +Q +Q +a +Y +Y +Y +a +Y +Y +Y +Y +Y +T +Y +Y +Y +t +t +t +t +t +t +a +o +"} +(21,1,1) = {" +o +o +a +a +Q +Q +a +a +Y +Y +a +a +Y +R +Y +Y +a +Y +Y +Y +t +t +t +t +t +t +a +o +"} +(22,1,1) = {" +o +o +a +a +Q +a +a +a +Y +Y +a +a +Y +Y +Y +Y +a +F +Y +Y +t +t +t +t +t +t +a +o +"} +(23,1,1) = {" +o +o +a +a +Q +a +a +a +Y +Y +a +a +a +a +Y +Y +a +h +Y +Y +t +t +t +t +t +r +a +o +"} +(24,1,1) = {" +o +o +a +a +Q +a +a +a +Y +Y +a +a +a +a +a +Y +a +a +a +a +a +a +a +a +a +a +a +o +"} +(25,1,1) = {" +o +o +a +c +Q +a +a +a +T +a +a +a +a +a +a +Y +Y +R +a +a +o +o +o +o +o +o +o +o +"} +(26,1,1) = {" +o +o +a +Q +Q +a +a +W +Y +W +a +a +a +Y +Y +Y +Y +Y +a +o +o +o +o +o +o +o +o +o +"} +(27,1,1) = {" +o +o +a +Y +Y +T +Y +Y +Y +a +a +a +Y +Y +R +Y +Y +a +a +o +o +o +o +o +o +o +o +o +"} +(28,1,1) = {" +o +o +a +Y +X +a +U +X +X +a +X +a +Y +Y +Y +Y +R +a +o +o +o +o +o +o +o +o +o +o +"} +(29,1,1) = {" +o +o +a +Y +a +a +a +a +a +a +Y +Y +Y +Y +a +a +a +a +o +o +o +o +o +o +o +o +o +o +"} +(30,1,1) = {" +o +o +a +Y +Y +R +a +a +R +Y +Y +Y +Y +Y +Y +Y +X +a +o +o +o +o +o +o +o +o +o +o +"} +(31,1,1) = {" +o +o +a +Y +Y +Y +a +Y +Y +Y +a +a +Y +Y +Y +M +a +a +o +o +o +o +o +o +o +o +o +o +"} +(32,1,1) = {" +o +o +a +Y +Y +Y +a +Y +R +a +a +a +a +Y +Y +Y +a +a +a +a +a +o +o +o +o +o +o +o +"} +(33,1,1) = {" +o +o +a +a +R +Y +a +Y +a +a +Y +Y +R +Y +Y +Y +Y +Y +Q +Q +a +o +o +o +o +o +o +o +"} +(34,1,1) = {" +o +o +o +a +Y +Y +Y +Y +Y +Y +Y +a +a +a +Y +M +Y +W +i +Q +a +o +o +o +o +o +o +o +"} +(35,1,1) = {" +o +o +o +a +Y +Y +Y +Y +X +a +a +a +a +a +a +a +a +a +a +a +a +o +o +o +o +o +o +o +"} +(36,1,1) = {" +o +o +o +a +a +a +a +a +a +a +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} +(37,1,1) = {" +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +o +"} diff --git a/code/modules/bitrunning/objects/landmarks.dm b/code/modules/bitrunning/objects/landmarks.dm index a4539c7c3da..d727025c928 100644 --- a/code/modules/bitrunning/objects/landmarks.dm +++ b/code/modules/bitrunning/objects/landmarks.dm @@ -63,3 +63,41 @@ /obj/effect/landmark/bitrunning/safehouse_spawn name = "Bitrunning safehouse spawn" icon_state = "safehouse" + +///Swaps the locations of an encrypted crate in the area with another randomly selected crate. +///Randomizes names, so you have to inspect crates manually. +/obj/effect/landmark/bitrunning/crate_replacer + name = "Bitrunning Goal Crate Randomizer" + icon_state = "crate" + +/obj/effect/landmark/bitrunning/crate_replacer/Initialize(mapload) + . = ..() + + #ifndef UNIT_TESTS + var/list/crate_list = list() + var/obj/structure/closet/crate/secure/bitrunning/encrypted/encrypted_crate + var/area/my_area = get_area(src) + + for(var/turf/area_turf as anything in my_area.get_contained_turfs()) + for(var/obj/structure/closet/crate/crate_to_check in area_turf) + if(istype(crate_to_check, /obj/structure/closet/crate/secure/bitrunning/encrypted)) + encrypted_crate = crate_to_check + crate_to_check.desc += span_hypnophrase(" This feels like the crate we're looking for!") + else + crate_list += crate_to_check + crate_to_check.name = "Unidentified Crate" + + if(!encrypted_crate) + stack_trace("Bitrunning Goal Crate Randomizer failed to find an encrypted crate to swap positions for.") + return + if(!length(crate_list)) + stack_trace("Bitrunning Goal Crate Randomizer failed to find any NORMAL crates to swap positions for.") + return + + var/original_location = encrypted_crate.loc + var/obj/structure/closet/crate/selected_crate = pick(crate_list) + + encrypted_crate.abstract_move(selected_crate.loc) + selected_crate.abstract_move(original_location) + + #endif diff --git a/code/modules/bitrunning/antagonists/outfit.dm b/code/modules/bitrunning/outfits.dm similarity index 74% rename from code/modules/bitrunning/antagonists/outfit.dm rename to code/modules/bitrunning/outfits.dm index db57af561f8..27ef8029a18 100644 --- a/code/modules/bitrunning/antagonists/outfit.dm +++ b/code/modules/bitrunning/outfits.dm @@ -41,3 +41,17 @@ officer_uniform.has_sensor = NO_SENSORS officer_uniform.sensor_mode = SENSOR_OFF user.update_suit_sensors() + +/datum/outfit/echolocator + name = "Bitrunning Echolocator" + glasses = /obj/item/clothing/glasses/blindfold + ears = /obj/item/radio/headset/psyker //Navigating without these is horrible. + uniform = /obj/item/clothing/under/abductor + gloves = /obj/item/clothing/gloves/fingerless + shoes = /obj/item/clothing/shoes/jackboots + suit = /obj/item/clothing/suit/jacket/trenchcoat + id = /obj/item/card/id/advanced + +/datum/outfit/echolocator/post_equip(mob/living/carbon/human/user, visualsOnly) + . = ..() + user.psykerize() diff --git a/code/modules/bitrunning/virtual_domain/domains/psyker_shuffle.dm b/code/modules/bitrunning/virtual_domain/domains/psyker_shuffle.dm new file mode 100644 index 00000000000..2ca32bce983 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/psyker_shuffle.dm @@ -0,0 +1,12 @@ +/datum/lazy_template/virtual_domain/psyker_shuffle + name = "Crate Chaos" + cost = BITRUNNER_COST_LOW + desc = "Sneak into an abandoned corner of the virtual world, where they store all of the crates. \ + Warning -- Virtual domain does not support visual display. This mission must be completed using echolocation." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + help_text = "Getting used to echolocation may be difficult. Remember to walk slowly, and carefully inspect every crate you come across." + key = "psyker_shuffle" + map_name = "psyker_shuffle" + reward_points = BITRUNNER_REWARD_MEDIUM + safehouse_path = /datum/map_template/safehouse/bathroom + forced_outfit = /datum/outfit/echolocator diff --git a/code/modules/bitrunning/virtual_domain/domains/psyker_zombies.dm b/code/modules/bitrunning/virtual_domain/domains/psyker_zombies.dm new file mode 100644 index 00000000000..6d545f7c652 --- /dev/null +++ b/code/modules/bitrunning/virtual_domain/domains/psyker_zombies.dm @@ -0,0 +1,14 @@ +/datum/lazy_template/virtual_domain/psyker_zombies + name = "Infected Domain" + cost = BITRUNNER_COST_MEDIUM + desc = "Another neglected corner of the virtual world. This one had to be abandoned due to zombie virus. \ + Warning -- Virtual domain does not support visual display. This mission must be completed using echolocation." + difficulty = BITRUNNER_DIFFICULTY_MEDIUM + help_text = "This once-beloved virtual domain has been corrupted by a virus, rendering it unstable, full of holes, and full of ZOMBIES! \ + There should be a Mystery Box nearby to help get you armed. Get armed, and finish what the cyber-police started!" + key = "psyker_zombies" + map_name = "psyker_zombies" + reward_points = BITRUNNER_REWARD_HIGH + safehouse_path = /datum/map_template/safehouse/bathroom + forced_outfit = /datum/outfit/echolocator + extra_loot = list(/obj/item/radio/headset/psyker = 1) //Looks cool, might make your local burdened chaplain happy. diff --git a/code/modules/bitrunning/virtual_domain/safehouses.dm b/code/modules/bitrunning/virtual_domain/safehouses.dm index bb42f690ac7..6504d447f28 100644 --- a/code/modules/bitrunning/virtual_domain/safehouses.dm +++ b/code/modules/bitrunning/virtual_domain/safehouses.dm @@ -46,6 +46,9 @@ /datum/map_template/safehouse/ice filename = "ice.dmm" +/datum/map_template/safehouse/bathroom + filename = "bathroom.dmm" + /** * Your safehouse here * /datum/map_template/safehouse/your_type diff --git a/code/modules/mob_spawn/corpses/mob_corpses.dm b/code/modules/mob_spawn/corpses/mob_corpses.dm index 5dd709bde66..476c3f70a84 100644 --- a/code/modules/mob_spawn/corpses/mob_corpses.dm +++ b/code/modules/mob_spawn/corpses/mob_corpses.dm @@ -350,3 +350,7 @@ /datum/outfit/prey_pod_victim name = "Prey Pod Victim" uniform = /obj/item/clothing/under/rank/rnd/roboticist + +/obj/effect/mob_spawn/corpse/human/cyber_police + name = "Dead Cyber Police" + outfit = /datum/outfit/cyber_police diff --git a/tgstation.dme b/tgstation.dme index f48f3b911b3..c64acfa67d1 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3347,9 +3347,9 @@ #include "code\modules\bitrunning\designs.dm" #include "code\modules\bitrunning\event.dm" #include "code\modules\bitrunning\job.dm" +#include "code\modules\bitrunning\outfits.dm" #include "code\modules\bitrunning\turfs.dm" #include "code\modules\bitrunning\antagonists\cyber_police.dm" -#include "code\modules\bitrunning\antagonists\outfit.dm" #include "code\modules\bitrunning\components\avatar_connection.dm" #include "code\modules\bitrunning\components\bitrunning_points.dm" #include "code\modules\bitrunning\components\netpod_healing.dm" @@ -3385,6 +3385,8 @@ #include "code\modules\bitrunning\virtual_domain\domains\legion.dm" #include "code\modules\bitrunning\virtual_domain\domains\pipedream.dm" #include "code\modules\bitrunning\virtual_domain\domains\pirates.dm" +#include "code\modules\bitrunning\virtual_domain\domains\psyker_shuffle.dm" +#include "code\modules\bitrunning\virtual_domain\domains\psyker_zombies.dm" #include "code\modules\bitrunning\virtual_domain\domains\stairs_and_cliffs.dm" #include "code\modules\bitrunning\virtual_domain\domains\syndicate_assault.dm" #include "code\modules\bitrunning\virtual_domain\domains\test_only.dm"