diff --git a/_maps/map_files/templates/pirat_markettransit_onlyz2.dmm b/_maps/map_files/templates/pirat_markettransit_onlyz2.dmm new file mode 100644 index 00000000000..0b44aa87741 --- /dev/null +++ b/_maps/map_files/templates/pirat_markettransit_onlyz2.dmm @@ -0,0 +1,2126 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"af" = ( +/obj/structure/rack{ + name = "rack 30k" + }, +/obj/item/card/emag, +/obj/item/door_remote/omni/access_tuner, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"aP" = ( +/obj/structure/rack{ + name = "rack 40k" + }, +/obj/item/storage/box/syndie_kit/teleporter, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"bo" = ( +/obj/machinery/door_control{ + id = "Trade_doc"; + use_power = 0; + pixel_y = 24 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"br" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/syndicate{ + name = "crate 60k" + }, +/obj/item/ammo_box/magazine/sfg9mm, +/obj/item/ammo_box/magazine/sfg9mm{ + pixel_x = -7 + }, +/obj/item/ammo_box/magazine/sfg9mm{ + pixel_x = 7 + }, +/obj/item/gun/projectile/automatic/sfg, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"bs" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron1" + }, +/area/ruin/space/pirate_base/black_market) +"co" = ( +/obj/effect/turf_decal/arrows, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"cW" = ( +/obj/structure/closet/crate/syndicate{ + name = "crate 20k" + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = -5 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = -5 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = -5 + }, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = 5 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = 5 + }, +/obj/item/gun/projectile/automatic/pistol, +/obj/item/gun/projectile/automatic/pistol, +/obj/effect/turf_decal/bot, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"dw" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/item/stamp/syndicate{ + pixel_x = 6; + pixel_y = -4 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"er" = ( +/obj/structure/rack{ + name = "rack 15k" + }, +/obj/item/reagent_containers/hypospray/combat, +/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium{ + pixel_y = -3 + }, +/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium{ + pixel_y = 1; + pixel_x = -2 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"ev" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/syndicate{ + name = "crate 20k" + }, +/obj/item/ammo_box/magazine/toy/smgm45/riot, +/obj/item/ammo_box/magazine/toy/smgm45/riot, +/obj/item/ammo_box/magazine/toy/smgm45/riot, +/obj/item/gun/projectile/automatic/c20r/toy, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"fy" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger/wallcharger{ + pixel_x = 5; + pixel_y = 20 + }, +/obj/machinery/door/window/brigdoor{ + req_access = list(165); + dir = 8 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"hk" = ( +/obj/effect/bump_teleporter{ + id_target = "pirat_n1" + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"hm" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + req_access = list(165); + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"ir" = ( +/obj/structure/chair/stool/bar{ + icon = 'icons/obj/lighting.dmi'; + icon_state = "lantern-on"; + light_color = "#FFBF00"; + light_range = 6; + name = "lantern"; + invisibility = 70 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"iA" = ( +/obj/structure/chair/stool/bar{ + icon = 'icons/obj/lighting.dmi'; + icon_state = "lantern-on"; + light_color = "#FFBF00"; + light_range = 6; + name = "lantern"; + invisibility = 70 + }, +/obj/machinery/door/poddoor/shutters{ + id_tag = "pirates_shutters"; + use_power = 0 + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"iU" = ( +/obj/effect/decal/warning_stripes/northeastcorner, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"jj" = ( +/obj/machinery/door_control{ + id = "Trade_exit"; + pixel_x = -24; + use_power = 0 + }, +/obj/effect/bump_teleporter{ + id = "black_market2"; + density = 0 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"kH" = ( +/obj/structure/rack{ + name = "rack 5k" + }, +/obj/item/jammer{ + pixel_x = -4 + }, +/obj/item/reagent_containers/hypospray/autoinjector/stimpack{ + pixel_y = -4; + pixel_x = 2 + }, +/obj/item/reagent_containers/hypospray/autoinjector/stimpack{ + pixel_y = -8; + pixel_x = 3 + }, +/obj/item/pen/sleepy, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"ll" = ( +/obj/structure/rack{ + name = "rack 30k" + }, +/obj/item/implanter/second_chance{ + pixel_x = -5; + pixel_y = 2 + }, +/obj/item/implanter/adrenalin{ + pixel_x = -2; + pixel_y = -1 + }, +/obj/item/implanter/stealth{ + pixel_x = 1; + pixel_y = -4 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"mx" = ( +/obj/structure/table, +/obj/machinery/photocopier/faxmachine/longrange/syndie{ + department = "Syndicate" + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"mV" = ( +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"oP" = ( +/obj/effect/decal/warning_stripes/southeastcorner, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"oR" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/obj/item/clothing/under/fluff/lfvicsuit, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"ps" = ( +/obj/structure/mirror{ + pixel_x = -26 + }, +/obj/effect/mob_spawn/human/oldstation/oldsec{ + desc = "A cryo pod."; + outfit = /datum/outfit/naked; + assignedrole = "Pirate"; + faction = "pirate"; + allow_gender_pick = 0; + allow_prefs_prompt = 0; + allow_species_pick = 0; + mob_gender = "male"; + name = "Pirate"; + flavour_text = "Вы и ваша группа имеют долг перед синдикатом. Выберите главу, пишите факсы с запросом задач к синдикату. Выполняйте их, зарабатывайте на новое оборудование и оплату долга в 200 тысяч кредитов. Помните что вы не мажор, и не можете устраивать резню ради резни."; + description = "Вы пират, пират который должен синдикату. Выполняйте задачи и зарабатывайте на оплату долга."; + facial_hair_style = "Up Mustache"; + hair_style = "Manbun" + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"qt" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron7" + }, +/area/ruin/space/pirate_base/black_market) +"qY" = ( +/obj/machinery/door_control{ + id = "pirates_shutters"; + pixel_x = -24; + use_power = 0 + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"rc" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + req_access = list(165); + dir = 8 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"rC" = ( +/turf/simulated/wall/indestructible/fakeglass, +/area/ruin/space/pirate_base/black_market) +"rF" = ( +/obj/effect/bump_teleporter{ + id_target = "black_market2" + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"rO" = ( +/obj/structure/rack{ + name = "rack 5k" + }, +/obj/item/storage/belt/military{ + pixel_x = -3 + }, +/obj/item/storage/belt/military{ + pixel_x = -3 + }, +/obj/item/clothing/accessory/storage/black_vest{ + pixel_x = 5; + pixel_y = -4 + }, +/obj/item/clothing/accessory/storage/black_vest{ + pixel_x = 5; + pixel_y = -4 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"sA" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron4" + }, +/area/ruin/space/pirate_base/black_market) +"tA" = ( +/turf/simulated/wall/indestructible/invisible, +/area/space) +"tR" = ( +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/box/corners{ + dir = 1 + }, +/obj/effect/turf_decal/box/corners{ + dir = 4 + }, +/obj/structure/closet/crate/syndicate{ + anchored = 1; + name = "Ящик для доставки целей." + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"uf" = ( +/turf/simulated/wall/indestructible/iron, +/area/ruin/space/pirate_base/black_market) +"us" = ( +/obj/structure/chair/stool/bar{ + icon = 'icons/obj/lighting.dmi'; + icon_state = "lantern-on"; + light_color = "#FFBF00"; + light_range = 6; + name = "lantern"; + invisibility = 70 + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"uP" = ( +/obj/structure/rack{ + name = "rack 30k" + }, +/obj/item/gun/energy/kinetic_accelerator/crossbow, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"vc" = ( +/obj/structure/rack{ + name = "rack 30k" + }, +/obj/item/defibrillator/compact/combat/loaded, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"vx" = ( +/obj/effect/mob_spawn/human/oldstation/oldsec{ + desc = "A cryo pod."; + outfit = /datum/outfit/naked; + assignedrole = "Pirate"; + faction = "pirate"; + allow_gender_pick = 0; + allow_prefs_prompt = 0; + allow_species_pick = 0; + mob_gender = "male"; + name = "Pirate"; + flavour_text = "Вы и ваша группа имеют долг перед синдикатом. Выберите главу, пишите факсы с запросом задач к синдикату. Выполняйте их, зарабатывайте на новое оборудование и оплату долга в 200 тысяч кредитов. Помните что вы не мажор, и не можете устраивать резню ради резни."; + description = "Вы пират, пират который должен синдикату. Выполняйте задачи и зарабатывайте на оплату долга."; + facial_hair_style = "Up Mustache"; + hair_style = "Manbun" + }, +/obj/structure/mirror{ + pixel_x = -26 + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"vK" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron14" + }, +/area/ruin/space/pirate_base/black_market) +"Al" = ( +/obj/structure/rack{ + name = "rack 10k" + }, +/obj/item/clothing/shoes/magboots/syndie{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/clothing/shoes/magboots/syndie, +/obj/item/clothing/shoes/magboots/syndie{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/effect/turf_decal/bot, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"AK" = ( +/obj/effect/bump_teleporter{ + id_target = "pirat_n2" + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"AU" = ( +/obj/structure/rack{ + name = "rack 40k" + }, +/obj/item/CQC_manual{ + pixel_x = 3; + pixel_y = -3 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"BJ" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/closet/crate/syndicate, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"BU" = ( +/obj/structure/rack{ + name = "rack 20k" + }, +/obj/item/pickaxe/drill/jackhammer, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Cj" = ( +/obj/machinery/door/poddoor/shutters/invincible{ + id_tag = "Trade_exit"; + name = "Black market warehouse"; + armor = list("melee"=100,"bullet"=100,"laser"=100,"energy"=100,"bomb"=100,"bio"=100,"rad"=100,"fire"=100,"acid"=100); + dir = 2; + use_power = 0 + }, +/obj/effect/turf_decal/delivery/red, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Dw" = ( +/obj/structure/rack{ + name = "rack 10k" + }, +/obj/item/chameleon{ + pixel_x = -3 + }, +/obj/item/chameleon{ + pixel_y = -2 + }, +/obj/item/clothing/glasses/chameleon/thermal{ + pixel_y = -6; + pixel_x = 2 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"DK" = ( +/obj/structure/rack{ + name = "rack 20k" + }, +/obj/item/holosign_creator/janitor/syndie{ + pixel_x = -4 + }, +/obj/item/twohanded/garrote{ + pixel_y = -4; + pixel_x = 2 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Ee" = ( +/obj/docking_port/stationary/transit{ + dir = 8; + dwidth = 8; + height = 19; + id = "pirateship_transit"; + name = "Pirate Corvette in transit"; + turf_type = /turf/space/transit/west; + width = 17 + }, +/turf/space/transit/west{ + icon_state = "speedspace_ew_1" + }, +/area/space) +"EC" = ( +/obj/structure/rack{ + name = "rack 10k" + }, +/obj/item/storage/box/syndie_kit/t4P, +/obj/effect/turf_decal/bot, +/obj/item/storage/box/syndie_kit/t4P{ + pixel_x = 5; + pixel_y = -3 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"EM" = ( +/obj/effect/decal/warning_stripes/east, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"ER" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron6" + }, +/area/ruin/space/pirate_base/black_market) +"Fe" = ( +/turf/space/transit/west, +/area/space) +"Fp" = ( +/obj/effect/decal/warning_stripes/northwestcorner, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Hk" = ( +/obj/structure/rack{ + name = "rack 10k" + }, +/obj/item/storage/box/syndie_kit/chameleon, +/obj/item/clothing/shoes/chameleon/noslip{ + pixel_y = -8 + }, +/obj/item/clothing/shoes/chameleon/noslip{ + pixel_y = -8 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"HC" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron10" + }, +/area/ruin/space/pirate_base/black_market) +"Ju" = ( +/obj/machinery/door/window/brigdoor{ + req_access = list(165); + dir = 8 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"JC" = ( +/obj/structure/rack{ + name = "rack 50k" + }, +/obj/item/gun/projectile/automatic/l6_saw/toy, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Kg" = ( +/obj/structure/rack, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Ki" = ( +/obj/structure/rack{ + name = "rack 5k" + }, +/obj/item/slimepotion/speed{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/slimepotion/speed{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Ky" = ( +/obj/machinery/door/airlock/hatch/syndicate{ + name = "Syndicate Base"; + req_access = list(165) + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"KH" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron11" + }, +/area/ruin/space/pirate_base/black_market) +"Lc" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron8" + }, +/area/ruin/space/pirate_base/black_market) +"LD" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron3" + }, +/area/ruin/space/pirate_base/black_market) +"Nc" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron2" + }, +/area/ruin/space/pirate_base/black_market) +"Nt" = ( +/obj/effect/bump_teleporter{ + id_target = "pirat_n3" + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"NS" = ( +/obj/machinery/tcomms/relay, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"OB" = ( +/obj/structure/rack{ + name = "rack 2k" + }, +/obj/item/grenade/gas/knockout{ + pixel_x = -5 + }, +/obj/item/grenade/gas/knockout{ + pixel_x = -1; + pixel_y = -1 + }, +/obj/item/grenade/gas/knockout{ + pixel_x = 3; + pixel_y = -2 + }, +/obj/item/grenade/gas/knockout{ + pixel_x = 7; + pixel_y = -3 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"OY" = ( +/obj/structure/closet/crate/syndicate{ + name = "crate 30k" + }, +/obj/item/storage/box/syndie_kit/bioterror, +/obj/item/storage/box/syndie_kit/bioterror, +/obj/item/gun/syringe/rapidsyringe, +/obj/effect/turf_decal/bot, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Ph" = ( +/turf/space/transit/west{ + icon_state = "speedspace_ew_1" + }, +/area/space) +"Pw" = ( +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Qe" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron12" + }, +/area/ruin/space/pirate_base/black_market) +"Qi" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron9" + }, +/area/ruin/space/pirate_base/black_market) +"QM" = ( +/obj/item/card/id/syndicate{ + access = list(150,160,161,162,165,26) + }, +/obj/structure/closet{ + icon_state = "syndicate" + }, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/glasses/sunglasses, +/obj/item/storage/backpack/duffel/syndie, +/obj/item/radio/headset/syndicate/alt/syndteam, +/obj/item/gun/energy/gun/advtaser, +/obj/item/clothing/accessory/holster, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"RJ" = ( +/obj/effect/bump_teleporter{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "portal-syndicate"; + name = "redspace portal"; + invisibility = 0; + id = "black_market"; + id_target = "pirate_basesynd" + }, +/obj/effect/turf_decal/box, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"RT" = ( +/turf/simulated/wall/indestructible{ + icon_state = "iron5" + }, +/area/ruin/space/pirate_base/black_market) +"Sj" = ( +/obj/effect/bump_teleporter{ + id_target = "pirat_n4" + }, +/turf/simulated/floor/indestructible/plating, +/area/ruin/space/pirate_base/black_market) +"Sk" = ( +/obj/structure/rack{ + name = "rack 2k" + }, +/obj/item/grenade/chem_grenade/lube{ + pixel_x = 8; + pixel_y = -5 + }, +/obj/item/grenade/chem_grenade/lube{ + pixel_y = -3; + pixel_x = 4 + }, +/obj/item/grenade/chem_grenade/lube{ + pixel_y = -1 + }, +/obj/item/grenade/chem_grenade/lube{ + pixel_y = 1; + pixel_x = -4 + }, +/obj/item/stack/tape_roll/thick{ + icon_state = "thick_taperoll4"; + pixel_y = 2 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"SC" = ( +/obj/effect/decal/warning_stripes/southwestcorner, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Tu" = ( +/obj/effect/decal/warning_stripes/west, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"UJ" = ( +/turf/space, +/area/space) +"Xk" = ( +/obj/structure/rack{ + name = "rack 5k" + }, +/obj/item/storage/box/syndie_kit/mr_chang_technique{ + pixel_x = -3; + pixel_y = 4 + }, +/obj/item/pinpointer/advpinpointer{ + pixel_y = -5; + pixel_x = 2 + }, +/obj/item/camera_bug, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Xv" = ( +/obj/structure/rack{ + name = "rack 40k" + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Xz" = ( +/turf/simulated/wall/indestructible, +/area/ruin/space/pirate_base/black_market) +"Za" = ( +/obj/machinery/door/poddoor/shutters/invincible{ + id_tag = "Trade_doc"; + name = "Black market warehouse"; + armor = list("melee"=100,"bullet"=100,"laser"=100,"energy"=100,"bomb"=100,"bio"=100,"rad"=100,"fire"=100,"acid"=100); + dir = 2; + use_power = 0 + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) +"Zr" = ( +/obj/structure/rack{ + name = "rack 50k" + }, +/turf/simulated/floor/indestructible/plating{ + icon_state = "dark"; + icon = 'icons/turf/floors.dmi' + }, +/area/ruin/space/pirate_base/black_market) + +(1,1,1) = {" +ER +LD +LD +LD +qt +LD +LD +LD +qt +LD +LD +LD +LD +qt +LD +LD +LD +RT +UJ +Xz +Xz +Xz +Xz +Xz +Xz +Xz +Xz +Xz +"} +(2,1,1) = {" +Qe +oR +Pw +dw +Qe +rO +Pw +er +Qe +RJ +Pw +ir +Pw +Lc +Pw +ir +Pw +Qe +UJ +Xz +mV +qY +mV +rC +vx +iA +hk +Xz +"} +(3,1,1) = {" +Qe +QM +ir +mx +Qe +DK +Pw +Hk +Qe +oP +EM +iU +co +tR +Pw +Pw +Pw +Qe +UJ +Xz +mV +mV +mV +rC +Xz +Xz +Xz +Xz +"} +(4,1,1) = {" +vK +bs +Ky +Nc +Qi +BU +ir +Dw +HC +bs +Cj +Nc +LD +LD +LD +RT +Za +Qe +UJ +Xz +mV +mV +mV +rC +ps +iA +AK +Xz +"} +(5,1,1) = {" +Qe +Pw +Pw +Pw +Pw +Pw +Pw +kH +rC +SC +Tu +Fp +Pw +Pw +BJ +Qe +bo +Qe +UJ +Xz +mV +us +mV +rC +Xz +Xz +Xz +Xz +"} +(6,1,1) = {" +Qe +Pw +Pw +Zr +Ki +JC +Pw +Xk +rC +Pw +Pw +Pw +ir +Pw +BJ +Qe +Pw +Qe +UJ +Xz +mV +mV +mV +rC +ps +iA +Nt +Xz +"} +(7,1,1) = {" +Qe +Pw +ir +Pw +Pw +Pw +Pw +OB +rC +Pw +Pw +Pw +Pw +Pw +BJ +Qe +ir +Qe +UJ +Xz +mV +mV +mV +rC +Xz +Xz +Xz +Xz +"} +(8,1,1) = {" +Qe +Pw +Pw +Xv +aP +AU +ir +Sk +uf +fy +Ju +rc +rc +hm +Nc +Qi +Pw +Qe +UJ +Xz +rF +mV +mV +rC +ps +iA +Sj +Xz +"} +(9,1,1) = {" +Qe +Pw +Pw +Pw +Pw +Pw +Pw +Pw +Ky +Pw +Pw +Pw +ir +Pw +jj +Ky +Pw +Qe +UJ +Xz +Xz +Xz +Xz +Xz +Xz +Xz +Xz +Xz +"} +(10,1,1) = {" +Qe +NS +Kg +Kg +vc +uP +ll +af +sA +cW +ev +OY +br +EC +Al +sA +Pw +Qe +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(11,1,1) = {" +HC +LD +LD +LD +LD +LD +LD +LD +KH +LD +LD +LD +LD +LD +LD +KH +LD +Qi +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(12,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(13,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(14,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(15,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(16,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(17,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +UJ +"} +(18,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +"} +(19,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +tA +"} +(20,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(21,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(22,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(23,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(24,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(25,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(26,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(27,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(28,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(29,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(30,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(31,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(32,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(33,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(34,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(35,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(36,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(37,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(38,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ee +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Ph +Fe +tA +"} +(39,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +Fe +tA +"} +(40,1,1) = {" +UJ +UJ +UJ +UJ +UJ +UJ +UJ +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +tA +"} diff --git a/_maps/map_files/templates/piratbase.dmm b/_maps/map_files/templates/piratbase.dmm new file mode 100644 index 00000000000..c3aec815485 --- /dev/null +++ b/_maps/map_files/templates/piratbase.dmm @@ -0,0 +1,27773 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aa" = ( +/obj/structure/closet/emcloset, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"ac" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/shutters{ + id_tag = "prison_block_shutters" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/turf_decal/delivery/red, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"ad" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/food/drinks/cans/energy, +/obj/item/reagent_containers/food/snacks/meat, +/obj/item/reagent_containers/food/snacks/bun, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"ae" = ( +/obj/machinery/door/airlock/highsecurity{ + req_access = list(161); + hackProof = 1; + aiControlDisabled = 1; + heat_proof = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"af" = ( +/obj/machinery/light/small, +/obj/machinery/portable_atmospherics/canister/oxygen{ + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"ag" = ( +/obj/effect/landmark/tiles/damageturf, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"ah" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/observ) +"ai" = ( +/obj/machinery/vending/snack/free, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"aj" = ( +/obj/item/storage/firstaid/o2/empty, +/obj/item/reagent_containers/hypospray/autoinjector, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"ak" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"am" = ( +/obj/structure/railing{ + layer = 4.2 + }, +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/spacecash/c1000{ + amount = 10000 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"an" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"ao" = ( +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/arrivals) +"ar" = ( +/obj/machinery/power/solar_control/autostart, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"at" = ( +/obj/structure/sign/biohazard{ + pixel_y = 32 + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"au" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"av" = ( +/obj/structure/grille/broken, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"aw" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"ax" = ( +/obj/structure/sign/biohazard{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"ay" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/turf/space, +/area/space) +"az" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/siding/thinplating/corner{ + color = "#F0E68C"; + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"aA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"aB" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"aC" = ( +/obj/machinery/door/airlock, +/obj/effect/decal/cleanable/blood/writing, +/obj/structure/barricade/wooden, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"aD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"aF" = ( +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"aG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"aH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"aI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"aJ" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"aN" = ( +/obj/effect/turf_decal/caution/stand_clear/white{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"aO" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/prison_solar) +"aR" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26; + start_charge = 0 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/hypospray/autoinjector/charcoal, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"aT" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/kitchen_machine/microwave{ + pixel_x = -1; + pixel_y = 7 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"aU" = ( +/obj/item/clothing/suit/bio_suit/scientist, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"aV" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"aX" = ( +/obj/machinery/atmospherics/binary/volume_pump{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"aY" = ( +/obj/machinery/door/airlock/research/glass{ + req_access = list(161); + aiControlDisabled = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"bb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/photocopier, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"bc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"bd" = ( +/obj/machinery/door_control{ + id = "prison_block_shutters"; + name = "Prison shutters"; + req_access = list(160); + pixel_x = -24; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"bf" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/kitchen/knife/plastic, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"bg" = ( +/obj/structure/table, +/obj/item/trash/spacetwinkie, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"bh" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"bi" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/wall/shuttle/onlyselfsmooth/nodiagonal{ + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi' + }, +/area/shuttle/pirate_corvette) +"bj" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list(162); + name = "Prison maintenance" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"bk" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/arrivals) +"bl" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/sheet/metal, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"bp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"bq" = ( +/obj/machinery/door/airlock, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/lab_hall) +"br" = ( +/obj/structure/table, +/obj/item/stack/medical/ointment/advanced, +/obj/machinery/alarm/syndicate{ + dir = 1; + pixel_y = -24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"bs" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"bu" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/structure/fans/tiny, +/obj/machinery/door/poddoor{ + id_tag = "arrivalspirat_blast" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"bv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"bw" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/structure/mirror{ + pixel_y = 26 + }, +/obj/effect/bump_teleporter{ + density = 0; + id = "pirat_n2" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"bx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"bA" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood{ + icon_state = "wood-broken5"; + tag = "icon-wood-broken5" + }, +/area/ruin/space/pirate_base/atmos) +"bC" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"bD" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"bE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/grenade/clusterbuster/teargas, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"bF" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"bG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/stack/ore/bluespace_crystal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"bI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"bJ" = ( +/turf/simulated/wall/r_wall/coated, +/area/ruin/space/pirate_base/lab_maint) +"bK" = ( +/obj/structure/closet/crate, +/obj/item/reagent_containers/syringe/lethal, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/pill/haloperidol{ + pixel_y = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"bL" = ( +/obj/structure/closet/crate/can, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"bM" = ( +/turf/simulated/floor/plasteel{ + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"bO" = ( +/obj/effect/decal/cleanable/fungus, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/mining) +"bP" = ( +/obj/machinery/door/window/brigdoor{ + req_access = list(161); + dir = 2 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"bS" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/machinery/alarm/syndicate{ + dir = 1; + pixel_y = -24; + req_access = list(160) + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"bT" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"bV" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/sign/poster/official/spiders{ + pixel_x = -32 + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"bX" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2 + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"bY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"bZ" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ca" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"cb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/observ) +"cc" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/atrium) +"cd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/reagent_containers/food/snacks/meat/bird, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"ce" = ( +/obj/docking_port/mobile{ + dir = 8; + height = 19; + id = "pirateship"; + name = "Pirate Corvette"; + rebuildable = 1; + width = 17; + dwidth = 8 + }, +/obj/docking_port/stationary{ + dir = 8; + height = 19; + id = "pirateship_home"; + name = "Homebase"; + width = 17; + pixel_x = 20; + dwidth = 8 + }, +/obj/effect/turf_decal/caution{ + dir = 4; + do_not_delete_me = 1 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel/airless{ + icon_state = "podfloor_light"; + icon_regular_floor = "podfloor_light" + }, +/area/shuttle/pirate_corvette) +"cf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/space/pirate_base/laboratory) +"ci" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/lab_solar) +"cj" = ( +/obj/structure/table, +/obj/structure/sign/poster/contraband/revolver{ + pixel_y = 32 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = -4; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/ammo_box/magazine/m10mm{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/gun/projectile/automatic/pistol{ + pixel_y = 6; + pixel_x = -2 + }, +/obj/item/gun/projectile/automatic/pistol{ + pixel_x = 3 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"cm" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"cn" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"co" = ( +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"cp" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/pill/patch/silver_sulf{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/pill/patch/silver_sulf{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/stack/medical/ointment, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"cq" = ( +/obj/structure/lattice, +/obj/structure/grille, +/turf/space, +/area/space) +"cr" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/lab_sec) +"cs" = ( +/obj/machinery/atmospherics/binary/volume_pump{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"ct" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"cu" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"cv" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"cw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"cx" = ( +/obj/structure/closet{ + icon_state = "bio_scientist"; + name = "level-3 biohazard suit closet" + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"cy" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/rack, +/obj/item/clothing/gloves/color/fyellow/old, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"cz" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"cA" = ( +/obj/item/melee/energy/sword/pirate{ + pixel_y = 6 + }, +/obj/structure/rack, +/obj/item/melee/energy/sword/pirate{ + pixel_y = 4; + pixel_x = 4 + }, +/obj/item/melee/energy/sword/pirate{ + pixel_y = 2; + pixel_x = 8 + }, +/obj/item/melee/energy/sword/pirate{ + pixel_x = 12 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/energy_swords{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"cD" = ( +/obj/machinery/door_control{ + id = "arrivalspirat_blast"; + name = "BlastDoor"; + req_access = list(160); + pixel_y = -24; + pixel_x = 8 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/arrivals) +"cE" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 4 + }, +/obj/structure/flora/ausbushes/leafybush, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"cG" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"cH" = ( +/obj/effect/decal/warning_stripes/southeast, +/obj/machinery/flasher{ + desc = "A floor-mounted flashbulb device."; + id = "viru2"; + layer = 5; + pixel_y = -24; + range = 3 + }, +/obj/structure/table/glass, +/obj/item/paper, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"cI" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"cJ" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"cM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"cN" = ( +/obj/effect/turf_decal/siding/brown, +/obj/machinery/light, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"cO" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/double, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"cP" = ( +/obj/structure/table, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"cQ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/atrium) +"cR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"cS" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/lab_hall) +"cT" = ( +/obj/structure/table/reinforced, +/obj/item/storage/fancy/donut_box, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"cU" = ( +/obj/structure/sink/kitchen{ + pixel_y = 28; + name = "sink" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/shuttle/pirate_corvette) +"cV" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/secure/biohazard{ + req_access = list(161) + }, +/obj/item/reagent_containers/glass/bottle/retrovirus, +/obj/item/slimepotion/speed{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"cW" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/brown/corner, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"cX" = ( +/obj/structure/railing, +/obj/machinery/vending/shoedispenser, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_atrium) +"cY" = ( +/obj/structure/lattice, +/obj/structure/sign/poster/official/tsf_emblem{ + desc = "На плакате написанно: Закрытый объект ТСФ. Вход воспрещен!"; + pixel_x = 32 + }, +/turf/space, +/area/space) +"cZ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"da" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/wheat/rice, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"db" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"dc" = ( +/obj/machinery/slot_machine, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"dd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"df" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 6 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 1 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"dg" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"dh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/tiles/burnturf, +/obj/structure/closet/walllocker/emerglocker/west, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"di" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen{ + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"dj" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/structure/sign/poster/contraband/d_day_promo{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"dk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/sink/kitchen{ + pixel_y = 26 + }, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"dl" = ( +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/obj/structure/sign/poster/official/mr_cheng{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"dm" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"dn" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"do" = ( +/obj/structure/disposalpipe/junction{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"dr" = ( +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 8 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"ds" = ( +/obj/effect/turf_decal/box, +/obj/machinery/light, +/obj/structure/closet/crate/secure/gear{ + req_access = list(160) + }, +/obj/item/reagent_containers/spray/pepper, +/obj/item/reagent_containers/spray/pepper{ + pixel_x = 5; + pixel_y = 3 + }, +/obj/item/grenade/flashbang, +/obj/item/grenade/flashbang{ + pixel_y = -1 + }, +/obj/item/flash{ + pixel_x = -4 + }, +/obj/item/clothing/accessory/holster, +/obj/item/clothing/accessory/holster, +/obj/item/clothing/accessory/holster, +/obj/item/clothing/accessory/holster, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"du" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-j2" + }, +/obj/structure/sign/custodian{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"dw" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"dx" = ( +/obj/structure/railing{ + layer = 4.2 + }, +/obj/machinery/vending/cigarette/free, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"dy" = ( +/obj/machinery/door/window/brigdoor{ + req_access = list(161); + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonxeno_blast" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"dz" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"dB" = ( +/obj/structure/table/reinforced, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/melee/baton/loaded, +/obj/item/melee/baton/loaded, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"dD" = ( +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"dE" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + req_access = list(161); + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"dF" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"dJ" = ( +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"dL" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/organ/internal/body_egg/alien_embryo, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"dM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"dN" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"dO" = ( +/obj/structure/table/reinforced, +/obj/machinery/door_control{ + id = "piratehutters"; + name = "Shutters"; + req_access = list(160); + pixel_y = 6; + pixel_x = 6 + }, +/obj/item/card/id/thunderdome/red{ + name = "Pirate ID"; + registered_name = "Pirate"; + access = list(160,26); + desc = "A card used to determine access across."; + assignment = "Pirate" + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"dP" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"dQ" = ( +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + req_access = list(160) + }, +/obj/item/storage/backpack/satchel_sec, +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/head/soft/sec, +/obj/item/clothing/glasses/hud/security/sunglasses, +/obj/item/holosign_creator/security, +/obj/item/clothing/gloves/combat, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"dS" = ( +/obj/structure/railing{ + dir = 9 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/prison_solar) +"dW" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "browncorner" + }, +/area/ruin/space/pirate_base/mining) +"dX" = ( +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"dZ" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/recharger{ + pixel_x = 7; + pixel_y = -1 + }, +/obj/machinery/recharger{ + pixel_x = -5; + pixel_y = -1 + }, +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/machinery/recharger{ + pixel_x = 7; + pixel_y = 8 + }, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"eb" = ( +/obj/item/stack/rods, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"ec" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/egg_smudge, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"ed" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/space/pirate_base/laboratory) +"ef" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1; + stat = 1; + icon_state = "syndieturret2"; + icon_state_initial = "syndieturret2" + }, +/obj/effect/decal/cleanable/generic, +/obj/structure/railing{ + dir = 10 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"eh" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater, +/turf/simulated/floor/shuttle/plating, +/area/shuttle/pirate_corvette) +"ei" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"ej" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"ek" = ( +/obj/machinery/door/airlock/research{ + aiControlDisabled = 1; + req_access = list(161) + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"el" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"em" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/kitchen/knife/glassshiv, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"en" = ( +/turf/simulated/wall/shuttle/nosmooth{ + dir = 9; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners" + }, +/area/shuttle/pirate_corvette) +"ep" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/prison_solar) +"er" = ( +/obj/machinery/defibrillator_mount/loaded{ + pixel_x = -32; + pixel_y = -2 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"et" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"eu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/remains/xeno, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ew" = ( +/obj/structure/rack, +/obj/item/storage/box/syndie_kit/blackops_kit, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"ex" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"ey" = ( +/obj/structure/grille, +/obj/structure/window/full/shuttle/gray, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 2; + id_tag = "piratehutters"; + name = "Blast Shutters" + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"ez" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"eB" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/siding/thinplating/corner{ + color = "#F0E68C"; + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"eC" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/xeno_lab) +"eE" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/storage/box/syringes{ + pixel_x = 10; + pixel_y = -3 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"eF" = ( +/obj/structure/table, +/obj/item/storage/firstaid/machine, +/obj/item/multitool, +/obj/item/multitool, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"eG" = ( +/obj/machinery/door/airlock/research/glass{ + req_access = list(161); + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"eL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"eN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atrium) +"eO" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/chair/stool/bar, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"eP" = ( +/obj/structure/table, +/obj/item/storage/box/mousetraps, +/obj/item/soap, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"eS" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/portables_connector, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"eT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/solar_control/autostart, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"eU" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"eW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/storage/belt/utility, +/obj/item/crowbar/red, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"eX" = ( +/obj/structure/inflatable, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"eY" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"fa" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"fc" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/poker, +/obj/item/deck/cards, +/obj/item/dice/d20, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"fd" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"fe" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 12 + }, +/obj/item/stack/sheet/glass{ + amount = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"ff" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/obj/effect/turf_decal/caution, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"fg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"fj" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"fl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/food/condiment/soymilk, +/obj/item/reagent_containers/food/condiment/flour, +/obj/structure/closet/secure_closet{ + name = "kitchen cabinet" + }, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/rice, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"fo" = ( +/obj/structure/window/reinforced, +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 4 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/observ) +"fp" = ( +/obj/structure/rack, +/obj/item/storage/box/syndie_kit/pistol_ammo, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"fq" = ( +/obj/machinery/computer/operating, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"fr" = ( +/obj/structure/sign/poster/contraband/wanted{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"fs" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"ft" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/gloves/color/latex, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"fu" = ( +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/atrium) +"fv" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"fx" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"fy" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/telecomms) +"fz" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"fA" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/sign/poster/official/air1{ + pixel_y = -32 + }, +/obj/structure/dispenser/oxygen, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"fB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"fC" = ( +/obj/structure/ore_box, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"fE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 10 + }, +/obj/item/clothing/head/bio_hood/scientist, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"fH" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"fJ" = ( +/obj/structure/closet/secure_closet{ + req_access = list(160) + }, +/obj/item/clothing/shoes/orange, +/obj/item/clothing/head/beanie/orange, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"fK" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/closet, +/obj/item/seeds/wheat, +/obj/item/seeds/tomato, +/obj/item/seeds/tobacco, +/obj/item/seeds/sugarcane, +/obj/item/seeds/soya, +/obj/item/seeds/potato, +/obj/item/seeds/plump, +/obj/item/seeds/grass, +/obj/item/seeds/corn, +/obj/item/seeds/coffee, +/obj/item/seeds/cocoapod, +/obj/item/seeds/cherry, +/obj/item/seeds/carrot, +/obj/item/seeds/banana, +/obj/item/seeds/apple, +/obj/item/seeds/orange, +/obj/item/seeds/chanter, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"fM" = ( +/obj/machinery/optable, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"fP" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"fQ" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"fR" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/rcd, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"fS" = ( +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"fT" = ( +/obj/structure/sink{ + pixel_y = 22 + }, +/obj/effect/decal/warning_stripes/blue, +/obj/effect/decal/warning_stripes/southeast, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/laboratory) +"fV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"fW" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/telecomms) +"fZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"gb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"gc" = ( +/obj/structure/table, +/obj/item/clothing/glasses/meson{ + pixel_y = 3; + pixel_x = -2 + }, +/obj/item/clothing/glasses/meson{ + pixel_y = 7; + pixel_x = 3 + }, +/obj/item/clothing/glasses/meson, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkredcorners" + }, +/area/shuttle/pirate_corvette) +"gd" = ( +/obj/machinery/conveyor{ + id = "pirategarbage"; + dir = 1 + }, +/obj/machinery/mineral/processing_unit{ + output_dir = 1; + input_dir = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"ge" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"gg" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/analyzer, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"gh" = ( +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"gi" = ( +/obj/effect/turf_decal/box{ + do_not_delete_me = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"gj" = ( +/obj/machinery/door/airlock/wood{ + name = "Toilet" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"gk" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"gl" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/light/small, +/obj/machinery/door_control{ + id = "labsolarbolts"; + normaldoorcontrol = 1; + pixel_y = 24; + req_access = list(160); + specialfunctions = 4 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"gm" = ( +/obj/item/pickaxe/safety, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"gn" = ( +/obj/structure/railing{ + layer = 4.2; + dir = 6 + }, +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/food/snacks/meat, +/obj/item/reagent_containers/food/snacks/bun, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_atrium) +"go" = ( +/obj/structure/cable/yellow{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/solar_control/autostart, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"gp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/body_bag/biohazard, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"gq" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"gs" = ( +/obj/item/reagent_containers/food/snacks/grown/banana, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"gt" = ( +/obj/structure/table, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"gw" = ( +/obj/structure/table, +/obj/item/reagent_containers/food/pill/patch/synthflesh, +/obj/item/reagent_containers/food/pill/patch/synthflesh{ + pixel_x = 6; + pixel_y = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"gx" = ( +/obj/machinery/hydroponics/constructable, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"gz" = ( +/obj/structure/table/tray, +/obj/item/scalpel/laser{ + pixel_y = 17 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/hemostat, +/obj/item/circular_saw{ + pixel_y = 5 + }, +/obj/item/retractor, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"gA" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"gC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"gE" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"gH" = ( +/obj/machinery/door/airlock/medical/glass{ + req_access = list(160) + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_medical) +"gI" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/shower{ + dir = 1 + }, +/obj/effect/turf_decal{ + icon_state = "plumbing"; + name = "plumbing"; + pixel_y = -10 + }, +/obj/item/bikehorn/rubberducky{ + pixel_y = 8 + }, +/obj/structure/curtain/open/shower, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/observ) +"gK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"gL" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"gM" = ( +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"gN" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/plasteel{ + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"gO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"gQ" = ( +/obj/machinery/door_control{ + id = "arrivalspirat_blast"; + name = "BlastDoor"; + req_access = list(160); + pixel_y = 24; + pixel_x = 8 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"gR" = ( +/obj/machinery/portable_atmospherics/canister/oxygen{ + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"gS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"gT" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"gU" = ( +/obj/machinery/alarm{ + dir = 1; + pixel_y = -25; + req_access = list(160); + name = "Pirate Corvette Air alarm" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/holosign_creator/atmos, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"gY" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/reagent_containers/glass/bottle, +/obj/item/storage/bag/trash, +/obj/item/trash/tapetrash, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"gZ" = ( +/obj/machinery/door/airlock/medical{ + req_access = list(161); + locked = 1; + welded = 1; + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"ha" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"hb" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"hc" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/nitrogenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/nitrogenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/salglu, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/nitrogen, +/obj/item/tank/internals/emergency_oxygen/plasma, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"he" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"hf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161); + locked = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"hg" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"hh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"hi" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"hk" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3; + pixel_y = 11 + }, +/mob/living/simple_animal/hostile/zombie/whiteship/fast{ + maxHealth = 30; + health = 30 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/card/id/warden{ + access = list(161); + name = "Lab access ID"; + registered_name = "Access Card"; + desc = "ID Card." + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"hm" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/virus_lab) +"ho" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"hp" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"hq" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood{ + icon_state = "wood-broken6"; + tag = "icon-wood-broken6" + }, +/area/ruin/space/pirate_base/atmos) +"hr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/vomit, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"hs" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"hu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"hw" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"hx" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 10 + }, +/obj/item/reagent_containers/glass/bucket/wooden, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"hz" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"hA" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/xeno_lab) +"hB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"hC" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 8; + target_pressure = 202.325 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"hD" = ( +/obj/effect/decal/warning_stripes/northwest, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"hE" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"hF" = ( +/obj/structure/holosign/barrier, +/obj/machinery/camera{ + c_tag = "LP7 Lab Exit"; + network = list("PPrison") + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"hG" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 8; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"hI" = ( +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"hJ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"hL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/door/poddoor{ + id_tag = "laborpirat_blast"; + use_power = 0 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"hM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/mouse, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"hN" = ( +/obj/item/shard{ + pixel_x = 4 + }, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"hO" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/atmos) +"hP" = ( +/obj/item/clothing/suit/armor/vest/old, +/obj/machinery/camera{ + c_tag = "LP7 Prison Hall"; + network = list("PPrison"); + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"hQ" = ( +/obj/machinery/camera{ + c_tag = "LP7 Northwestern solar"; + network = list("PPrison") + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"hR" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_hall) +"hT" = ( +/obj/structure/railing, +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"hU" = ( +/obj/structure/sign/poster/official/safety_internals{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"hV" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/obj/effect/turf_decal/caution, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"hW" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/obj/item/crowbar, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"hX" = ( +/obj/structure/table, +/obj/item/healthanalyzer/advanced, +/obj/item/stack/medical/bruise_pack/advanced, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"hY" = ( +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"hZ" = ( +/obj/machinery/door/poddoor{ + id_tag = "prisonvirus_blast" + }, +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/obj/machinery/door/window/brigdoor{ + req_access = list(161); + dir = 2 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"ia" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"ic" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"id" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/structure/window/reinforced, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"if" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/shuttle/pirate_corvette) +"ig" = ( +/obj/item/bodybag/biohazard, +/obj/structure/rack, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26; + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"ih" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"ii" = ( +/obj/machinery/suit_storage_unit, +/obj/item/clothing/mask/breath, +/obj/item/clothing/head/helmet/space/nasavoid{ + name = "Old Void Helmet"; + desc = "Old space helmet" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"ij" = ( +/obj/structure/bed, +/obj/item/bedsheet/mime, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/item/clothing/under/pj/red, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"ik" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + icon_state = "egg_hatched"; + name = "egg" + }, +/obj/item/clothing/mask/facehugger, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"il" = ( +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/observ) +"im" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/item/stack/ore/bluespace_crystal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"in" = ( +/obj/item/stack/sheet/wood, +/obj/structure/table_frame/wood, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"ir" = ( +/obj/structure/closet{ + icon_state = "bio_scientist"; + name = "level-3 biohazard suit closet" + }, +/obj/item/clothing/suit/bio_suit/scientist, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"is" = ( +/obj/structure/rack, +/obj/item/stock_parts/manipulator/nano, +/obj/item/t_scanner, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"it" = ( +/turf/simulated/wall/shuttle/nosmooth{ + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi' + }, +/area/shuttle/pirate_corvette) +"iu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"iv" = ( +/obj/structure/table/reinforced, +/obj/machinery/door_control{ + id = "rightpirat_blast"; + name = "Right BlastDoor"; + req_access = list(160); + pixel_y = 6; + pixel_x = 6 + }, +/obj/machinery/door_control{ + id = "leftpirat_blast"; + name = "Left BlastDoor"; + req_access = list(160); + pixel_y = 6; + pixel_x = -6 + }, +/obj/machinery/light_switch{ + pixel_y = -2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"ix" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"iy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"iz" = ( +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"iB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/crate/engineering, +/obj/item/access_control, +/obj/item/access_control, +/obj/item/airlock_electronics, +/obj/item/airlock_electronics, +/obj/item/stack/cable_coil/random, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"iC" = ( +/obj/item/trash/spentcasing, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"iG" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"iI" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"iK" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"iL" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"iM" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/lab_maint) +"iO" = ( +/obj/structure/holohoop{ + density = 0; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"iQ" = ( +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"iR" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/space, +/area/space) +"iS" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"iT" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"iU" = ( +/obj/machinery/bodyscanner, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"iV" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"iX" = ( +/obj/structure/lattice/catwalk, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/space, +/area/space) +"iY" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, +/obj/machinery/computer/monitor, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"iZ" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/closet/crate/can, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"jb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"jc" = ( +/obj/structure/rack, +/obj/item/wirecutters, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"jd" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"je" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 5; + pixel_x = -2 + }, +/turf/simulated/wall/shuttle/nosmooth{ + dir = 5; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners"; + density = 0 + }, +/area/shuttle/pirate_corvette) +"jg" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external{ + req_access = list(160); + hackProof = 1; + aiControlDisabled = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "rightpirat_blast" + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"jh" = ( +/obj/machinery/tcomms/core, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/bluegrid, +/area/ruin/space/pirate_base/telecomms) +"ji" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/obj/structure/extinguisher_cabinet{ + pixel_x = -28 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"jj" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list(162) + }, +/obj/structure/barricade/wooden/crude{ + max_integrity = 150; + obj_integrity = 150; + layer = 3.5 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"jl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"jm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/lab_hall) +"jn" = ( +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"jp" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/item/reagent_containers/glass/bucket, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"jq" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"js" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"jt" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/camera{ + c_tag = "LP7 Southeastern solar"; + network = list("PPrison"); + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"ju" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"jw" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"jx" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/turretid/lethal{ + ailock = 1; + dir = 1; + faction = "pirate"; + name = "Solar turrets"; + req_access = list(160); + syndicate = 1; + pixel_y = 28; + pixel_x = -2 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"jy" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"jz" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/machinery/vending/autodrobe, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_atrium) +"jA" = ( +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"jC" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/structure/closet/crate/hydroponics, +/obj/item/clothing/mask/bandana/botany, +/obj/item/clothing/suit/apron/overalls, +/obj/item/clothing/glasses/hud/hydroponic, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"jG" = ( +/obj/item/twohanded/required/kirbyplants, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_atrium) +"jI" = ( +/obj/effect/turf_decal/tile/neutral{ + alpha = 75; + color = "black"; + icon_state = "tile_full" + }, +/obj/effect/turf_decal/stripes/line{ + icon = 'icons/turf/floors.dmi'; + icon_state = "siding8" + }, +/obj/effect/turf_decal/stripes/line{ + icon = 'icons/turf/floors.dmi'; + icon_state = "siding4" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "rampbottom" + }, +/area/ruin/space/pirate_base/security_atrium) +"jJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"jM" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"jN" = ( +/obj/machinery/computer/shuttle{ + shuttleId = "pirateship"; + possible_destinations = "pirateship_home;pirateship_custom"; + use_power = 0 + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"jO" = ( +/obj/machinery/atmospherics/pipe/manifold4w/hidden, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"jP" = ( +/obj/structure/closet{ + icon_state = "bio_scientist"; + name = "level-3 biohazard suit closet" + }, +/obj/item/clothing/suit/bio_suit/scientist, +/obj/item/clothing/head/bio_hood/scientist, +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"jR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"jS" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/cigarettes, +/obj/item/lighter{ + pixel_x = 6 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"jT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"jU" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/greenglow, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"jW" = ( +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"jZ" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/virus_lab) +"kb" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/shuttle/engine/heater{ + opacity = 1 + }, +/turf/simulated/floor/shuttle/plating, +/area/shuttle/pirate_corvette) +"kc" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/carpet/red, +/area/ruin/space/pirate_base/security_atrium) +"kd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ke" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 8; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/structure/rack, +/obj/item/storage/firstaid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"kg" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"ki" = ( +/obj/item/clothing/head/bio_hood/scientist, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"kk" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"kl" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"km" = ( +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "darkredcorners" + }, +/area/ruin/space/pirate_base/lab_sec) +"kn" = ( +/obj/structure/railing{ + dir = 8 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/prison_solar) +"ko" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/prison_solar) +"ks" = ( +/obj/machinery/computer/arcade, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"kt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"ku" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/sink{ + dir = 8; + pixel_x = -13 + }, +/obj/structure/mirror{ + pixel_x = -25 + }, +/obj/machinery/light, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/observ) +"kx" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"ky" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"kA" = ( +/obj/machinery/computer/operating, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"kB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"kE" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 5 + }, +/obj/structure/closet/crate/trashcart, +/obj/item/airlock_electronics, +/obj/item/light/tube, +/obj/item/light/bulb, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"kF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/toolbox/mechanical, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/telecomms) +"kG" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4; + do_not_delete_me = 1 + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"kH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"kI" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"kJ" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + dir = 9; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/xeno_lab) +"kN" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/structure/window/reinforced, +/obj/structure/disposalpipe/segment, +/obj/structure/closet/crate/trashcart, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"kP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/limb, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"kQ" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"kS" = ( +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"kU" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/alarm/syndicate{ + dir = 1; + pixel_y = -24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"kV" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"kY" = ( +/obj/structure/bed, +/obj/item/bedsheet/fluff, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"la" = ( +/obj/effect/decal/cleanable/blood, +/obj/effect/mob_spawn/human/corpse, +/obj/item/clothing/under/color/orange/prison, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"le" = ( +/obj/structure/chair/sofa/right, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"lf" = ( +/obj/structure/sign/poster/official/obey{ + pixel_x = 32 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"lg" = ( +/obj/machinery/door/airlock/glass{ + req_access = list(162); + name = "Prison" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"lh" = ( +/obj/structure/railing{ + layer = 4.2 + }, +/obj/item/twohanded/required/kirbyplants{ + layer = 3.9 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"lj" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dust, +/obj/structure/sign/vacuum/external{ + pixel_y = -32 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"lk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ll" = ( +/obj/effect/landmark/tiles/burnturf, +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 1; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"lm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/flour, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"ln" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"lo" = ( +/obj/item/tank/internals/emergency_oxygen/engi/empty, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"lp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"lq" = ( +/obj/machinery/space_heater, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"lr" = ( +/obj/structure/chair/office/light, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"lt" = ( +/obj/machinery/door/airlock/wood, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"lu" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"lv" = ( +/obj/structure/table, +/obj/item/multitool, +/obj/item/wrench, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"lw" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26; + start_charge = 0 + }, +/obj/structure/rack, +/obj/item/analyzer, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"lx" = ( +/obj/structure/rack, +/obj/item/gun/energy/taser, +/obj/item/gun/energy/taser, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"lz" = ( +/obj/machinery/door/poddoor/preopen{ + id_tag = "arrivalspirat_blast" + }, +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1; + name = "External airlock" + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"lA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"lD" = ( +/obj/structure/table, +/obj/item/reagent_containers/spray/cleaner/medical{ + pixel_x = -3; + pixel_y = 1 + }, +/obj/item/reagent_containers/glass/bottle/ether{ + pixel_x = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"lE" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"lF" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"lG" = ( +/obj/structure/table, +/obj/item/stack/nanopaste, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"lI" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/observ) +"lK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"lN" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"lO" = ( +/obj/structure/closet{ + icon_state = "emergency"; + name = "emergency closet" + }, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/reagent_containers/food/pill/salbutamol, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"lP" = ( +/obj/machinery/door/window/northleft, +/obj/effect/turf_decal/stripes/gold{ + dir = 1 + }, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"lQ" = ( +/obj/item/reagent_containers/food/drinks/bottle/vodka{ + pixel_x = 5; + pixel_y = 15 + }, +/obj/effect/spawner/lootdrop/maintenance, +/obj/structure/table/wood/fancy, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"lR" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/berry, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"lT" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"lV" = ( +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"lW" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"lX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"lY" = ( +/turf/template_noop, +/area/template_noop) +"lZ" = ( +/obj/item/stack/cable_coil{ + amount = 2 + }, +/obj/item/stack/tile/plasteel, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"ma" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/obj/machinery/constructable_frame/machine_frame, +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"mc" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/atmos) +"mg" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"mh" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/virology) +"mi" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"mj" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/lab_hall) +"mk" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"ml" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"mm" = ( +/obj/machinery/atmospherics/binary/pump/on{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"mo" = ( +/obj/structure/table/reinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/item/clothing/mask/gas, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"mp" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"mq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"mt" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list(162) + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"mu" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 5 + }, +/obj/structure/sign/poster/contraband/eat{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"mv" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/circuitboard/broken, +/obj/item/circuitboard/broken, +/obj/item/stock_parts/manipulator/femto, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"mw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "labburn"; + name = "Blast Door"; + opacity = 0 + }, +/obj/effect/spawner/window/reinforced/plasma, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"mx" = ( +/obj/structure/closet/emcloset, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"my" = ( +/obj/structure/table/wood, +/obj/item/pizzabox/meat{ + pixel_y = 10 + }, +/turf/simulated/floor/plasteel{ + icon_state = "brown" + }, +/area/ruin/space/pirate_base/security_atrium) +"mz" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"mA" = ( +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26; + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"mB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"mC" = ( +/obj/item/clothing/gloves/color/latex/nitrile, +/obj/structure/closet/secure_closet/medical2{ + req_access = list(160) + }, +/obj/item/mmi, +/obj/item/stack/nanopaste, +/obj/item/stack/nanopaste, +/obj/item/storage/toolbox/syndicate, +/obj/item/storage/box/syringes{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/storage/box/disks, +/obj/item/robot_parts/r_leg, +/obj/item/robot_parts/l_leg, +/obj/item/robot_parts/r_arm, +/obj/item/robot_parts/l_arm, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/adv, +/obj/item/handheld_defibrillator, +/obj/item/storage/box/bodybags, +/obj/item/soap, +/obj/item/storage/pill_bottle/patch_pack, +/obj/item/storage/pill_bottle, +/obj/item/storage/belt/medical, +/obj/item/clothing/glasses/hud/health, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/ruin/space/pirate_base/security_medical) +"mD" = ( +/obj/structure/table/glass, +/obj/item/stack/packageWrap, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26; + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"mE" = ( +/obj/structure/chair/sofa/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"mH" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id_tag = "midpoint_shut"; + name = "Midpoint Shutters"; + dir = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/arrivals) +"mK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"mL" = ( +/obj/structure/closet/crate, +/obj/item/stack/sheet/metal{ + amount = 24 + }, +/obj/item/stack/sheet/glass{ + amount = 14 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 9 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/atrium) +"mM" = ( +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"mN" = ( +/obj/structure/table, +/obj/item/taperecorder{ + pixel_x = -3 + }, +/obj/item/hand_labeler{ + pixel_x = -2; + pixel_y = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"mO" = ( +/obj/machinery/vending/cola/free, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"mP" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/table, +/obj/item/radio, +/obj/item/radio{ + pixel_x = 3; + pixel_y = 1 + }, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"mU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/mining) +"mW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + pixel_y = 26; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/stack/rods{ + amount = 18 + }, +/obj/structure/table, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"mX" = ( +/obj/effect/turf_decal/siding/blue/corner, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"mZ" = ( +/turf/simulated/wall/shuttle/nosmooth{ + dir = 10; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners" + }, +/area/shuttle/pirate_corvette) +"na" = ( +/obj/machinery/door/airlock/research/glass{ + req_access = list(161); + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"nb" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"nc" = ( +/obj/machinery/door/airlock/glass{ + name = "Kitchen" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/kitchen) +"nd" = ( +/obj/effect/decal/cleanable/blood/xeno/splatter, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"nf" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"ng" = ( +/obj/machinery/conveyor{ + id = "pirategarbagebase"; + dir = 4 + }, +/obj/structure/plasticflaps, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"nh" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 9 + }, +/obj/structure/table, +/obj/item/flashlight/flare/glowstick/random, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"ni" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"nj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/ants, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"nl" = ( +/obj/structure/chair/office/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"nm" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"nn" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/chem_heater, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virology) +"no" = ( +/obj/item/reagent_containers/food/pill/morphine, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"np" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"nq" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/light{ + dir = 1 + }, +/obj/machinery/iv_drip, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"ns" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"nv" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2 + }, +/obj/structure/holosign/barrier, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"nw" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/atrium) +"nx" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160); + name = "Storage" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"ny" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/virus_lab) +"nA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/closet/walllocker/emerglocker/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"nB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"nD" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonxeno_blast" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/xeno_lab) +"nE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "darkbluefull" + }, +/area/ruin/space/pirate_base/lab_medical) +"nJ" = ( +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"nK" = ( +/obj/structure/table, +/obj/item/disk/tech_disk/loaded/biotech{ + pixel_y = -2 + }, +/obj/item/stamp/rd{ + pixel_y = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"nL" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"nN" = ( +/obj/structure/chair/office, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"nP" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"nQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/belt/medical, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"nT" = ( +/obj/machinery/chem_master, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virology) +"nU" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"nV" = ( +/obj/machinery/door/airlock/highsecurity{ + req_access = list(161); + hackProof = 1; + aiControlDisabled = 1; + heat_proof = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"nW" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"nX" = ( +/obj/machinery/door/window{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"nY" = ( +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"oa" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/turretid/lethal{ + ailock = 1; + dir = 1; + faction = "pirate"; + name = "Solar turrets"; + req_access = list(160); + syndicate = 1; + pixel_y = -28; + pixel_x = -2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"od" = ( +/obj/structure/table, +/obj/item/folder/red, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"of" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 4 + }, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"oh" = ( +/obj/machinery/flasher_button{ + id = "viru1"; + layer = 4; + name = "Flasher"; + pixel_x = 24; + pixel_y = 6 + }, +/obj/machinery/flasher_button{ + id = "viru2"; + layer = 4; + name = "Flasher"; + pixel_x = 24; + pixel_y = -5 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"oj" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + dir = 6; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/xeno_lab) +"ok" = ( +/obj/structure/table_frame/wood, +/obj/structure/sign/poster/official/fruit_bowl{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"om" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atrium) +"oo" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"op" = ( +/obj/structure/table, +/obj/item/gun/energy/gun{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/gun/energy/gun, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/gun/energy/gun, +/obj/item/gun/energy/gun{ + pixel_x = -3; + pixel_y = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"oq" = ( +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/item/shard/plasma, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonxeno_blast" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/xeno_lab) +"or" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"os" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"ot" = ( +/obj/machinery/chem_master{ + pixel_x = -1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"ou" = ( +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"ov" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"ox" = ( +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"oy" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/lab_hall) +"oz" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"oA" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkredcorners" + }, +/area/shuttle/pirate_corvette) +"oD" = ( +/obj/structure/lattice, +/obj/structure/sign/poster/official/tsf_emblem{ + pixel_y = -32; + desc = "На плакате написанно: Закрытый объект ТСФ. Вход воспрещен!" + }, +/turf/space, +/area/space) +"oE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"oF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"oG" = ( +/obj/machinery/chem_dispenser, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virology) +"oI" = ( +/mob/living/simple_animal/bot/medbot/mysterious{ + desc = "Маленький темный медицинский бот. Он выглядит несколько подавленно."; + name = "Соловей"; + faction = list("neutral","silicon","pirate") + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"oK" = ( +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"oL" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"oN" = ( +/obj/structure/grille/broken, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"oO" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/medical, +/obj/item/defibrillator/loaded, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"oP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"oQ" = ( +/obj/structure/barricade/wooden{ + opacity = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"oT" = ( +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"oU" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"oV" = ( +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"oW" = ( +/obj/machinery/atmospherics/unary/tank/air, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"oX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/research/glass{ + req_access = list(161); + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"oZ" = ( +/obj/effect/turf_decal/caution, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/mining) +"pb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"pc" = ( +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"pd" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"pe" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"pg" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/landmark/tiles/damageturf, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"ph" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"pi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"pj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"pk" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/landmark/tiles/burnturf, +/obj/effect/spawner/lootdrop/spentcasing, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"pl" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"pm" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"pn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"po" = ( +/obj/structure/filingcabinet, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"pr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"pu" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"pv" = ( +/obj/machinery/slot_machine, +/obj/structure/sign/poster/contraband/have_a_puff{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"pw" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/kitchen) +"py" = ( +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/mining) +"pA" = ( +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"pB" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/bodybags/biohazard, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"pC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"pF" = ( +/obj/structure/table/reinforced, +/obj/item/stack/cable_coil/random, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/telecomms) +"pI" = ( +/obj/structure/shuttle/engine/propulsion, +/obj/structure/legionnaire_bonfire{ + invisibility = 90 + }, +/obj/structure/legionnaire_bonfire{ + invisibility = 90 + }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/turf/simulated/floor/shuttle/plating, +/area/shuttle/pirate_corvette) +"pK" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"pM" = ( +/obj/machinery/shieldgen{ + anchored = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"pN" = ( +/obj/machinery/atmospherics/unary/portables_connector, +/obj/machinery/portable_atmospherics/scrubber, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"pP" = ( +/obj/structure/table, +/obj/machinery/door/window/eastright, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/kitchen) +"pQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"pR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/simulated/floor/carpet/red, +/area/ruin/space/pirate_base/security_atrium) +"pT" = ( +/obj/structure/toilet{ + dir = 8; + layer = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/pinup_syn{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/shuttle/pirate_corvette) +"pU" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/folder/blue{ + pixel_x = 5 + }, +/obj/machinery/door_control/mimic{ + id = "secret_blast"; + icon = 'icons/obj/pda.dmi'; + icon_state = "cart-tox"; + pixel_y = 8; + pixel_x = -6; + name = "Signal Ace 2"; + desc = "Complete with integrated radio signaler!" + }, +/obj/item/radio/off, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"pW" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/mob/living/simple_animal/bot/cleanbot{ + on = 0 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"pZ" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"qa" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/inflatable, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"qc" = ( +/turf/space, +/area/space) +"qd" = ( +/obj/machinery/portable_atmospherics/canister/oxygen{ + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"qh" = ( +/obj/structure/rack, +/obj/item/tank/jetpack/oxygen{ + pixel_x = -3; + pixel_y = 2 + }, +/obj/item/tank/jetpack/oxygen, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"qj" = ( +/obj/structure/holohoop{ + density = 0; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"qk" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/machinery/vending/hydronutrients, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"ql" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"qm" = ( +/obj/structure/sign/poster/contraband/hacking_guide{ + pixel_y = 32 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"qo" = ( +/obj/structure/table/wood, +/obj/item/storage/box/cups{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner{ + pixel_x = 10; + pixel_y = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"qp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/wrench, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"qr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"qs" = ( +/obj/structure/rack, +/obj/effect/decal/cleanable/cobweb, +/obj/item/crowbar, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"qt" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"qv" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/megaphone, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"qx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"qA" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"qB" = ( +/obj/structure/falsewall, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"qD" = ( +/obj/effect/decal/warning_stripes/north, +/obj/structure/closet/crate/can, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virology) +"qG" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"qH" = ( +/obj/machinery/vending/medical{ + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"qI" = ( +/obj/effect/decal/cleanable/blood/xtracks, +/obj/machinery/camera{ + c_tag = "LP7 Laboratory"; + network = list("PPrison"); + dir = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"qK" = ( +/obj/structure/table, +/obj/item/tank/jetpack/oxygen, +/obj/item/tank/jetpack/oxygen{ + pixel_x = -7; + pixel_y = 4 + }, +/obj/item/tank/jetpack/oxygen{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/tank/jetpack/oxygen{ + pixel_x = -3; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"qL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"qM" = ( +/obj/machinery/igniter{ + id = "labins"; + luminosity = 2 + }, +/obj/effect/decal/remains/xeno, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"qN" = ( +/obj/machinery/power/smes{ + charge = 1000000; + input_level = 30000; + output_level = 10000 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"qO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"qP" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/mining) +"qQ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1; + name = "Security" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/door/poddoor/shutters/preopen{ + id_tag = "midpoint_shut"; + name = "Midpoint Shutters"; + dir = 2 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"qT" = ( +/obj/machinery/door/poddoor{ + id_tag = "laborpirat_blast"; + use_power = 0 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"qU" = ( +/obj/effect/bump_teleporter{ + icon = 'icons/obj/stationobjs.dmi'; + icon_state = "portal-syndicate"; + name = "redspace portal"; + invisibility = 0; + id = "pirate_basesynd"; + id_target = "black_market" + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/observ) +"qW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet/chestdrawer, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"qX" = ( +/obj/machinery/vending/cola/free, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"qY" = ( +/obj/structure/lattice/catwalk, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"qZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/table/wood, +/obj/item/toy/plushie/tabby_cat, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"ra" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/dropper/precision, +/obj/item/storage/fancy/vials{ + pixel_x = -2; + pixel_y = 4 + }, +/obj/structure/reagent_dispensers/virusfood{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"rc" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"rd" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"re" = ( +/obj/machinery/biogenerator, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/kitchen) +"rh" = ( +/turf/simulated/wall/rust, +/area/ruin/space/pirate_base/atrium) +"rj" = ( +/obj/structure/closet{ + icon_state = "emergency"; + name = "emergency closet" + }, +/obj/item/clothing/mask/breath, +/obj/item/tank/internals/emergency_oxygen/engi, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"rl" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "LP7 Prison Kitchen"; + network = list("PPrison"); + dir = 4 + }, +/obj/structure/closet/crate/can, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"rm" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"rn" = ( +/obj/structure/window/reinforced, +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 8 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/observ) +"rp" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"rs" = ( +/obj/structure/table/reinforced, +/obj/item/reagent_containers/spray/cleaner/medical{ + pixel_x = 2; + pixel_y = 12 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"ru" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"rv" = ( +/obj/structure/table, +/obj/item/lighter/zippo/rd, +/obj/machinery/door_control{ + id = "prisonresearch"; + name = "Research Blast"; + pixel_x = 6; + pixel_y = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"rw" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"rx" = ( +/obj/structure/closet/secure_closet{ + req_access = list(160) + }, +/obj/item/clothing/under/color/orange/prison, +/obj/item/card/id/prisoner/random, +/obj/item/clothing/head/beanie/orange, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"rA" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/space, +/area/space) +"rB" = ( +/obj/structure/table, +/obj/item/flashlight/flare/glowstick/random, +/obj/item/stack/cable_coil{ + amount = 5 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"rD" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/spiderling_remains, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"rE" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"rF" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"rH" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/brown/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"rI" = ( +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"rK" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/item/stack/sheet/mineral/plasma{ + amount = 30 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"rL" = ( +/obj/structure/chair/sofa/left{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"rP" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"rQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"rR" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"rS" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/obj/structure/sign/cargo{ + pixel_y = -32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"rT" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/bar, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"rU" = ( +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"rX" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1; + scrub_Toxins = 0 + }, +/obj/item/clothing/suit/bio_suit/scientist, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"rY" = ( +/obj/structure/chair/comfy/shuttle/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"rZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"sa" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"sb" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -13 + }, +/obj/structure/mirror{ + pixel_x = -25 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/lab_hall) +"se" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 8 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"sh" = ( +/obj/item/beach_ball/holoball, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"sj" = ( +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/mouse/rat, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"sl" = ( +/obj/structure/closet/secure_closet{ + req_access = list(160) + }, +/obj/item/clothing/under/color/orange/prison, +/obj/item/clothing/shoes/orange, +/obj/item/card/id/prisoner/random, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"sn" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/item/storage/bag/money, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"so" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/atrium) +"sp" = ( +/obj/structure/table, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/bruise_pack{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/pill/patch/styptic{ + pixel_y = 6 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"sq" = ( +/obj/structure/table/glass, +/obj/item/assembly/signaler/anomaly/bluespace, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"sr" = ( +/obj/item/inflatable/door, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"st" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/computer/crew{ + name = "Pirate hack monitoring computer" + }, +/obj/structure/sign/poster/official/space_cops{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"su" = ( +/obj/machinery/atmospherics/binary/volume_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"sv" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"sw" = ( +/obj/machinery/door/airlock/external{ + req_access = list(160); + aiControlDisabled = 1; + id_tag = "labsolarbolts"; + locked = 1 + }, +/obj/structure/fans/tiny, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"sx" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 10; + pixel_x = 2 + }, +/turf/simulated/wall/shuttle/nosmooth{ + dir = 10; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners"; + density = 0 + }, +/area/shuttle/pirate_corvette) +"sy" = ( +/obj/machinery/suit_storage_unit/pirate{ + req_access = list(160); + locked = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"sz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"sA" = ( +/obj/machinery/atmospherics/unary/tank/toxins{ + volume = 2000 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"sB" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"sC" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/stack/cable_coil, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"sD" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 9 + }, +/turf/space, +/area/space) +"sF" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"sG" = ( +/obj/structure/closet{ + icon_state = "emergency"; + name = "emergency closet" + }, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"sH" = ( +/obj/effect/decal/warning_stripes/northeast, +/obj/structure/bed, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"sI" = ( +/obj/machinery/door/airlock/glass{ + req_access = list(162) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"sJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"sK" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"sM" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"sN" = ( +/obj/structure/weightmachine/stacklifter, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"sO" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/cultivator, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"sP" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"sQ" = ( +/obj/machinery/smartfridge, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"sT" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"sU" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"sV" = ( +/obj/item/stack/sheet/glass, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"sX" = ( +/turf/simulated/wall/shuttle/nosmooth{ + dir = 6; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners" + }, +/area/shuttle/pirate_corvette) +"sY" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/disposalpipe/junction{ + dir = 8; + icon_state = "pipe-y" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"sZ" = ( +/obj/machinery/camera{ + c_tag = "LP7 Lab Entrance"; + network = list("PPrison") + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"tb" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"tc" = ( +/obj/machinery/atmospherics/unary/cryo_cell/upgraded, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"tf" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 8 + }, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"ti" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 4; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"tk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1; + do_not_delete_me = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"tm" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/optable, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"tn" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"to" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + id_tag = "prisonvirus_blast" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/virus_lab) +"tr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"ts" = ( +/obj/item/weldingtool, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkredcorners" + }, +/area/ruin/space/pirate_base/lab_sec) +"tt" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/sleeper/upgraded, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"tu" = ( +/obj/effect/landmark/tiles/burnturf, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"tv" = ( +/obj/machinery/computer/monitor, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"tw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "LP7 Lounge"; + network = list("PPrison"); + dir = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"ty" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"tA" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/barricade/wooden, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"tB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/blood/xeno, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"tE" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"tF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"tK" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"tM" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/structure/disposalpipe/junction{ + dir = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"tN" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/cryoxadone{ + pixel_x = 8; + pixel_y = 5 + }, +/obj/item/reagent_containers/spray/cleaner/medical, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"tO" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"tP" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26; + start_charge = 0 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"tQ" = ( +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"tR" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"tS" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/effect/turf_decal/siding/yellow{ + dir = 10 + }, +/obj/item/clothing/suit/storage/hazardvest, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"tT" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/pie_smudge, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"tU" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"tX" = ( +/obj/machinery/turretid/lethal{ + ailock = 1; + dir = 1; + faction = "pirate"; + name = "Telepad turrets"; + req_access = list(160); + syndicate = 1; + pixel_y = 28; + pixel_x = -2 + }, +/obj/structure/sign/engineering{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"ua" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"uc" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 6; + pixel_x = -2 + }, +/turf/simulated/wall/shuttle/nosmooth{ + dir = 6; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners"; + density = 0 + }, +/area/shuttle/pirate_corvette) +"ud" = ( +/obj/structure/table, +/obj/item/storage/secure/briefcase, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/observ) +"ue" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"uf" = ( +/obj/structure/closet/crate, +/obj/item/circuitboard/grill, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"ug" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_y = 32 + }, +/obj/machinery/camera{ + c_tag = "LP7 Prison Atrium"; + network = list("PPrison"); + pixel_x = 22 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"ui" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + color = "#F0E68C" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 8; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"uj" = ( +/obj/machinery/camera{ + c_tag = "LP7 Lab Hall"; + network = list("PPrison"); + dir = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"uk" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2 + }, +/mob/living/simple_animal/mouse/brown{ + desc = "Главный помощник архитектора станции."; + real_name = "Инспектор Мышь" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"ul" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/item/reagent_containers/food/pill/salbutamol, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"uq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"us" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 10 + }, +/obj/structure/closet/crate/can{ + pixel_y = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"uv" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/reagent_containers/hypospray/autoinjector/nanocalcium, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"uw" = ( +/obj/structure/lattice, +/obj/structure/sign/poster/official/tsf_emblem{ + desc = "На плакате написанно: Закрытый объект ТСФ. Вход воспрещен!"; + pixel_x = -32 + }, +/turf/space, +/area/space) +"ux" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/table, +/obj/item/restraints/handcuffs{ + pixel_y = 3 + }, +/obj/item/restraints/handcuffs{ + pixel_y = 3; + pixel_x = 3 + }, +/obj/item/restraints/handcuffs, +/obj/item/restraints/legcuffs/bola/energy, +/obj/item/restraints/legcuffs/bola/energy, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"uy" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"uz" = ( +/obj/machinery/conveyor{ + id = "pirategarbage"; + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"uA" = ( +/obj/effect/decal/remains/robot, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"uC" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/disposal, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"uD" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/item/lightreplacer{ + pixel_y = 5 + }, +/obj/item/storage/box/lights/mixed{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/structure/table, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"uE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/item/reagent_containers/food/drinks/bottle/orangejuice, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"uF" = ( +/obj/item/mining_scanner, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"uG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"uI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"uL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"uM" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"uP" = ( +/obj/machinery/door/airlock/research{ + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"uQ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"uR" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"uS" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/turf/space, +/area/space) +"uT" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/turretid/lethal{ + ailock = 1; + dir = 1; + faction = "pirate"; + name = "Solar turrets"; + req_access = list(160); + syndicate = 1; + pixel_y = 28; + pixel_x = -2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"uU" = ( +/obj/structure/closet/crate/medical, +/obj/item/reagent_containers/glass/bottle/charcoal, +/obj/item/reagent_containers/glass/bottle/morphine, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"uV" = ( +/obj/structure/table/glass, +/obj/item/clipboard, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"uW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"uY" = ( +/obj/structure/rack, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/item/storage/toolbox/electrical, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"uZ" = ( +/obj/structure/morgue, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"va" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"vc" = ( +/obj/structure/chair/comfy/shuttle/dark{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"ve" = ( +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"vf" = ( +/obj/item/twohanded/required/kirbyplants, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"vg" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"vh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/space/pirate_base/laboratory) +"vi" = ( +/obj/structure/table/reinforced, +/obj/machinery/kitchen_machine/microwave{ + pixel_x = -1; + pixel_y = 7 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"vl" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"vm" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet{ + icon_state = "emergency"; + name = "emergency closet" + }, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/clothing/mask/breath, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"vn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161) + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"vo" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/kitchen) +"vp" = ( +/obj/item/clothing/mask/gas, +/obj/structure/rack, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"vt" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"vu" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"vw" = ( +/obj/structure/rack, +/obj/item/wrench, +/obj/item/flashlight, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"vx" = ( +/obj/structure/table, +/obj/machinery/door/window/eastright, +/obj/item/kitchen/utensil/pspoon, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/kitchen) +"vy" = ( +/obj/structure/table, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/syringe/charcoal, +/obj/item/reagent_containers/syringe/insulin, +/obj/item/reagent_containers/glass/bottle/morphine, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/reagent_containers/syringe, +/obj/item/stack/medical/bruise_pack/advanced{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/stack/medical/ointment/advanced{ + pixel_x = 6; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/pill/patch/styptic{ + pixel_y = 6 + }, +/obj/item/reagent_containers/food/pill/patch/styptic{ + pixel_x = 2; + pixel_y = 8 + }, +/obj/item/reagent_containers/food/pill/patch/silver_sulf{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/reagent_containers/food/pill/patch/silver_sulf{ + pixel_x = -8; + pixel_y = 8 + }, +/obj/item/storage/pill_bottle/painkillers{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/clothing/mask/surgical, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"vz" = ( +/obj/effect/mob_spawn/human/securty, +/obj/item/gun/projectile/shotgun/riot/buckshot, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"vA" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"vB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"vC" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"vE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"vF" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"vI" = ( +/obj/structure/morgue{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"vJ" = ( +/obj/structure/chair/comfy/shuttle/dark{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"vL" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_hall) +"vM" = ( +/obj/structure/rack, +/obj/item/storage/backpack/explorer, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"vN" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"vP" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list(162); + locked = 1; + welded = 1 + }, +/obj/structure/barricade/wooden/crude{ + max_integrity = 150; + obj_integrity = 150; + layer = 3.5 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"vR" = ( +/obj/structure/lattice, +/obj/item/stack/rods{ + amount = 3 + }, +/turf/space, +/area/space) +"vU" = ( +/obj/structure/table/glass, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/item/flashlight/lamp, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"vV" = ( +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "labburn"; + name = "Blast Door"; + opacity = 0 + }, +/obj/effect/spawner/window/reinforced/plasma, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"vW" = ( +/obj/machinery/door/airlock, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/healthanalyzer, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"vX" = ( +/obj/structure/table, +/obj/item/storage/backpack/explorer, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"vZ" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/space, +/area/space) +"wa" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"wd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/spentcasing/rifle, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"we" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/bodyscanner, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"wf" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"wg" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"wi" = ( +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"wj" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"wk" = ( +/obj/machinery/power/smes{ + input_level = 30000; + output_level = 10000; + charge = 1000000 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"wl" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"wm" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"wn" = ( +/obj/structure/falsewall, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"wq" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"ws" = ( +/obj/structure/bed, +/obj/item/bedsheet/black, +/obj/structure/mirror{ + pixel_y = 26 + }, +/obj/effect/bump_teleporter{ + density = 0; + id = "pirat_n1" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"wx" = ( +/turf/simulated/wall/rust, +/area/ruin/space/pirate_base/kitchen) +"wz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"wA" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_atrium) +"wC" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"wD" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"wE" = ( +/obj/structure/rack, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/item/suppressor, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"wF" = ( +/obj/effect/decal/cleanable/fungus, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/prison_maint) +"wG" = ( +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1; + name = "Storage" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_medical) +"wI" = ( +/turf/simulated/wall/shuttle/onlyselfsmooth{ + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi' + }, +/area/shuttle/pirate_corvette) +"wJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"wK" = ( +/obj/structure/chair/stool, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood{ + icon_state = "wood-broken"; + tag = "icon-wood-broken" + }, +/area/ruin/space/pirate_base/atmos) +"wL" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/space, +/area/space) +"wM" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"wP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"wQ" = ( +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"wR" = ( +/obj/item/reagent_containers/hypospray/autoinjector, +/obj/structure/table, +/obj/item/flashlight/flare{ + pixel_y = 6; + pixel_x = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"wT" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on{ + dir = 1 + }, +/obj/item/stock_parts/capacitor, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"wU" = ( +/obj/machinery/door/airlock/highsecurity{ + req_access = list(161); + hackProof = 1; + aiControlDisabled = 1; + heat_proof = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"wX" = ( +/obj/structure/sign/cave{ + pixel_y = -32 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"wZ" = ( +/obj/machinery/space_heater, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"xa" = ( +/obj/item/radio, +/obj/structure/table, +/obj/item/radio, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"xb" = ( +/obj/structure/shuttle/engine/propulsion, +/turf/simulated/floor/shuttle/plating, +/area/shuttle/pirate_corvette) +"xd" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "pirategarbagebase" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 10 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"xf" = ( +/obj/item/seeds/ambrosia/cruciatus, +/obj/structure/closet, +/obj/item/seeds/ambrosia, +/obj/item/t_scanner, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"xh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"xj" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/space, +/area/space) +"xk" = ( +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTH)" + }, +/area/ruin/space/pirate_base/laboratory) +"xn" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"xo" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"xp" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"xt" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/lab_maint) +"xu" = ( +/obj/machinery/bodyscanner, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"xv" = ( +/obj/structure/filingcabinet/chestdrawer, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"xw" = ( +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"xx" = ( +/obj/effect/turf_decal/box/red{ + do_not_delete_me = 1 + }, +/obj/machinery/quantumpad/cere/arrivals_cargo{ + color = "#A52A2A"; + desc = "Пиратский телепад с квантовой связью блюспейс, используемый для телепортации объектов на другие квантовые площадки. На нем ярко-красная надпись: Не разбирать!"; + req_access = list(160); + name = "piratepad" + }, +/obj/machinery/door/window/brigdoor{ + req_access = list(160); + dir = 2 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/observ) +"xz" = ( +/obj/structure/table/tray, +/obj/item/storage/backpack/duffel/syndie/surgery, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"xA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/poker, +/obj/item/stack/spacechips/c5000, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"xB" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/space, +/area/space) +"xC" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"xD" = ( +/obj/machinery/conveyor{ + id = "pirategarbage"; + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"xE" = ( +/obj/machinery/sleeper/upgraded, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"xF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, +/obj/item/analyzer, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"xG" = ( +/obj/machinery/door/poddoor/shutters{ + id_tag = "blackmarket_shutters"; + dir = 2 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/observ) +"xH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/urinal{ + pixel_y = 30; + pixel_x = 17 + }, +/obj/structure/urinal{ + pixel_y = 30; + pixel_x = -1 + }, +/obj/structure/urinal{ + pixel_y = 30; + pixel_x = -19 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/observ) +"xI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"xJ" = ( +/obj/item/gun/projectile/automatic/pistol/m1911, +/obj/item/ammo_box/magazine/m45, +/obj/item/ammo_box/magazine/m45, +/obj/structure/closet/crate/secure/weapon{ + req_access = list(160) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"xK" = ( +/obj/structure/table/wood, +/obj/item/trash/plate, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"xM" = ( +/obj/effect/decal/cleanable/fungus, +/turf/simulated/wall, +/area/ruin/space/pirate_base/lab_maint) +"xO" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"xP" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"xS" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"xY" = ( +/obj/structure/sign/poster/secret/lady{ + pixel_x = 32 + }, +/obj/machinery/papershredder, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"xZ" = ( +/obj/structure/closet/crate/plastic, +/obj/item/mop, +/obj/item/storage/bag/trash, +/obj/item/reagent_containers/glass/bucket, +/obj/item/soap, +/obj/item/reagent_containers/spray/cleaner/janitor, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ya" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"yb" = ( +/obj/structure/railing, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/double, +/obj/item/clothing/gloves/color/yellow, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"yd" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"ye" = ( +/obj/item/stock_parts/micro_laser, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/tiles/damageturf, +/obj/item/stack/cable_coil{ + amount = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"yf" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"yg" = ( +/obj/structure/table, +/obj/item/paicard, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"yh" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/generic, +/obj/item/tank/internals/oxygen, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"yi" = ( +/obj/effect/turf_decal/siding/thinplating/corner{ + color = "#F0E68C"; + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"yj" = ( +/obj/machinery/disposal, +/obj/effect/turf_decal/delivery, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"yk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"yl" = ( +/obj/structure/table, +/obj/machinery/light/small, +/obj/item/clothing/gloves/color/fyellow, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"yn" = ( +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"yr" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/security_medical) +"yu" = ( +/obj/structure/closet/crate/can, +/obj/item/trash/chips, +/obj/item/trash/pistachios, +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"yv" = ( +/obj/machinery/shieldgen, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"yw" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal, +/turf/simulated/floor/plasteel{ + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"yx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"yz" = ( +/obj/machinery/computer/crew{ + name = "Pirate hack monitoring computer" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"yC" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"yE" = ( +/obj/machinery/portable_atmospherics/canister/oxygen{ + anchored = 1 + }, +/obj/structure/sign/security{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"yG" = ( +/obj/structure/rack, +/obj/item/stock_parts/matter_bin, +/obj/item/stack/cable_coil/random, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"yI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"yK" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"yL" = ( +/turf/simulated/wall/shuttle/nosmooth{ + dir = 5; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners" + }, +/area/shuttle/pirate_corvette) +"yQ" = ( +/obj/structure/table, +/obj/item/flashlight, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"yS" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"yT" = ( +/obj/structure/window/reinforced, +/obj/structure/table, +/obj/item/storage/firstaid/brute, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"yV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"yW" = ( +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"yY" = ( +/obj/machinery/disposal/deliveryChute, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"yZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"za" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"ze" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_hall) +"zf" = ( +/obj/structure/closet/crate, +/obj/item/restraints/handcuffs/toy, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"zg" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26; + start_charge = 0 + }, +/obj/structure/rack, +/obj/item/radio/off, +/obj/item/screwdriver{ + pixel_y = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"zh" = ( +/obj/machinery/vending/cigarette/free, +/obj/structure/sign/restroom{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"zi" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"zj" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/siding/brown/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/brown/corner, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"zk" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/space, +/area/space) +"zp" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_y = 8 + }, +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"zq" = ( +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"zr" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"zs" = ( +/obj/machinery/door/airlock, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"zt" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"zv" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/prison_solar) +"zw" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/item/storage/box/cups, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"zy" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"zz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"zA" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/outlet_injector/on, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"zC" = ( +/obj/structure/table, +/obj/item/storage/box/lights/mixed, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"zD" = ( +/obj/machinery/atmospherics/unary/tank/oxygen{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"zE" = ( +/obj/structure/table, +/obj/effect/spawner/random_spawners/syndicate/loot{ + result = list(/obj/item/storage/toolbox/syndicate = 1, /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1, /obj/item/deck/cards/syndicate = 1, /obj/item/storage/secure/briefcase/syndie = 1, /obj/item/toy/syndicateballoon = 1, /obj/item/soap/syndie = 1, /obj/item/clothing/under/syndicate = 1, /obj/item/clothing/under/syndicate/tacticool = 1, /obj/item/clothing/mask/gas/syndicate = 1, /obj/item/suppressor = 1, /obj/item/coin/antagtoken/syndicate = 1, /obj/item/storage/box/syndie_kit/cutouts = 1) + }, +/obj/effect/spawner/random_spawners/syndicate/loot{ + result = list(/obj/item/storage/toolbox/syndicate = 1, /obj/item/storage/fancy/cigarettes/cigpack_syndicate = 1, /obj/item/deck/cards/syndicate = 1, /obj/item/storage/secure/briefcase/syndie = 1, /obj/item/toy/syndicateballoon = 1, /obj/item/soap/syndie = 1, /obj/item/clothing/under/syndicate = 1, /obj/item/clothing/under/syndicate/tacticool = 1, /obj/item/clothing/mask/gas/syndicate = 1, /obj/item/suppressor = 1, /obj/item/coin/antagtoken/syndicate = 1, /obj/item/storage/box/syndie_kit/cutouts = 1) + }, +/obj/item/storage/box/syndie_kit/chameleon, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"zH" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"zJ" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/orange, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"zK" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"zQ" = ( +/obj/structure/chair/comfy/shuttle/dark{ + dir = 4 + }, +/obj/item/radio/intercom/syndicate{ + pixel_y = -28 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"zR" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + req_access = list(161); + dir = 8 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"zU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"zV" = ( +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"zW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/pill/charcoal, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"zX" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 10 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 4 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"zY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"zZ" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Aa" = ( +/obj/machinery/cryopod/syndie{ + dir = 2 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"Ac" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"Ad" = ( +/obj/machinery/door/airlock/glass{ + name = "Hydroponics" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/kitchen) +"Af" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/external{ + req_access = list(160); + aiControlDisabled = 1; + locked = 1; + id_tag = "prisonsolarbolts" + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Ag" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = -3; + pixel_y = -5 + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Ah" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Aj" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Ak" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 202.325; + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Al" = ( +/obj/structure/table, +/obj/item/wirecutters, +/obj/item/stack/cable_coil{ + amount = 14 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"An" = ( +/obj/structure/chair/comfy/shuttle/dark{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"Ap" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/bot_red, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Aq" = ( +/obj/effect/turf_decal/siding/wood, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"As" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 1 + }, +/obj/item/stack/rods, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"At" = ( +/obj/machinery/bodyscanner{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"Av" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Aw" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26; + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Ax" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 8 + }, +/mob/living/simple_animal/chicken, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/reagent_containers/food/snacks/egg, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"Ay" = ( +/obj/effect/turf_decal/caution{ + dir = 8; + do_not_delete_me = 1 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel/airless{ + icon_state = "podfloor_light"; + icon_regular_floor = "podfloor_light" + }, +/area/shuttle/pirate_corvette) +"AA" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/dirt, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite, +/obj/item/flashlight/seclite{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/flashlight/seclite{ + pixel_y = 5; + pixel_x = 2 + }, +/obj/item/flashlight/flare{ + pixel_y = -5 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"AD" = ( +/obj/machinery/mineral/processing_unit_console, +/turf/simulated/wall, +/area/ruin/space/pirate_base/mining) +"AE" = ( +/obj/structure/closet/firecloset, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"AF" = ( +/obj/machinery/optable, +/obj/machinery/defibrillator_mount/loaded{ + pixel_y = -30 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"AG" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"AH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/stack/tile/plasteel, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"AI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"AJ" = ( +/obj/machinery/door/poddoor{ + id_tag = "minerspirat_blast"; + use_power = 0 + }, +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"AK" = ( +/turf/simulated/mineral, +/area/ruin/unpowered) +"AL" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "arrivalcorner" + }, +/area/shuttle/pirate_corvette) +"AN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"AQ" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"AR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/security_maint) +"AS" = ( +/obj/structure/bed, +/obj/item/bedsheet/brown, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/item/clothing/under/pj/blue, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"AT" = ( +/obj/item/inflatable/door, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"AV" = ( +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"AW" = ( +/obj/structure/rack, +/obj/item/analyzer, +/obj/item/stock_parts/cell/high, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"AX" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 5 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"AY" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/grille/broken, +/obj/item/stack/rods, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/glass, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atrium) +"Bb" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/circuitboard/deepfryer, +/obj/item/access_control, +/obj/item/circuitboard/seed_extractor, +/obj/item/circuitboard/broken, +/obj/item/circuitboard/broken, +/obj/item/circuitboard/broken, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Bc" = ( +/obj/item/storage/toolbox/surgery, +/obj/structure/table, +/obj/item/stack/medical/splint, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Be" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Bg" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Bh" = ( +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"Bj" = ( +/obj/structure/railing{ + dir = 4 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/security_atrium) +"Bk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cabinet, +/obj/item/reagent_containers/food/drinks/cans/badminbrew{ + name = "expired beer"; + desc = "Probably shouldn't drink this one at all." + }, +/obj/item/reagent_containers/food/drinks/cans/badminbrew{ + name = "expired beer"; + desc = "Probably shouldn't drink this one at all." + }, +/obj/item/reagent_containers/food/drinks/bottle/vermouth, +/obj/item/reagent_containers/food/drinks/bottle/cognac, +/obj/item/reagent_containers/food/drinks/bottle/kahlua, +/obj/item/reagent_containers/food/drinks/bottle/vodka, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Bm" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 9 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Bn" = ( +/obj/machinery/door/airlock/maintenance, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"Bp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet, +/obj/item/clothing/suit/storage/hazardvest, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Bs" = ( +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"Bt" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Bu" = ( +/obj/item/clothing/mask/breath, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"Bv" = ( +/obj/effect/turf_decal/box, +/obj/item/stack/rods{ + amount = 10 + }, +/obj/item/stack/cable_coil, +/obj/item/stack/cable_coil, +/obj/structure/closet/crate, +/obj/item/stack/sheet/mineral/silver{ + amount = 3 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 4 + }, +/obj/item/stack/sheet/mineral/gold, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"Bw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Bx" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"By" = ( +/obj/machinery/door/airlock/maintenance{ + req_access = list(160); + locked = 1; + welded = 1 + }, +/obj/structure/barricade/wooden/crude{ + max_integrity = 150; + obj_integrity = 150; + layer = 3.5 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"BC" = ( +/obj/structure/closet/crate, +/obj/effect/decal/cleanable/cobweb, +/obj/item/storage/wallet/random, +/obj/effect/spawner/lootdrop/maintenance/double, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"BE" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 8; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/machinery/camera{ + c_tag = "LP7 Prison Mining"; + network = list("PPrison"); + dir = 9; + pixel_y = 22 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"BF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"BG" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"BH" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/gold{ + dir = 9 + }, +/obj/structure/flora/ausbushes/brflowers, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"BI" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/item/clothing/head/hardhat/red, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"BJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/obj/item/stack/sheet/xenochitin, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"BK" = ( +/obj/structure/rack, +/obj/item/flashlight/flare/glowstick/green, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"BM" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/security_atrium) +"BP" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/vacuum/external{ + pixel_y = 32 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"BQ" = ( +/obj/structure/table, +/obj/item/stack/medical/splint, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"BR" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"BS" = ( +/obj/effect/decal/cleanable/generic, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"BT" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"BU" = ( +/obj/structure/chair/sofa, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"BV" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/xeno, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"BW" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"BX" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/security_maint) +"BY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/structure/table, +/obj/item/reagent_containers/hypospray/autoinjector, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/pill/patch/styptic{ + pixel_y = 6 + }, +/obj/item/reagent_containers/food/pill/patch/silver_sulf{ + pixel_x = -5; + pixel_y = -3 + }, +/obj/item/reagent_containers/food/pill/salicylic{ + pixel_y = -3; + pixel_x = 6 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"BZ" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"Ca" = ( +/obj/item/bedsheet/black, +/obj/structure/bed, +/obj/structure/mirror{ + pixel_y = 26 + }, +/obj/effect/bump_teleporter{ + density = 0; + id = "pirat_n3" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"Cb" = ( +/obj/machinery/light/small, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Cc" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Cd" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/brown/corner, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Cf" = ( +/obj/machinery/door/airlock/external{ + req_access = list(160); + aiControlDisabled = 1; + use_power = 0; + id_tag = "securitysolarbolts"; + locked = 1 + }, +/obj/structure/fans/tiny, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Ck" = ( +/obj/structure/weightmachine/stacklifter, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"Cl" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/engineering, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/head/welding, +/obj/item/inflatable/door, +/obj/item/inflatable/door, +/obj/item/inflatable, +/obj/item/inflatable, +/obj/item/stock_parts/micro_laser/high, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Cn" = ( +/obj/structure/sign/poster/contraband/very_robust{ + pixel_y = -32 + }, +/obj/structure/rack, +/obj/item/storage/toolbox/emergency, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Cp" = ( +/obj/machinery/suit_storage_unit, +/obj/structure/sign/poster/official/dig{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Cq" = ( +/obj/machinery/door/window/brigdoor{ + req_access = list(160); + dir = 2 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Cr" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26 + }, +/obj/structure/table, +/obj/item/clothing/suit/chef/classic, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Cv" = ( +/mob/living/simple_animal/cow, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"Cw" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Cx" = ( +/obj/machinery/door_control{ + id = "minerspirat_blast"; + name = "BlastDoor"; + pixel_y = -8; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Cz" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"CA" = ( +/obj/structure/bookcase, +/obj/item/book/manual/engineering_construction, +/obj/item/book/manual/random, +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"CC" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/entertainment) +"CD" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"CE" = ( +/obj/item/stack/rods{ + amount = 2 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"CF" = ( +/obj/structure/table, +/obj/item/assembly/igniter, +/obj/item/wirecutters, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"CG" = ( +/obj/effect/turf_decal/loading_area{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"CH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"CL" = ( +/obj/machinery/vending/sustenance, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"CM" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/camera{ + c_tag = "LP7 Northeastern solar"; + network = list("PPrison"); + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"CN" = ( +/obj/effect/turf_decal/bot_red, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"CP" = ( +/obj/machinery/dna_scannernew, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"CQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"CR" = ( +/obj/effect/turf_decal/siding/blue/corner{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"CS" = ( +/obj/effect/spawner/lootdrop/spentcasing, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"CT" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 6 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"CU" = ( +/obj/machinery/computer/operating, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + pixel_y = -24 + }, +/obj/structure/cable, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"CV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"CX" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"CY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"CZ" = ( +/obj/machinery/clonepod/upgraded{ + req_access = list(152); + layer = 3.3; + dir = 8 + }, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Db" = ( +/obj/item/clothing/suit/space/nasavoid{ + name = "Old Void Suit"; + desc = "Old space suit" + }, +/obj/effect/decal/remains/human, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"Dc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/sign/nosmoking_2{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Dd" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"De" = ( +/obj/machinery/turretid/lethal{ + ailock = 1; + dir = 1; + faction = "pirate"; + name = "Arrivals turrets"; + req_access = list(160); + syndicate = 1; + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Df" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Dh" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"Dj" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Dk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Dm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Dn" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Dq" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/space, +/area/space) +"Dr" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"Dt" = ( +/obj/structure/railing, +/obj/machinery/space_heater, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"Du" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/resin/wall, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"Dv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/stool/bar, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"Dw" = ( +/obj/effect/landmark/tiles/damageturf, +/obj/item/stack/rods, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Dz" = ( +/obj/structure/table/reinforced, +/obj/item/kitchen/knife, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_y = 11; + pixel_x = 7 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"DB" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/laboratory) +"DC" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"DE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"DH" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"DI" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/storage/firstaid/fire/empty, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"DK" = ( +/obj/machinery/door_control{ + id = "minerspirat_blast"; + name = "BlastDoor"; + pixel_y = 8; + pixel_x = -24 + }, +/obj/effect/turf_decal/caution, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/mining) +"DL" = ( +/obj/effect/turf_decal/delivery/red, +/obj/machinery/door/poddoor/shutters{ + id_tag = "prison_block_shutters" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"DM" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 4 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/arrivals) +"DO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"DP" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"DQ" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"DT" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"DV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/item/reagent_containers/food/snacks/meat, +/obj/structure/closet/crate/freezer, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"DZ" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/machinery/door_control{ + id = "securitysolarbolts"; + normaldoorcontrol = 1; + req_access = list(160); + specialfunctions = 4; + pixel_x = -24 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Eb" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Ec" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ed" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/closet/walllocker/emerglocker/north, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Ee" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Ef" = ( +/obj/structure/table/reinforced, +/obj/item/paper{ + info = " Чёрный Рынок, работающий под покровительством Синдиката, рад предложить вам разнообразные контракты, которые могут приносить вам приличные кредиты. Чтобы получить контракт, необходимо отправить факс на адрес Синдиката, не забывая указать, что обращение направлено к Черному Рынку. Это поможет ускорить обработку и направление контракта на выполнение.

Помните, что на поиск подходящего контракта Черному Рынку требуется некоторое время. Чтобы сделать процесс более эффективным, пожалуйста, заранее укажите интересующие вас направления, чтобы мы могли отправлять вам новые контракты в соответствии с вашими предпочтениями.

Вот некоторые из доступных заданий и вознаграждения:

Похищение Определенного Человека:
Задача - похитить цель, живым.
Вознаграждение: до 120 000 кредитов.

Убийство Определенного Человека:
Задача - убить цель.
Вознаграждение: до 60 000 кредитов.

Сбор Редкой Фауны:
Найдите и захватите редких животных живыми.
Вознаграждение: до 40 000 кредитов.

Сбор Ядер Аномалии:
Опасная задача - собрать и доставить ядра из аномалий.
Вознаграждение: до 50 000 кредитов.

Выращивание Определенных Растений:
Поставьте и вырастите указанные растения.
Вознаграждение: до 20 000 кредитов.

Приготовление Особой Еды:
Подготовьте особую пиратскую пищу.
Вознаграждение: до 20 000 кредитов.

Половина заработанных вами кредитов будет уходить в уплату долга.

Пожалуйста, не забудьте отправить факс на адрес Синдиката для подтверждения.
Ваша активность на Черном Рынке может приносить вам богатства и славу в пиратском мире.

С наилучшими пиратскими пожеланиями, Чёрный Рынок.
"; + info_links = " Чёрный Рынок, работающий под покровительством Синдиката, рад предложить вам разнообразные контракты, которые могут приносить вам приличные кредиты. Чтобы получить контракт, необходимо отправить факс на адрес Синдиката, не забывая указать, что обращение направлено к Черному Рынку. Это поможет ускорить обработку и направление контракта на выполнение.

Помните, что на поиск подходящего контракта Черному Рынку требуется некоторое время. Чтобы сделать процесс более эффективным, пожалуйста, заранее укажите интересующие вас направления, чтобы мы могли отправлять вам новые контракты в соответствии с вашими предпочтениями.

Вот некоторые из доступных заданий и вознаграждения:

Похищение Определенного Человека:
Задача - похитить цель, живым.
Вознаграждение: до 120 000 кредитов.

Убийство Определенного Человека:
Задача - убить цель.
Вознаграждение: до 60 000 кредитов.

Сбор Редкой Фауны:
Найдите и захватите редких животных живыми.
Вознаграждение: до 40 000 кредитов.

Сбор Ядер Аномалии:
Опасная задача - собрать и доставить ядра из аномалий.
Вознаграждение: до 50 000 кредитов.

Выращивание Определенных Растений:
Поставьте и вырастите указанные растения.
Вознаграждение: до 20 000 кредитов.

Приготовление Особой Еды:
Подготовьте особую пиратскую пищу.
Вознаграждение: до 20 000 кредитов.

Половина заработанных вами кредитов будет уходить в уплату долга.

Пожалуйста, не забудьте отправить факс на адрес Синдиката для подтверждения.
Ваша активность на Черном Рынке может приносить вам богатства и славу в пиратском мире.

С наилучшими пиратскими пожеланиями, Чёрный Рынок.
"; + name = "Чёрный Рынок" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Eg" = ( +/obj/machinery/door_control{ + id = "prison_block_shutters"; + name = "Prison shutters"; + req_access = list(160); + pixel_y = 24; + pixel_x = 24 + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ei" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkredcorners" + }, +/area/ruin/space/pirate_base/lab_sec) +"Ej" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/structure/closet/walllocker{ + icon_closed = "emerg"; + icon_opened = "emergopen"; + icon_state = "emerg"; + dir = 8; + name = "emergency locker"; + pixel_x = -32 + }, +/obj/item/crowbar, +/obj/item/clothing/mask/breath, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ek" = ( +/obj/structure/table/wood/fancy, +/obj/item/storage/fancy/cigarettes/cigpack_syndicate{ + pixel_y = 10 + }, +/obj/item/lighter{ + pixel_x = -9; + pixel_y = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/clothing/head/pirate{ + name = "Шляпа капитана питаров." + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"El" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"En" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Eo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ep" = ( +/obj/structure/table, +/obj/item/storage/toolbox/syndicate, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Er" = ( +/obj/structure/table, +/obj/item/storage/toolbox/electrical, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Es" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/crayons, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"Eu" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Ev" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"Ew" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/sign/greencross{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Ex" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Ey" = ( +/obj/effect/turf_decal/box{ + do_not_delete_me = 1 + }, +/obj/structure/dispenser/oxygen, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Ez" = ( +/obj/structure/sign/security{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"EA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"EC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"ED" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/item/light/tube{ + icon_state = "ltube-broken"; + status = 2 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"EE" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/core, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"EG" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_maint) +"EJ" = ( +/obj/structure/chair/stool, +/obj/structure/sign/poster/contraband/missing_gloves{ + pixel_x = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"EL" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"EM" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance/double, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"EN" = ( +/obj/structure/rack, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/masks, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"EP" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"EQ" = ( +/turf/simulated/floor/plasteel{ + icon_state = "brown" + }, +/area/ruin/space/pirate_base/security_atrium) +"ES" = ( +/obj/machinery/light{ + active_power_usage = 0; + dir = 4; + icon_state = "tube-broken"; + status = 2 + }, +/obj/effect/turf_decal/box, +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = 2; + pixel_y = 3 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"EW" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/prison_solar) +"EX" = ( +/obj/effect/turf_decal/stripes/gold, +/obj/structure/fermenting_barrel, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"EZ" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2 + }, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister{ + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Fa" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/landmark/tiles/burnturf, +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"Fb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Fc" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/turf/space, +/area/space) +"Fd" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/sleeper/upgraded, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"Fe" = ( +/obj/structure/table, +/obj/item/analyzer, +/obj/item/assembly/signaler, +/obj/item/assembly/signaler, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Fg" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/entertainment) +"Fh" = ( +/obj/structure/closet, +/obj/item/toy/plushie/plasmamanplushie, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Fi" = ( +/obj/machinery/door/airlock{ + name = "Bathroom"; + aiControlDisabled = 1; + hackProof = 1 + }, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Fk" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 6 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Fl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "laborpirat_blast"; + use_power = 0 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Fm" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/shovel/spade, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"Fn" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Fp" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Fq" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable, +/obj/machinery/computer/monitor, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Fr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Ft" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Fu" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/radiation, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"Fv" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Fw" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Fx" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Fy" = ( +/obj/machinery/suit_storage_unit/pirate{ + req_access = list(160); + locked = 1 + }, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Fz" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"FA" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"FB" = ( +/obj/structure/closet, +/obj/item/clothing/glasses/sunglasses, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"FE" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"FF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"FG" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 6 + }, +/obj/structure/reagent_dispensers/water_cooler, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"FI" = ( +/obj/structure/railing{ + dir = 10 + }, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/double, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/telecomms) +"FJ" = ( +/obj/structure/closet/crate, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"FK" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160); + name = "Bridge" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"FL" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"FN" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"FO" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"FQ" = ( +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 4 + }, +/obj/effect/decal/cleanable/blood, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"FR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/wood/poker, +/obj/item/coin/gold, +/obj/item/coin/gold, +/obj/item/coin/gold, +/obj/item/coin/silver, +/obj/item/coin/silver, +/obj/item/coin/silver, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"FS" = ( +/obj/structure/sign/xenobio{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"FU" = ( +/obj/machinery/hologram/holopad, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"FV" = ( +/obj/effect/turf_decal/siding/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"FW" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"FX" = ( +/obj/structure/rack, +/obj/item/stack/medical/ointment/advanced, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"FY" = ( +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1; + name = "Black Market" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Gb" = ( +/obj/item/storage/firstaid/adv/empty, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Ge" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Gf" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/lab_medical) +"Gg" = ( +/obj/machinery/cryopod/syndie{ + dir = 2 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"Gh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Gi" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dust, +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Gm" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/gold{ + dir = 5 + }, +/obj/structure/flora/ausbushes/leafybush, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"Go" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/obj/item/stock_parts/cell/high, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"Gp" = ( +/obj/effect/decal/cleanable/blood/gibs/xeno/body, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"Gq" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Gt" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Gv" = ( +/obj/machinery/crema_switch{ + pixel_x = -8; + pixel_y = 24 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"Gw" = ( +/obj/structure/alien/weeds/node, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"Gx" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Gz" = ( +/obj/effect/decal/warning_stripes/south, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"GA" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/item/inflatable/torn, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"GB" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/holosign/barrier, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"GD" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 1; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"GE" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"GF" = ( +/obj/machinery/door/airlock/command/glass{ + req_access = list(160) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"GG" = ( +/turf/simulated/mineral/bscrystal, +/area/ruin/unpowered) +"GH" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "rampbottom"; + color = "gray" + }, +/area/ruin/space/pirate_base/observ) +"GI" = ( +/obj/machinery/door/airlock/maintenance, +/obj/structure/disposalpipe/segment, +/obj/structure/barricade/wooden, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"GJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"GK" = ( +/obj/item/reagent_containers/food/drinks/bottle/whiskey, +/obj/structure/table, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"GL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/turf/simulated/floor/carpet/red, +/area/ruin/space/pirate_base/security_atrium) +"GM" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/item/kitchen/rollingpin, +/obj/item/kitchen/rollingpin, +/obj/item/kitchen/knife/plastic, +/obj/structure/sign/electricshock{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"GN" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/item/flag/species/human, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"GO" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"GP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"GR" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/dark, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"GT" = ( +/mob/living/simple_animal/mouse/brown, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"GU" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"GW" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"GX" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/smes{ + charge = 1000000; + input_level = 30000; + output_level = 10000 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"GY" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"GZ" = ( +/obj/structure/table, +/obj/item/storage/box/teargas, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"Ha" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Hc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/security_maint) +"Hg" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"Hh" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = 28 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Hi" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 8; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Hk" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/cobweb2, +/obj/item/stock_parts/capacitor, +/obj/structure/closet/crate, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Hm" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/remains/mouse, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Ho" = ( +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/obj/machinery/atmospherics/unary/cold_sink/freezer/upgraded{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Hp" = ( +/obj/effect/decal/cleanable/fungus, +/turf/simulated/wall, +/area/ruin/space/pirate_base/laboratory) +"Hq" = ( +/obj/effect/spawner/lootdrop/spentcasing, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Hr" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/structure/chair/wheelchair, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Hs" = ( +/obj/effect/landmark/tiles/burnturf, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"Hx" = ( +/obj/machinery/power/terminal{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/rack, +/obj/item/stack/sheet/mineral/plasma{ + amount = 35 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Hz" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/port_gen/pacman/upgraded{ + anchored = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"HA" = ( +/obj/machinery/power/tracker, +/obj/structure/cable/yellow, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"HC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"HD" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"HF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"HG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"HH" = ( +/obj/effect/turf_decal/caution{ + dir = 4; + do_not_delete_me = 1 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel/airless{ + icon_state = "podfloor_light"; + icon_regular_floor = "podfloor_light" + }, +/area/shuttle/pirate_corvette) +"HI" = ( +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/port_gen/pacman, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"HJ" = ( +/obj/machinery/door/airlock/external{ + req_access = list(160); + hackProof = 1; + aiControlDisabled = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"HK" = ( +/obj/structure/table, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/flashlight/flare/glowstick/random, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"HL" = ( +/obj/machinery/atmospherics/binary/volume_pump/on, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"HM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/tiles/burnturf, +/obj/effect/decal/remains/human, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"HO" = ( +/obj/structure/rack, +/obj/item/stock_parts/micro_laser, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"HQ" = ( +/obj/machinery/door_control{ + id = "arrivalspirat_blast"; + name = "BlastDoor"; + req_access = list(160); + pixel_y = 24; + pixel_x = 8 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"HR" = ( +/obj/structure/table/wood, +/obj/item/kitchen/utensil/fork, +/obj/structure/sign/nosmoking_2{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"HT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/sign/poster/official/nanomichi_ad{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"HU" = ( +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atrium) +"HV" = ( +/obj/machinery/door/airlock/highsecurity{ + heat_proof = 1; + name = "Incinerator"; + req_access = list(161) + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"HX" = ( +/obj/item/screwdriver{ + pixel_y = 10 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"HY" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/computer/cloning{ + req_access = list(152) + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Ia" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"Ib" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Ic" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"Id" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"Ie" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 8 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/arrivals) +"If" = ( +/obj/structure/filingcabinet/chestdrawer, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Ig" = ( +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"Ih" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/security_atrium) +"Ii" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/atrium) +"Ij" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 5 + }, +/turf/space, +/area/space) +"Ik" = ( +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"Im" = ( +/obj/item/bedsheet/black, +/obj/structure/bed, +/obj/structure/mirror{ + pixel_x = -25 + }, +/obj/effect/bump_teleporter{ + density = 0; + id = "pirat_n4" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"In" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160); + locked = 1; + welded = 1 + }, +/obj/structure/barricade/wooden, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"Io" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/turf/space, +/area/space) +"Ip" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Iq" = ( +/obj/machinery/computer/security{ + name = "Pirate hack camera console"; + network = list("SS13","Mining Outpost","PPrison") + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"Ir" = ( +/obj/structure/closet/secure_closet{ + req_access = list(160) + }, +/obj/item/clothing/under/color/orange/prison, +/obj/item/clothing/shoes/orange, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Is" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/arrivals) +"It" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Iv" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/arrivals) +"Iw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/autolathe, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Iy" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Iz" = ( +/obj/structure/closet, +/obj/item/poster/random_contraband, +/obj/item/clothing/glasses/welding, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"IA" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"IB" = ( +/obj/item/soap/homemade_cola, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"IC" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"IH" = ( +/obj/item/stack/tile/plasteel, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"IK" = ( +/obj/effect/turf_decal/siding/thinplating/dark/end{ + dir = 1 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"IL" = ( +/obj/machinery/light, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"IM" = ( +/obj/structure/table, +/obj/item/circuitboard/deepfryer, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"IN" = ( +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"IO" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"IP" = ( +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"IQ" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/circuitboard/teleporter, +/obj/structure/rack, +/obj/item/circuitboard/teleporter_hub{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/circuitboard/teleporter_station{ + pixel_x = 6; + pixel_y = -6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"IR" = ( +/obj/structure/sign/poster/official/tsf_emblem{ + pixel_y = -32; + desc = "На плакате написанно: Закрытый объект ТСФ. Вход воспрещен!" + }, +/obj/machinery/camera{ + c_tag = "LP7 External entrance"; + network = list("PPrison"); + dir = 8 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/arrivals) +"IS" = ( +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"IT" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1 + }, +/obj/structure/railing{ + dir = 4 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"IU" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/holosign/barrier, +/obj/structure/sign/poster/official/science{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"IV" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/xeno_lab) +"IW" = ( +/obj/structure/sign/vacuum/external{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"IX" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"IZ" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/prison_solar) +"Ja" = ( +/obj/structure/table, +/obj/item/storage/toolbox/surgery, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Jc" = ( +/obj/effect/decal/cleanable/blood, +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/virus_lab) +"Jd" = ( +/obj/item/clothing/head/bio_hood/scientist, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"Jf" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"Jh" = ( +/obj/structure/rack, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Jk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Jm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Jn" = ( +/obj/structure/table, +/obj/effect/turf_decal/siding/blue, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"Jp" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "pirategarbage" + }, +/turf/simulated/floor/plasteel{ + icon_state = "browncorner" + }, +/area/ruin/space/pirate_base/mining) +"Jq" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"Jt" = ( +/obj/machinery/atmospherics/unary/tank/air{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Ju" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/shard{ + icon_state = "medium"; + pixel_x = -3; + pixel_y = -5 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"Jw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/shuttle/pirate_corvette) +"Jx" = ( +/obj/structure/closet{ + icon_state = "firecloset"; + name = "fire-safety closet" + }, +/obj/item/clothing/suit/fire/firefighter, +/obj/item/extinguisher, +/obj/item/clothing/head/hardhat/red, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"Jy" = ( +/obj/machinery/shower{ + dir = 8; + tag = "icon-shower (WEST)" + }, +/obj/effect/decal/warning_stripes/blue, +/obj/effect/decal/warning_stripes/northwest, +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/laboratory) +"Jz" = ( +/obj/structure/closet{ + icon_state = "firecloset"; + name = "fire-safety closet" + }, +/obj/item/extinguisher, +/obj/item/clothing/head/hardhat/red, +/obj/structure/sign/poster/official/cleanliness{ + pixel_x = -32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"JA" = ( +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/vending/chinese/free, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"JB" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/sign/botany{ + pixel_x = 32 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"JC" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/turf/space, +/area/space) +"JD" = ( +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/yellow, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/light/small, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"JE" = ( +/obj/structure/closet/crate, +/obj/item/circuitboard/solar_control, +/obj/item/tracker_electronics, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"JF" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"JI" = ( +/obj/effect/decal/cleanable/blood/writing, +/obj/structure/barricade/wooden, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"JJ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/circuitboard/plantgenes, +/obj/structure/closet/crate/hydroponics, +/obj/item/disk/plantgene, +/obj/item/disk/plantgene, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"JL" = ( +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"JO" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/spawner/lootdrop/spentcasing/rifle, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"JP" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"JQ" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"JR" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/shieldwallgen{ + req_access = list(161); + anchored = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"JS" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer{ + icon_state = "fridge" + }, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/condiment/milk, +/obj/item/reagent_containers/food/snacks/chocolatebar, +/obj/item/storage/box/donkpockets, +/obj/item/reagent_containers/food/snacks/cheesiehonkers, +/obj/item/reagent_containers/food/snacks/doshik, +/obj/item/reagent_containers/food/snacks/doshik, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"JT" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/sci, +/obj/item/clothing/glasses/science, +/obj/item/assembly/prox_sensor{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/item/assembly/timer{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"JU" = ( +/obj/machinery/door/window{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"JW" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"Ka" = ( +/obj/structure/grille/broken, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Kb" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Kc" = ( +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Kf" = ( +/obj/structure/lattice/catwalk, +/obj/effect/decal/cleanable/dust, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"Kh" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/inflatable/door, +/obj/structure/sign/biohazard{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Kj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Kl" = ( +/obj/effect/turf_decal/caution{ + dir = 8; + do_not_delete_me = 1 + }, +/obj/machinery/light/small{ + dir = 1; + pixel_x = -8 + }, +/turf/simulated/floor/plasteel/airless{ + icon_state = "podfloor_light"; + icon_regular_floor = "podfloor_light" + }, +/area/shuttle/pirate_corvette) +"Km" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Ko" = ( +/obj/machinery/shower{ + dir = 4; + pixel_x = -2 + }, +/obj/structure/curtain/open/shower, +/obj/effect/turf_decal{ + icon_state = "plumbing"; + name = "plumbing" + }, +/obj/item/clothing/shoes/orange, +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"Kp" = ( +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/observ) +"Kq" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Kr" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"Kv" = ( +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/table_frame, +/obj/item/stack/sheet/plasteel, +/obj/effect/decal/cleanable/blood/xeno, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Kw" = ( +/obj/structure/toilet{ + dir = 8 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/lab_hall) +"Kx" = ( +/obj/effect/landmark/tiles/damageturf, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/stack/sheet/metal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Kz" = ( +/obj/machinery/atmospherics/binary/volume_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"KC" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"KF" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/item/stack/sheet/glass, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"KH" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"KI" = ( +/obj/machinery/shower{ + dir = 8; + tag = "icon-shower (WEST)" + }, +/obj/effect/decal/warning_stripes/blue, +/obj/effect/decal/warning_stripes/southwest, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/laboratory) +"KJ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"KL" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/decal/cleanable/plant_smudge, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"KM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"KQ" = ( +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"KR" = ( +/obj/effect/turf_decal/tile/neutral{ + alpha = 75; + color = "black"; + icon_state = "tile_full" + }, +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "rampbottom" + }, +/area/ruin/space/pirate_base/observ) +"KS" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"KT" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/obj/machinery/suit_storage_unit, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"KU" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"KY" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/item/storage/firstaid/o2/empty, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"KZ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/carpet/red, +/area/ruin/space/pirate_base/security_atrium) +"Le" = ( +/obj/machinery/conveyor{ + id = "pirategarbagebase"; + dir = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Lf" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Li" = ( +/obj/item/trash/liquidfood, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"Lj" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Lk" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/medical, +/obj/item/handheld_defibrillator, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/box/monkeycubes, +/obj/item/storage/firstaid/with_mousetrap/tactical, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"Ll" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Lo" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs{ + pixel_y = -6 + }, +/obj/item/restraints/handcuffs{ + pixel_y = -3 + }, +/obj/item/restraints/handcuffs, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Lp" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/machinery/washing_machine, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Lr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door_control{ + id = "prisonvirus_blast"; + name = "BlastDoor"; + req_access = list(161); + pixel_y = -2; + pixel_x = 6 + }, +/obj/item/clothing/gloves/color/latex, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"Ls" = ( +/obj/structure/table, +/obj/item/stack/packageWrap, +/obj/item/hand_labeler, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/observ) +"Lt" = ( +/obj/effect/spawner/window/reinforced/plasma, +/obj/machinery/door/poddoor{ + density = 0; + icon_state = "open"; + id_tag = "labburn"; + name = "Blast Door"; + opacity = 0 + }, +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"Lu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Lw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"Lx" = ( +/obj/machinery/photocopier, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/effect/turf_decal/tile/purple{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Ly" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"Lz" = ( +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"LC" = ( +/obj/structure/closet, +/obj/effect/spawner/lootdrop/maintenance/tripple, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"LD" = ( +/obj/structure/railing{ + layer = 4.2 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"LE" = ( +/obj/machinery/atmospherics/binary/volume_pump, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"LG" = ( +/obj/structure/closet/secure_closet{ + req_access = list(160) + }, +/obj/item/clothing/under/color/orange/prison, +/obj/item/clothing/shoes/orange, +/obj/item/clothing/head/beanie/orange, +/obj/effect/decal/cleanable/dirt, +/obj/item/card/id/prisoner/random, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"LI" = ( +/obj/structure/table, +/obj/machinery/door/window/eastright, +/obj/item/reagent_containers/food/snacks/chinese/sweetsourchickenball, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3; + pixel_y = 11 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/kitchen) +"LK" = ( +/obj/structure/table/reinforced, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/item/healthanalyzer/advanced, +/obj/item/clothing/glasses/hud/health, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"LN" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"LO" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/brown/corner, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"LQ" = ( +/obj/structure/lattice/catwalk, +/turf/space, +/area/space) +"LS" = ( +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"LU" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"LV" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating/corner, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"LW" = ( +/obj/effect/baseturf_helper/asteroid, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"LX" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"LY" = ( +/obj/structure/table/wood, +/obj/item/stack/tape_roll, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"LZ" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/glass/beaker/waterbottle, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ma" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/chair/office/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Mb" = ( +/obj/structure/closet, +/obj/item/stack/sheet/cardboard, +/obj/item/storage/box/lights/mixed, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Md" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/laboratory) +"Mg" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Mh" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24; + req_access = list(160) + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Mi" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 4 + }, +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Mj" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Ml" = ( +/obj/structure/chair{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"Mm" = ( +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Mo" = ( +/obj/item/gps/ruin{ + pixel_x = 30; + gpstag = "Emergency Signal"; + tracking = 0 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Mp" = ( +/obj/machinery/power/smes{ + charge = 2e+006; + output_level = 25000; + input_level = 60000 + }, +/obj/structure/cable, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Mq" = ( +/obj/structure/rack, +/obj/item/storage/box/gloves{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/box/masks, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"Mu" = ( +/obj/structure/rack, +/obj/item/stock_parts/matter_bin/adv, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Mv" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Mw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Mx" = ( +/obj/structure/falsewall, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"My" = ( +/obj/machinery/suit_storage_unit/pirate, +/obj/effect/turf_decal/delivery{ + do_not_delete_me = 1 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Mz" = ( +/obj/machinery/suit_storage_unit/industrial/pirate_leader{ + req_access = list(160); + locked = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"MB" = ( +/obj/machinery/computer/security{ + name = "Pirate hack camera console"; + network = list("SS13","Mining Outpost","PPrison") + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"MD" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/xeno_lab) +"ME" = ( +/obj/machinery/power/apc/noalarm{ + name = "Pirate Corvette APC"; + pixel_y = -28; + req_access = list(160) + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/rack, +/obj/machinery/light/small{ + dir = 4 + }, +/obj/item/storage/belt/utility/full/multitool, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"MF" = ( +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"MG" = ( +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"MH" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"MK" = ( +/obj/machinery/door/poddoor{ + id_tag = "secret_blast"; + use_power = 0 + }, +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"MM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"MO" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"MP" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_hall) +"MR" = ( +/obj/structure/inflatable, +/obj/structure/sign/biohazard{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"MT" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 8 + }, +/obj/effect/decal/cleanable/dust, +/turf/space, +/area/space) +"MU" = ( +/obj/structure/inflatable/door, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"MV" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"MX" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"MZ" = ( +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/obj/machinery/door/window/brigdoor{ + req_access = list(161); + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"Na" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/brown/corner, +/obj/effect/turf_decal/siding/brown/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Nb" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"Nd" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 9 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"Ne" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2; + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Nf" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Ng" = ( +/obj/structure/table, +/obj/item/kitchen/knife, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_atrium) +"Ni" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Nk" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/closet/walllocker/emerglocker/east, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Nl" = ( +/obj/machinery/vending/coffee/free, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"No" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Nq" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/oil/streak, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Nr" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Ns" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkredfull" + }, +/area/shuttle/pirate_corvette) +"Nv" = ( +/obj/structure/table/glass, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Nw" = ( +/obj/effect/decal/warning_stripes/north, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virology) +"Nx" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/observ) +"Ny" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/firstaid/o2/empty, +/turf/simulated/floor/plasteel{ + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Nz" = ( +/obj/effect/decal/cleanable/crayon{ + icon_state = "syndicate1" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"NA" = ( +/obj/structure/grille, +/obj/structure/lattice, +/turf/space, +/area/space) +"NB" = ( +/obj/machinery/power/solar, +/obj/structure/cable/yellow, +/turf/simulated/floor/plasteel/airless{ + icon_state = "solarpanel" + }, +/area/space) +"NC" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/landmark/tiles/burnturf, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"NE" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"NF" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24; + req_access = list(160) + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"NH" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"NJ" = ( +/obj/machinery/door_control{ + id = "blackmarket_shutters"; + name = "BlackMarket shutters"; + req_access = list(160); + pixel_y = 8; + pixel_x = 24 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/observ) +"NK" = ( +/obj/structure/fans/tiny, +/obj/machinery/door/airlock/external{ + req_access = list(160); + hackProof = 1; + aiControlDisabled = 1; + id_tag = "leftpirat_airlock" + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "leftpirat_blast" + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"NM" = ( +/turf/simulated/floor/plating/asteroid/airless, +/area/space) +"NP" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 4; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"NQ" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"NS" = ( +/obj/structure/closet/crate/freezer, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/nitrogenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/nitrogenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/bloodsynthetic/oxygenis, +/obj/item/reagent_containers/iv_bag/salglu, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/engi, +/obj/item/tank/internals/emergency_oxygen/nitrogen, +/obj/item/tank/internals/emergency_oxygen/plasma, +/obj/item/reagent_containers/food/snacks/meat, +/obj/item/reagent_containers/food/snacks/meat, +/obj/item/reagent_containers/food/snacks/meat, +/obj/item/reagent_containers/food/snacks/meat, +/obj/item/reagent_containers/food/snacks/meat, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/ruin/space/pirate_base/security_medical) +"NV" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"NW" = ( +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"NY" = ( +/obj/machinery/portable_atmospherics/canister, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"NZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Oa" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/rack, +/obj/item/holosign_creator/atmos, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Ob" = ( +/obj/structure/rack, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/shovel/spade, +/obj/item/reagent_containers/glass/bucket, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants/portaseeder, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"Oe" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/reagent_containers/food/condiment/rice, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Og" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"Oh" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Oi" = ( +/obj/machinery/door/airlock/mining{ + req_access = list(161); + name = "airlock"; + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Oj" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/effect/turf_decal/siding/brown/corner, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ok" = ( +/turf/simulated/wall/shuttle{ + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi' + }, +/area/shuttle/pirate_corvette) +"Ol" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/glass, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"Om" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Oo" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/prison_solar) +"Op" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/security_maint) +"Or" = ( +/obj/structure/falsewall, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Ov" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Ox" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/prison_maint) +"Oy" = ( +/obj/effect/turf_decal/siding/brown/corner, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"OA" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"OB" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/light/small{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 2; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"OE" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"OF" = ( +/obj/structure/sink{ + dir = 1; + layer = 5; + pixel_y = -5 + }, +/obj/effect/decal/warning_stripes/blue, +/obj/effect/decal/warning_stripes/northeast, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/laboratory) +"OG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/stool/bar, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"OH" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"OI" = ( +/obj/structure/table, +/obj/item/storage/box/syndie_kit/t4P{ + pixel_y = 8 + }, +/obj/item/grenade/smokebomb{ + pixel_x = -5 + }, +/obj/item/grenade/smokebomb{ + pixel_x = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"ON" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/turretid/lethal{ + ailock = 1; + dir = 1; + faction = "pirate"; + name = "Corvette turrets"; + req_access = list(160); + syndicate = 1; + pixel_x = -32 + }, +/obj/item/gps{ + tracking = 0 + }, +/obj/item/gps{ + tracking = 0 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"OP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"OQ" = ( +/obj/structure/railing{ + layer = 4.2 + }, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/rum, +/obj/item/storage/box/drinkingglasses, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"OR" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/obj/item/camera, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"OU" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"OV" = ( +/obj/effect/decal/warning_stripes/northeast, +/obj/machinery/flasher{ + desc = "A floor-mounted flashbulb device."; + id = "viru1"; + layer = 5; + pixel_y = 24; + range = 3 + }, +/obj/structure/table/glass, +/obj/item/pen{ + pixel_x = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"OX" = ( +/obj/item/shard{ + icon_state = "small"; + pixel_x = 3; + pixel_y = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"OY" = ( +/turf/simulated/mineral, +/area/space) +"OZ" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/disposalpipe/segment, +/obj/effect/landmark/tiles/burnturf, +/obj/item/trash/spentcasing, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Pa" = ( +/obj/effect/turf_decal/siding/blue, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Pc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Pd" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/table, +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Pe" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Pf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/item/trash/chips, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Pg" = ( +/obj/machinery/door_control{ + id = "blackmarket_shutters"; + name = "BlackMarket shutters"; + req_access = list(160); + pixel_y = 8; + pixel_x = 24 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/observ) +"Ph" = ( +/obj/structure/table, +/obj/item/folder/yellow, +/obj/item/card/id/warden{ + access = list(161); + name = "Lab access ID"; + registered_name = "Access Card"; + desc = "ID Card." + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Pi" = ( +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Pj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1 + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Pk" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Pl" = ( +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 2, /obj/item/storage/box/syndie_kit/bioterror = 2, /obj/item/holosign_creator/janitor/syndie = 1) + }, +/obj/structure/closet/crate/syndicate, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 2, /obj/item/storage/box/syndie_kit/bioterror = 2, /obj/item/holosign_creator/janitor/syndie = 1) + }, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 2, /obj/item/storage/box/syndie_kit/bioterror = 2, /obj/item/holosign_creator/janitor/syndie = 1) + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Pn" = ( +/obj/machinery/portable_atmospherics/scrubber, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Po" = ( +/obj/structure/table/reinforced, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/recharger/wallcharger{ + pixel_y = 28 + }, +/obj/machinery/recharger/wallcharger{ + pixel_y = 20 + }, +/obj/machinery/recharger/wallcharger{ + pixel_y = 36 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Pp" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/analyzer, +/obj/item/assembly/signaler, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Ps" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 8 + }, +/obj/effect/turf_decal/siding/yellow/corner{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"Pt" = ( +/obj/structure/closet/secure_closet{ + icon_state = "rd"; + name = "research director's locker"; + req_access = list(160) + }, +/obj/item/storage/backpack/satchel_tox, +/obj/item/clothing/suit/storage/labcoat/science, +/obj/item/clothing/gloves/color/latex, +/obj/effect/turf_decal/tile/purple, +/obj/effect/turf_decal/tile/purple{ + dir = 8 + }, +/obj/item/paicard_upgrade, +/obj/item/clothing/mask/gas/clown_hat, +/obj/item/stack/ore/bluespace_crystal, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Pv" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/structure/bedsheetbin, +/obj/structure/sign/poster/contraband/rip_badger{ + pixel_x = -32 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Pw" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/closet/crate/plastic, +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/obj/item/mop, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Pz" = ( +/obj/machinery/light, +/obj/structure/chair/office/dark, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virology) +"PA" = ( +/obj/item/flashlight/flare, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"PB" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"PC" = ( +/obj/item/shard/plasma, +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks" + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"PD" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/mining) +"PE" = ( +/obj/effect/decal/cleanable/blood/tracks{ + color = "red"; + desc = "Your instincts say you shouldn't be following these."; + dir = 8; + icon = 'icons/effects/blood.dmi'; + icon_state = "tracks"; + pixel_y = 9 + }, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"PF" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 5 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"PG" = ( +/obj/structure/sink{ + dir = 8; + pixel_x = -13 + }, +/obj/structure/mirror{ + pixel_x = -25 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/atrium) +"PI" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/universal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"PJ" = ( +/obj/structure/table/wood, +/obj/item/stack/tickets{ + amount = 12 + }, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"PM" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"PN" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"PO" = ( +/obj/structure/closet/crate/miningcar, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/iron, +/obj/item/stack/ore/gold, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"PP" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2; + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"PR" = ( +/obj/structure/closet/crate/plastic, +/obj/item/kitchen/utensil/fork, +/obj/item/kitchen/utensil/spoon, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"PS" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"PT" = ( +/obj/structure/chair/stool/bar, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"PU" = ( +/obj/structure/table, +/obj/item/crowbar, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"PV" = ( +/obj/machinery/atmospherics/trinary/mixer/flipped{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"PW" = ( +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"PX" = ( +/obj/machinery/atmospherics/pipe/manifold/visible, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Qb" = ( +/obj/structure/closet/crate/secure/weapon{ + req_access = list(160) + }, +/obj/item/reagent_containers/food/drinks/bottle/rum, +/obj/item/reagent_containers/food/drinks/bottle/rum, +/obj/item/reagent_containers/food/drinks/bottle/rum, +/obj/item/reagent_containers/food/drinks/bottle/rum, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Qd" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Qe" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet{ + icon_state = "bio_scientist"; + name = "level-3 biohazard suit closet" + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"Qf" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 9; + pixel_x = 2 + }, +/turf/simulated/wall/shuttle/nosmooth{ + dir = 9; + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi'; + icon_state = "gray_walls_corners"; + density = 0 + }, +/area/shuttle/pirate_corvette) +"Qg" = ( +/obj/effect/landmark/tiles/damageturf, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Qh" = ( +/obj/structure/closet, +/obj/item/seeds/wheat, +/obj/item/seeds/tomato, +/obj/item/seeds/tobacco, +/obj/item/seeds/sugarcane, +/obj/item/seeds/soya, +/obj/item/seeds/potato, +/obj/item/seeds/plump, +/obj/item/seeds/grass, +/obj/item/seeds/corn, +/obj/item/seeds/coffee, +/obj/item/seeds/cocoapod, +/obj/item/seeds/cherry, +/obj/item/seeds/chanter, +/obj/item/seeds/carrot, +/obj/item/seeds/banana, +/obj/item/seeds/berry, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/item/seeds/apple, +/obj/item/seeds/wheat/rice, +/obj/item/seeds/tower, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"Ql" = ( +/obj/structure/reagent_dispensers/fueltank, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Qm" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Qn" = ( +/obj/machinery/atmospherics/pipe/simple/hidden, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Qp" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Qq" = ( +/obj/machinery/light/small{ + active_power_usage = 0; + icon_state = "bulb-broken"; + status = 2; + dir = 1 + }, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"Qt" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/stack/sheet/cardboard, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Qv" = ( +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Qw" = ( +/obj/effect/landmark/tiles/damageturf, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Qz" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"QA" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/shovel, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"QB" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/obj/structure/mopbucket/full{ + dir = 4 + }, +/obj/item/mop, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"QD" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"QE" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"QF" = ( +/obj/effect/decal/warning_stripes/southwest, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"QG" = ( +/obj/structure/closet/firecloset, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"QH" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"QI" = ( +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/obj/machinery/atmospherics/binary/volume_pump, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"QM" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"QN" = ( +/obj/effect/decal/cleanable/shreds, +/obj/effect/decal/cleanable/generic, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"QO" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"QP" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/security_atrium) +"QQ" = ( +/obj/item/stack/sheet/glass{ + amount = 3 + }, +/obj/structure/closet/crate, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"QS" = ( +/obj/effect/turf_decal/siding/yellow{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/telecomms) +"QT" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"QU" = ( +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkbluecorners" + }, +/area/ruin/space/pirate_base/lab_medical) +"QV" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table/reinforced, +/obj/item/pen, +/obj/item/paper_bin, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"QW" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"QY" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"QZ" = ( +/obj/effect/turf_decal/siding/brown, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Ra" = ( +/obj/machinery/pipedispenser/disposal, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/telecomms) +"Rb" = ( +/obj/machinery/vending/coffee/free, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"Re" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/mining) +"Rf" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1; + stat = 1; + icon_state = "syndieturret2"; + icon_state_initial = "syndieturret2" + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/lab_solar) +"Rg" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"Ri" = ( +/obj/structure/sign/poster/contraband/red_rum{ + pixel_y = -32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"Rl" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/effect/decal/cleanable/vomit, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Rm" = ( +/obj/structure/table, +/obj/item/flashlight, +/obj/item/storage/bag/plasticbag, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Rn" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/machinery/light{ + active_power_usage = 0; + dir = 1; + icon_state = "tube-broken"; + status = 2 + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"Ro" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Rr" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Rs" = ( +/obj/structure/table/wood, +/obj/item/candle{ + pixel_x = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/box/matches, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Rv" = ( +/obj/machinery/door/airlock, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/atrium) +"Rw" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Ry" = ( +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"RA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"RB" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"RC" = ( +/obj/structure/falsewall, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"RE" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"RG" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/security_medical) +"RI" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"RJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/obj/structure/table/wood, +/obj/item/storage/fancy/rollingpapers, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"RK" = ( +/obj/item/storage/box/bodybags/biohazard, +/obj/structure/rack, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"RL" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/obj/effect/spawner/lootdrop/spentcasing/pistol, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"RN" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/wall, +/area/ruin/space/pirate_base/entertainment) +"RO" = ( +/obj/machinery/crematorium, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"RP" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkredfull" + }, +/area/shuttle/pirate_corvette) +"RQ" = ( +/obj/structure/lattice, +/turf/space, +/area/space) +"RR" = ( +/obj/structure/closet/crate/trashcart, +/obj/item/circuitboard/autolathe, +/obj/item/stock_parts/micro_laser/high, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"RS" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"RT" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 8; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"RU" = ( +/obj/structure/railing, +/obj/machinery/vending/suitdispenser, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_atrium) +"RV" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/obj/structure/table, +/obj/item/flashlight/seclite, +/obj/item/camera, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"RW" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 8 + }, +/obj/structure/flora/ausbushes/ppflowers, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"RY" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/obj/item/instrument/piano_synth, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Sc" = ( +/obj/machinery/pipedispenser, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/telecomms) +"Sf" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/tripple, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"Sg" = ( +/obj/effect/decal/ants, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"Sh" = ( +/obj/machinery/door/airlock/medical/glass{ + req_access = list(160); + icon_state = "open"; + density = 0; + aiControlDisabled = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Si" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Sj" = ( +/obj/machinery/door/poddoor/preopen{ + id_tag = "laborpirat_blast"; + use_power = 0 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/caution/stand_clear, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"Sk" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Sl" = ( +/obj/structure/table/wood, +/obj/machinery/kitchen_machine/microwave{ + pixel_x = -1; + pixel_y = 7 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Sm" = ( +/obj/structure/sign/biohazard{ + pixel_x = 32 + }, +/obj/effect/landmark/tiles/burnturf, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"Sn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"So" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Sp" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/egg/grown, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"Sr" = ( +/obj/structure/table/glass, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/pen/red, +/obj/item/folder/white, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"Ss" = ( +/obj/effect/decal/cleanable/cobweb2, +/obj/structure/closet/crate/plastic, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/energy/milk, +/obj/item/reagent_containers/food/drinks/cans/ale, +/obj/item/reagent_containers/food/drinks/chicken_soup, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"St" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_hall) +"Su" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Sw" = ( +/obj/structure/window/reinforced{ + dir = 8 + }, +/obj/machinery/power/terminal, +/obj/structure/cable/yellow, +/obj/structure/table, +/obj/item/flashlight, +/obj/item/clothing/glasses/welding, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Sy" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"Sz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"SA" = ( +/obj/structure/table/wood/fancy, +/obj/item/flashlight/lamp/green{ + pixel_x = -4; + pixel_y = 12 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"SC" = ( +/obj/item/storage/firstaid/toxin/empty, +/obj/item/reagent_containers/food/pill/charcoal, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"SD" = ( +/obj/structure/table, +/obj/item/clothing/glasses/hud/health, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"SE" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"SH" = ( +/obj/machinery/light{ + active_power_usage = 0; + dir = 4; + icon_state = "tube-broken"; + status = 2 + }, +/obj/structure/table/wood, +/obj/item/instrument/harmonica, +/obj/item/dice/d20, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"SK" = ( +/obj/item/storage/bag/bio, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"SL" = ( +/obj/machinery/conveyor{ + id = "pirategarbagebase"; + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/obj/item/trash/semki, +/obj/item/trash/popcorn, +/obj/item/toy/crayon/spraycan, +/obj/item/trash/sosjerky, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"SM" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"SO" = ( +/obj/machinery/door/airlock/centcom{ + req_access = list(160); + aiControlDisabled = 1; + hackProof = 1; + opacity = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"SP" = ( +/obj/structure/closet{ + icon_state = "firecloset"; + name = "fire-safety closet" + }, +/obj/item/extinguisher, +/obj/item/clothing/suit/fire/firefighter, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"SQ" = ( +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atrium) +"SR" = ( +/obj/machinery/door_control{ + id = "laborpirat_blast"; + name = "BlastDoor"; + req_access = list(161); + pixel_y = -8; + pixel_x = -24 + }, +/obj/structure/table, +/obj/machinery/recharger{ + pixel_x = 1; + pixel_y = 3 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"SV" = ( +/turf/simulated/wall, +/area/ruin/space/pirate_base/atrium) +"SW" = ( +/obj/effect/turf_decal/siding/wood, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"SY" = ( +/obj/structure/sign/biohazard{ + pixel_y = -32 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"SZ" = ( +/obj/machinery/door/airlock/medical{ + req_access = list(161); + aiControlDisabled = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"Tb" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonxeno_blast" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/xeno_lab) +"Td" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/crate, +/obj/effect/spawner/lootdrop/maintenance/double, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Te" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/machinery/door/poddoor{ + id_tag = "prisonvirus_blast" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/virus_lab) +"Tf" = ( +/obj/effect/turf_decal/siding/brown/corner{ + dir = 8 + }, +/obj/effect/turf_decal/siding/brown/corner, +/obj/effect/decal/cleanable/blood/writing, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Th" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 1 + }, +/turf/space, +/area/space) +"Ti" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/turf/space, +/area/space) +"Tk" = ( +/obj/structure/table/wood, +/obj/item/camera, +/turf/simulated/floor/wood{ + icon_state = "wood-broken3" + }, +/area/ruin/space/pirate_base/atmos) +"Tm" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/wall, +/area/ruin/space/pirate_base/security_maint) +"Tn" = ( +/obj/structure/table_frame, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Tp" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/effect/turf_decal/box/red{ + do_not_delete_me = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/quantumpad/cere/cargo_arrivals{ + color = "#A52A2A"; + desc = "Пиратский телепад с квантовой связью блюспейс, используемый для телепортации объектов на другие квантовые площадки. На нем ярко-красная надпись: Не разбирать!"; + req_access = list(160); + name = "piratepad" + }, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Tq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Tu" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Tw" = ( +/obj/structure/closet/secure_closet/medical2{ + req_access = list(161) + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) +"Tx" = ( +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Ty" = ( +/obj/structure/bed, +/obj/item/bedsheet/red, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"TA" = ( +/obj/machinery/porta_turret/syndicate/pod{ + name = "machine gun turret (4.6x30mm)"; + faction = "pirate"; + dir = 1 + }, +/obj/structure/railing{ + dir = 8 + }, +/obj/machinery/shield, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/security_maint) +"TB" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"TE" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/pirate, +/obj/item/clothing/under/pirate_rags, +/obj/item/clothing/glasses/eyepatch, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/head/bandana, +/obj/item/clothing/suit/pirate_black, +/obj/structure/closet{ + icon_state = "syndicate" + }, +/obj/item/storage/backpack, +/obj/item/card/id/syndicate/anyone{ + access = list(160,161,162,26) + }, +/obj/item/radio/headset/syndicate/alt/syndteam{ + name = "headset" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"TI" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"TJ" = ( +/obj/structure/rack, +/obj/item/storage/box/syringes, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_medical) +"TK" = ( +/obj/structure/table/glass, +/obj/item/flashlight/lamp, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"TM" = ( +/obj/machinery/atmospherics/binary/pump/on{ + target_pressure = 202.325 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"TO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"TP" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"TQ" = ( +/obj/structure/rack, +/obj/machinery/light{ + dir = 8 + }, +/obj/item/storage/belt/utility/full/multitool, +/obj/item/storage/belt/utility/full/multitool{ + pixel_x = 2; + pixel_y = -4 + }, +/obj/item/clothing/mask/gas, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"TS" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"TU" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"TV" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/window/reinforced, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"TW" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"TZ" = ( +/obj/item/flag/syndi, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"Ua" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/stack/cable_coil/yellow, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Uc" = ( +/obj/structure/grille, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Ud" = ( +/obj/structure/cable, +/obj/machinery/shieldwallgen{ + req_access = list(161); + anchored = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"Ue" = ( +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"Ug" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Uh" = ( +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"Ui" = ( +/obj/structure/disposalpipe/segment, +/obj/item/stack/cable_coil{ + amount = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Uj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Uk" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/machinery/door/poddoor{ + id_tag = "prisonvirus_blast" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/virus_lab) +"Ul" = ( +/obj/item/clothing/glasses/hud/health, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Um" = ( +/obj/structure/table/reinforced, +/obj/machinery/reagentgrinder{ + pixel_x = -1; + pixel_y = 9 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"Uo" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Up" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"Uq" = ( +/obj/item/stock_parts/manipulator, +/obj/machinery/constructable_frame/machine_frame, +/obj/item/stack/cable_coil{ + amount = 11 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Us" = ( +/obj/effect/decal/cleanable/blood, +/obj/structure/closet/walllocker/emerglocker/north, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"Ut" = ( +/obj/structure/bookcase, +/obj/item/book/manual/nuclear, +/obj/item/book/manual/random, +/obj/effect/turf_decal/siding/brown{ + dir = 8 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Uv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/lab_solar) +"Uw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/kitchen) +"Ux" = ( +/obj/machinery/vending/chinese/free, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/space/pirate_base/lab_hall) +"Uy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small{ + active_power_usage = 0; + dir = 4; + icon_state = "bulb-broken"; + status = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"Uz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"UD" = ( +/obj/machinery/mineral/unloading_machine{ + input_dir = 4; + output_dir = 8 + }, +/obj/structure/plasticflaps, +/obj/machinery/conveyor{ + id = "pirategarbage"; + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"UH" = ( +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkredcorners" + }, +/area/ruin/space/pirate_base/lab_sec) +"UI" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/internals, +/obj/item/storage/box/survival, +/obj/item/storage/box/survival, +/obj/item/storage/box/survival, +/obj/item/storage/box/survival, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"UK" = ( +/mob/living/simple_animal/hostile/zombie/whiteship{ + health = 30; + maxHealth = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"UN" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/blue{ + dir = 10 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"UO" = ( +/obj/structure/table, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"UP" = ( +/obj/item/reagent_containers/hypospray/autoinjector/salbutamol, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"UQ" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(161) + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"UT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"UV" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/virus_lab) +"UW" = ( +/turf/simulated/floor/greengrid, +/area/ruin/space/pirate_base/virus_lab) +"UX" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"UY" = ( +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Vb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Ve" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating/corner{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Vf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"Vg" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"Vh" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/kitchen_machine/oven, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Vi" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + pixel_y = 26; + dir = 1 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"Vj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Vk" = ( +/obj/effect/turf_decal/bot_red, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Vl" = ( +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/obj/structure/disposaloutlet{ + dir = 1 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Vm" = ( +/obj/structure/table, +/obj/item/restraints/handcuffs/cable, +/obj/item/restraints/handcuffs/cable, +/obj/item/restraints/handcuffs/cable, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Vo" = ( +/obj/structure/disposalpipe/segment{ + dir = 4; + icon_state = "pipe-c" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Vp" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Vr" = ( +/obj/effect/decal/warning_stripes/southeast, +/obj/structure/bed, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"Vt" = ( +/obj/effect/turf_decal/box, +/obj/structure/ore_box, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"Vu" = ( +/obj/structure/girder, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Vv" = ( +/obj/item/storage/backpack/satchel_tox, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"Vx" = ( +/obj/structure/table/reinforced, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"Vy" = ( +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"Vz" = ( +/obj/machinery/light{ + active_power_usage = 0; + icon_state = "tube-broken"; + status = 2 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"VB" = ( +/obj/item/shard{ + icon_state = "medium"; + pixel_x = -3; + pixel_y = -5 + }, +/obj/item/inflatable/torn, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"VE" = ( +/obj/structure/closet/body_bag/biohazard, +/obj/effect/mob_spawn/human/corpse, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"VF" = ( +/obj/machinery/door/airlock/security{ + req_access = list(161); + welded = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"VG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/chair/stool/bar, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"VJ" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"VL" = ( +/obj/machinery/computer/security{ + name = "Pirate hack camera console"; + network = list("SS13","Mining Outpost","PPrison") + }, +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"VN" = ( +/obj/effect/turf_decal/siding/brown, +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C"; + dir = 1 + }, +/obj/item/shard{ + pixel_x = 4 + }, +/obj/effect/decal/cleanable/glass, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"VP" = ( +/obj/machinery/vending/medical{ + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"VS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/alarm/syndicate{ + dir = 8; + pixel_x = 24; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"VT" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"VU" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"VV" = ( +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 8; + pixel_x = -26; + start_charge = 0 + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"VW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing/corner, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 4 + }, +/turf/space, +/area/space) +"VY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Wa" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/machinery/door_control{ + id = "midpoint_shut"; + name = "Midpoint Shutters"; + req_access = list(160); + pixel_y = 25; + pixel_x = -25 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_atrium) +"Wb" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/toilet{ + dir = 8; + pixel_x = 5; + pixel_y = 11 + }, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/observ) +"Wc" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/door/window{ + dir = 8 + }, +/obj/item/soap/homemade_whiskey, +/turf/simulated/floor/plasteel/white, +/area/ruin/space/pirate_base/observ) +"Wf" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Wg" = ( +/obj/effect/turf_decal/stripes/gold{ + dir = 6 + }, +/obj/structure/fermenting_barrel, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"Wh" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_maint) +"Wi" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/arrivals) +"Wj" = ( +/obj/machinery/door_control{ + id = "arrivalspirat_blast"; + name = "BlastDoor"; + req_access = list(160); + pixel_y = -24; + pixel_x = -24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"Wk" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + do_not_delete_me = 1; + dir = 1 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/space/pirate_base/arrivals) +"Wl" = ( +/obj/structure/rack, +/obj/item/stock_parts/scanning_module, +/obj/effect/spawner/lootdrop/maintenance/tripple, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Wn" = ( +/obj/structure/closet/crate/engineering, +/obj/item/stock_parts/matter_bin, +/obj/item/stock_parts/cell/upgraded, +/obj/item/t_scanner, +/obj/item/stock_parts/scanning_module, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Wr" = ( +/obj/effect/turf_decal/caution/stand_clear, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 8; + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/security_maint) +"Ws" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"Wv" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/simulated/floor/carpet/red, +/area/ruin/space/pirate_base/security_atrium) +"Wx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/cyan{ + dir = 6 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Wz" = ( +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"WA" = ( +/mob/living/simple_animal/mouse/brown{ + desc = "Главный помощник архитектора станции."; + real_name = "Инспектор Мышь" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"WD" = ( +/obj/machinery/shower{ + dir = 4; + pixel_x = -2 + }, +/obj/structure/curtain/open/shower, +/obj/effect/turf_decal{ + icon_state = "plumbing"; + name = "plumbing" + }, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"WE" = ( +/obj/machinery/computer/camera_advanced/shuttle_docker{ + shuttleId = "pirateship"; + shuttlePortId = "pirateship_custom"; + view_range = 20; + access_derelict = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "darkblue" + }, +/area/shuttle/pirate_corvette) +"WF" = ( +/obj/effect/decal/warning_stripes/south, +/obj/machinery/light, +/obj/machinery/iv_drip, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/virology) +"WI" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"WM" = ( +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple" + }, +/area/ruin/space/pirate_base/laboratory) +"WN" = ( +/obj/structure/table, +/obj/item/reagent_containers/hypospray/autoinjector/stimpack, +/obj/item/reagent_containers/hypospray/autoinjector/stimpack{ + pixel_y = 4; + pixel_x = 2 + }, +/obj/item/reagent_containers/applicator/dual/syndi, +/obj/item/reagent_containers/hypospray/combat, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "arrival" + }, +/area/shuttle/pirate_corvette) +"WO" = ( +/obj/structure/table/reinforced, +/obj/item/stack/sheet/xenochitin, +/obj/machinery/door_control{ + id = "prisonxeno_blast"; + name = "BlastDoor"; + req_access = list(161); + pixel_y = 8; + pixel_x = -6 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"WP" = ( +/obj/structure/closet/secure_closet{ + icon_state = "sec"; + req_access = list(161) + }, +/obj/item/gun/energy/e_gun/old, +/obj/item/storage/belt/military/assault, +/obj/item/clothing/suit/armor/vest/security, +/obj/item/holosign_creator/security, +/obj/item/storage/backpack/security, +/obj/item/restraints/handcuffs, +/obj/item/clothing/shoes/jackboots, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/space/pirate_base/lab_sec) +"WQ" = ( +/obj/structure/closet/crate/secure/biohazard{ + req_access = list(161) + }, +/obj/item/organ/internal/xenos/neurotoxin/sentinel, +/obj/item/organ/internal/xenos/plasmavessel/hunter, +/obj/item/organ/internal/xenos/acidgland, +/obj/item/organ/internal/xenos/resinspinner, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"WR" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/item/stock_parts/capacitor, +/obj/structure/rack, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"WW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"WZ" = ( +/obj/machinery/conveyor{ + id = "pirategarbagebase"; + dir = 4 + }, +/obj/machinery/disposal/deliveryChute{ + dir = 8 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/structure/sign/deathsposal{ + pixel_y = -32 + }, +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/security_maint) +"Xa" = ( +/obj/machinery/door/airlock/medical/glass{ + req_access = list(161); + aiControlDisabled = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virology) +"Xc" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door_control{ + id = "prisonsolarbolts"; + normaldoorcontrol = 1; + pixel_y = 24; + req_access = list(160); + specialfunctions = 4 + }, +/obj/machinery/light/small, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Xg" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 5 + }, +/obj/effect/turf_decal/siding/thinplating/dark/corner{ + dir = 8 + }, +/turf/simulated/floor/pod, +/area/ruin/space/pirate_base/security_atrium) +"Xh" = ( +/obj/machinery/door_control{ + id = "minerspirat_blast"; + name = "BlastDoor"; + pixel_y = 16; + pixel_x = -24 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Xi" = ( +/obj/machinery/door/poddoor/preopen{ + id_tag = "minerspirat_blast"; + use_power = 0 + }, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/delivery, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Xj" = ( +/obj/structure/closet{ + icon_state = "emergency"; + name = "emergency closet" + }, +/obj/item/tank/internals/emergency_oxygen/engi, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/laboratory) +"Xl" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/chair/comfy/beige, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atrium) +"Xn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"Xo" = ( +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/effect/spawner/random_spawners/syndicate/loot/level2{ + result = list(/obj/item/storage/box/syndie_kit/space = 2, /obj/item/clothing/shoes/magboots/syndie = 2, /obj/item/clothing/suit/armor/vest/combat = 2, /obj/item/ammo_box/magazine/m10mm = 7, /obj/item/storage/pill_bottle/happy = 1, /obj/item/storage/pill_bottle/zoom = 2, /obj/item/storage/pill_bottle/random_drug_bottle = 2, /obj/item/clothing/shoes/chameleon/noslip = 3, /obj/item/storage/belt/military = 5, /obj/item/clothing/under/chameleon = 3, /obj/item/storage/backpack/satchel_flat = 1, /obj/item/stamp/chameleon = 3, /obj/item/flag/chameleon = 1, /obj/item/lighter/zippo/gonzofist = 1, /obj/item/clothing/gloves/fingerless/rapid = 1, /obj/item/storage/box/syndie_kit/throwing_weapons = 1, /obj/item/pen/edagger = 1, /obj/item/reagent_containers/food/snacks/syndicake = 2, /obj/item/coin/antagtoken/syndicate = 2, /obj/item/gun/projectile/automatic/pistol = 4, /obj/item/gun/syringe/rapidsyringe = 8, /obj/item/storage/box/syndie_kit/bioterror = 8) + }, +/obj/structure/closet/crate/secure/gear{ + req_access = list(160) + }, +/obj/item/storage/box/syndie_kit/chameleon, +/obj/item/multitool/ai_detect, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/shuttle/pirate_corvette) +"Xp" = ( +/obj/structure/sign/poster/contraband/have_a_puff{ + pixel_y = 32 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Xq" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/security_medical) +"Xs" = ( +/obj/effect/turf_decal/siding/thinplating{ + color = "#F0E68C" + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Xt" = ( +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/processor, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/space/pirate_base/kitchen) +"Xu" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Xv" = ( +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160); + name = "Medical bay" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel, +/area/shuttle/pirate_corvette) +"Xw" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Xy" = ( +/obj/effect/turf_decal/arrows{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"Xz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_sec) +"XA" = ( +/obj/structure/table/wood, +/obj/item/trash/plate{ + pixel_x = 6; + pixel_y = 7 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"XC" = ( +/obj/effect/turf_decal/box, +/obj/structure/closet/crate/engineering, +/obj/item/analyzer, +/obj/random/tool, +/obj/random/tool, +/obj/random/tool, +/obj/item/clothing/head/welding, +/obj/item/clothing/gloves/color/yellow, +/obj/item/inflatable, +/obj/item/inflatable, +/obj/item/inflatable/door, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"XE" = ( +/obj/structure/table, +/obj/item/kitchen/utensil/pfork, +/obj/item/cigbutt, +/turf/simulated/floor/plasteel{ + icon_state = "bar" + }, +/area/ruin/space/pirate_base/atrium) +"XL" = ( +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plating/asteroid/airless, +/area/ruin/unpowered) +"XM" = ( +/obj/effect/baseturf_helper/asteroid/airless, +/turf/simulated/mineral, +/area/ruin/unpowered) +"XO" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonxeno_blast" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/xeno_lab) +"XQ" = ( +/obj/structure/weightmachine/weightlifter, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel/dark, +/area/ruin/space/pirate_base/atrium) +"XR" = ( +/turf/simulated/wall/shuttle/onlyselfsmooth/nodiagonal{ + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi' + }, +/area/shuttle/pirate_corvette) +"XS" = ( +/obj/effect/decal/cleanable/blood/gibs/old, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/virus_lab) +"XU" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"XV" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/portable_atmospherics/pump, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"XY" = ( +/obj/structure/table/wood/fancy, +/obj/item/card/id/thunderdome/red{ + name = "Pirate ID"; + registered_name = "Pirate"; + access = list(160,161,162,26); + desc = "A card used to determine access across."; + assignment = "Pirate" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/item/pen, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"XZ" = ( +/obj/item/trash/chips, +/obj/effect/decal/cleanable/blood/gibs/xeno/down, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/lab_maint) +"Yb" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"Yc" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"Yd" = ( +/obj/machinery/atmospherics/binary/volume_pump{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Ye" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_maint) +"Yf" = ( +/obj/machinery/shower{ + dir = 4; + pixel_x = -2 + }, +/obj/structure/curtain/open/shower, +/obj/effect/turf_decal{ + icon_state = "plumbing"; + name = "plumbing" + }, +/obj/item/crowbar, +/turf/simulated/floor/plasteel{ + icon_state = "showroomfloor" + }, +/area/ruin/space/pirate_base/atrium) +"Yh" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/door/airlock/hatch{ + aiControlDisabled = 1; + hackProof = 1; + req_access = list(160) + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"Yi" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/observ) +"Yj" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/entertainment) +"Yk" = ( +/obj/structure/rack, +/obj/item/pickaxe/safety, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/space/pirate_base/mining) +"Yl" = ( +/obj/machinery/cryopod/syndie{ + dir = 2 + }, +/obj/machinery/computer/cryopod{ + pixel_y = 32 + }, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/atrium) +"Ym" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Yn" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/kitchen) +"Yq" = ( +/obj/effect/decal/cleanable/cobweb, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"Ys" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Yt" = ( +/obj/structure/chair/sofa{ + dir = 8 + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26 + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"Yu" = ( +/obj/item/clothing/shoes/jackboots, +/obj/item/clothing/under/pirate, +/obj/item/clothing/under/pirate_rags, +/obj/item/clothing/glasses/eyepatch, +/obj/item/clothing/glasses/sunglasses, +/obj/item/clothing/gloves/combat, +/obj/item/clothing/head/bandana, +/obj/item/clothing/suit/pirate_black, +/obj/structure/closet{ + icon_state = "syndicate" + }, +/obj/effect/turf_decal/siding/wood/end{ + dir = 4 + }, +/obj/item/storage/backpack, +/obj/item/card/id/syndicate/anyone{ + access = list(160,161,162,26) + }, +/obj/item/radio/headset/syndicate/alt/syndteam{ + name = "headset" + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"Yv" = ( +/obj/structure/disposalpipe/segment, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_medical) +"Yx" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/plating, +/area/shuttle/pirate_corvette) +"Yy" = ( +/obj/effect/turf_decal/siding/blue{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/security_atrium) +"YA" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/camera{ + c_tag = "LP7 XenoLab"; + network = list("PPrison"); + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"YC" = ( +/turf/simulated/floor/pod/light, +/area/ruin/space/pirate_base/atrium) +"YD" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/power/apc/noalarm{ + req_access = list(160); + dir = 4; + pixel_x = 26; + start_charge = 0 + }, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/mining) +"YE" = ( +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"YF" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"YG" = ( +/obj/machinery/atmospherics/binary/volume_pump{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"YK" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/observ) +"YM" = ( +/obj/structure/lattice/catwalk, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/space, +/area/space) +"YO" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/closet/walllocker/emerglocker/north, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"YP" = ( +/obj/structure/grille/broken, +/obj/item/shard{ + icon_state = "small"; + pixel_x = 3; + pixel_y = 2 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/item/stack/rods, +/obj/structure/inflatable{ + layer = 3.1 + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"YQ" = ( +/obj/effect/turf_decal/caution{ + dir = 4; + do_not_delete_me = 1 + }, +/obj/machinery/light/small{ + dir = 1; + pixel_x = 8 + }, +/obj/effect/decal/cleanable/dust, +/turf/simulated/floor/plasteel/airless{ + icon_state = "podfloor_light"; + icon_regular_floor = "podfloor_light" + }, +/area/shuttle/pirate_corvette) +"YR" = ( +/obj/item/gun/projectile/automatic/pistol, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/telecomms) +"YS" = ( +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass, +/obj/structure/table/wood/fancy, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/atmos) +"YT" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/entertainment) +"YU" = ( +/obj/effect/landmark/tiles/damageturf, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/lab_hall) +"YW" = ( +/obj/structure/table, +/obj/item/gps{ + tracking = 0 + }, +/obj/item/gps{ + tracking = 0 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"YX" = ( +/obj/item/flag/species/human, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/arrivals) +"YZ" = ( +/obj/machinery/hydroponics/constructable, +/obj/item/seeds/tower, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"Za" = ( +/obj/machinery/door/poddoor{ + id_tag = "minerspirat_blast"; + use_power = 0 + }, +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"Zb" = ( +/obj/structure/closet/secure_closet/medical2{ + req_access = list(160) + }, +/obj/item/mmi, +/obj/item/stack/nanopaste, +/obj/item/stack/nanopaste, +/obj/item/storage/toolbox/syndicate, +/obj/item/storage/box/syringes{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/robot_parts/r_leg, +/obj/item/robot_parts/l_leg, +/obj/item/robot_parts/r_arm, +/obj/item/robot_parts/l_arm, +/obj/item/storage/firstaid/doctor, +/obj/item/storage/firstaid/toxin, +/obj/item/storage/firstaid/o2, +/obj/item/storage/firstaid/fire, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/adv, +/obj/item/handheld_defibrillator, +/obj/item/storage/box/bodybags, +/obj/item/soap, +/obj/item/storage/pill_bottle/patch_pack, +/obj/item/storage/pill_bottle, +/obj/item/storage/belt/medical, +/obj/item/clothing/glasses/hud/health, +/obj/machinery/light/small{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "arrivalcorner" + }, +/area/shuttle/pirate_corvette) +"Zc" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/kitchen) +"Ze" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/item/inflatable, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Zf" = ( +/obj/machinery/door/window/northleft{ + req_access = list(160) + }, +/obj/machinery/shower{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Zh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/decal/cleanable/blood/xeno, +/turf/simulated/floor/plasteel{ + icon_state = "whitepurplecorner" + }, +/area/ruin/space/pirate_base/laboratory) +"Zi" = ( +/obj/machinery/atmospherics/unary/vent_scrubber{ + dir = 8; + name = "standard air scrubber"; + on = 1; + scrub_N2O = 1; + scrub_Toxins = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Zj" = ( +/obj/structure/grille, +/obj/structure/window/reinforced{ + dir = 1 + }, +/obj/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id_tag = "prisonresearch" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/laboratory) +"Zk" = ( +/obj/structure/grille, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/machinery/door/poddoor{ + id_tag = "prisonvirus_blast" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/virus_lab) +"Zl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"Zn" = ( +/obj/structure/alien/weeds{ + icon_state = "weeds2" + }, +/obj/structure/alien/weeds{ + desc = "A large mottled egg."; + icon_state = "egg_hatched"; + name = "egg" + }, +/turf/simulated/floor/engine, +/area/ruin/space/pirate_base/xeno_lab) +"Zo" = ( +/obj/machinery/door_control{ + id = "labburn"; + pixel_x = -6; + pixel_y = -23 + }, +/obj/machinery/ignition_switch{ + id = "labins"; + pixel_x = 6; + pixel_y = -23 + }, +/obj/effect/baseturf_helper/asteroid, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Zr" = ( +/obj/structure/flora/ausbushes/sparsegrass, +/turf/simulated/floor/grass, +/area/ruin/space/pirate_base/kitchen) +"Zs" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atrium) +"Zt" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 8; + icon_state = "pipe-c" + }, +/obj/structure/grille, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"Zv" = ( +/obj/effect/turf_decal/siding/brown{ + dir = 1 + }, +/obj/effect/decal/cleanable/blood, +/turf/simulated/floor/plasteel, +/area/ruin/space/pirate_base/atrium) +"Zw" = ( +/turf/simulated/wall/r_wall, +/area/ruin/space/pirate_base/prison_maint) +"Zx" = ( +/obj/machinery/light{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurplecorner"; + tag = "icon-whitepurplecorner (EAST)" + }, +/area/ruin/space/pirate_base/laboratory) +"Zy" = ( +/turf/simulated/floor/plasteel{ + icon_state = "cmo" + }, +/area/ruin/space/pirate_base/security_medical) +"ZB" = ( +/obj/structure/railing, +/obj/structure/rack, +/obj/effect/spawner/lootdrop/maintenance/double, +/obj/effect/decal/cleanable/cobweb2, +/turf/simulated/floor/pod/dark, +/area/ruin/space/pirate_base/telecomms) +"ZD" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ZE" = ( +/obj/structure/disposalpipe/segment{ + dir = 1; + icon_state = "pipe-c" + }, +/turf/simulated/wall/shuttle/onlyselfsmooth/nodiagonal{ + icon = 'icons/turf/walls/shuttle/gray_shuttle_wall.dmi' + }, +/area/shuttle/pirate_corvette) +"ZH" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + name = "Connector Port (Air Supply)" + }, +/obj/machinery/portable_atmospherics/canister/oxygen{ + name = "Canister: \[O2] (CRYO)" + }, +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/machinery/door/window{ + dir = 2 + }, +/obj/structure/window/reinforced{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull" + }, +/area/ruin/space/pirate_base/security_medical) +"ZJ" = ( +/obj/effect/turf_decal/siding/wood/end{ + dir = 8 + }, +/turf/simulated/floor/wood, +/area/ruin/space/pirate_base/security_atrium) +"ZL" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/prison_solar) +"ZM" = ( +/obj/structure/table/reinforced, +/obj/machinery/photocopier/faxmachine/longrange/syndie{ + department = "Pirate"; + name = "pirate long range fax machine"; + req_access = list(160) + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/observ) +"ZN" = ( +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/atmos) +"ZQ" = ( +/obj/structure/table, +/obj/item/slimepotion/speed{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/slimepotion/speed{ + pixel_x = 3; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "sepia" + }, +/area/ruin/space/pirate_base/security_medical) +"ZR" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/sign/vacuum{ + pixel_x = 32 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"ZS" = ( +/obj/item/storage/box/beakers{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/structure/rack, +/obj/item/reagent_containers/dropper, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkpurple" + }, +/area/ruin/space/pirate_base/virology) +"ZU" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_maint) +"ZV" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/mining) +"ZW" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "dark" + }, +/area/ruin/space/pirate_base/xeno_lab) +"ZX" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil/yellow, +/obj/item/stack/cable_coil/yellow{ + pixel_y = -2; + pixel_x = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/space/pirate_base/lab_solar) +"ZY" = ( +/obj/machinery/optable, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/space/pirate_base/lab_medical) + +(1,1,1) = {" +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +"} +(2,1,1) = {" +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +"} +(3,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +OY +OY +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +NM +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +NM +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(4,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +OY +NM +NM +qc +qc +qc +qc +qc +qc +qc +qc +OY +OY +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +mM +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(5,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +OY +qc +qc +qc +qc +qc +qc +qc +qc +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(6,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(7,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +cq +cq +cq +RQ +cq +cq +cq +RQ +cq +cq +cq +RQ +cq +cq +NA +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +mM +mM +AK +mM +mM +AK +AK +AK +AK +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(8,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +RQ +qc +qc +qc +qc +qc +qc +RQ +qc +qc +qc +RQ +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +mM +mM +mM +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(9,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +fd +fd +fd +fd +fd +fd +fd +fd +RQ +RQ +RQ +RQ +RQ +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(10,1,1) = {" +lY +lY +qc +qc +qc +qc +gL +xB +rA +rA +rA +rA +rA +rA +rA +rA +xB +xB +xB +Ti +RQ +qc +qc +qc +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Zw +Zw +Zw +Zw +Zw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(11,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +JW +JW +JW +JW +JW +JW +JW +JW +RQ +RQ +RQ +vZ +RQ +qc +qc +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Zw +qs +HO +Iz +Zw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(12,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +RQ +vZ +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +IZ +IZ +IZ +IZ +IZ +Zw +ue +vg +vg +Zw +Zw +Zw +Zw +Zw +Zw +PD +bO +PD +PD +PD +PD +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(13,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +cY +vZ +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +IZ +Qd +pA +Qd +jc +Ox +ue +GP +vg +QY +ig +qL +rI +Bb +Ox +zZ +kI +Gq +DT +FB +PD +PD +PD +PD +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(14,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +IZ +Af +IZ +AK +AK +AK +IZ +IZ +IZ +IZ +IZ +IZ +IZ +Uq +pu +fV +ZL +mt +xo +Ye +hE +Ui +uR +Ah +Hm +bD +GI +Si +ho +Sn +WA +DT +DT +ZV +rB +PD +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(15,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +IZ +Xc +IZ +AK +AK +AK +IZ +Wz +Qd +VT +EW +Oo +IZ +KF +Pe +Lf +yl +Ox +Ib +rI +SV +SV +SV +SV +SV +SV +SV +qm +Ym +DT +av +kI +Dw +Qg +DT +PD +PD +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(16,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +mM +AK +AK +IZ +Yh +IZ +IZ +IZ +IZ +IZ +Qd +oP +Pe +aO +zv +IZ +eT +bx +Uz +yQ +Ox +bv +ue +SV +ij +kY +ia +AS +Ty +SV +kI +sU +lW +AD +oL +oL +DT +kI +DT +PD +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(17,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +OY +qc +qc +qc +qc +mM +mM +mM +AK +AK +IZ +BP +wa +wa +wD +dF +Gi +fP +ep +wD +Uo +wD +QT +cn +Qd +Uz +ko +Ox +LX +Wn +SV +zz +pd +pd +pd +Aq +SV +kI +yY +xD +gd +xD +uz +rd +Ov +uF +PD +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(18,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +mM +AK +AK +AK +AK +AK +AK +IZ +Ua +Td +IZ +IZ +IZ +IZ +hQ +tU +Qd +dS +kn +IZ +uT +Qd +Uz +ko +Ql +tb +IM +SV +RJ +qZ +rD +pd +Es +SV +kI +Qp +mk +vM +qP +UD +qP +By +qP +PD +PD +PD +PD +PD +PD +PD +PD +PD +PD +PO +mM +GG +AK +AK +AK +mM +mM +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(19,1,1) = {" +lY +lY +OY +OY +qc +qc +qc +qc +qc +mM +mM +mM +AK +AK +AK +AK +AK +AK +IZ +IZ +IZ +IZ +AK +AK +IZ +Qd +Qd +CD +EW +Oo +IZ +qN +cI +Fq +ko +QQ +tb +SV +SV +SV +SV +SV +lt +SV +SV +SV +rh +SV +SV +qP +Vt +CG +dW +kg +DT +ii +Cp +Cx +AJ +kI +Xh +Xi +DK +py +mM +mM +mM +mM +mM +mM +mM +mM +AK +AK +XL +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(20,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +IZ +IZ +IZ +IZ +IZ +IZ +IZ +IZ +IZ +IZ +IZ +gp +Ib +SV +yd +VG +OP +SV +Ft +us +SV +Yf +WD +Ko +SV +Jx +Jp +jJ +Vb +Vf +ak +sa +ge +ge +Za +DT +kI +Xi +oZ +mU +mM +mM +mM +mM +mM +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(21,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Zw +qp +Ib +SV +sn +fc +rT +SV +tn +Tf +aC +JI +la +IB +SV +lO +Ny +BT +Vp +BE +Yk +QA +yh +et +AJ +fC +ZR +Xi +oZ +Re +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(22,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +XM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Zw +Ka +tb +SV +Xl +FR +pd +lt +FA +QZ +SV +SV +SV +SV +SV +Ry +bM +Uj +cp +Fg +Fg +Fg +Fg +Fg +PD +PD +PD +PD +PD +PD +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(23,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Zw +Kx +tb +SV +zz +xA +OG +SV +Zv +cN +SV +cQ +PG +SV +BQ +ak +hJ +Uj +br +Fg +dc +pv +dc +Fg +Fg +Fg +Tn +vX +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +PA +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(24,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Zw +rI +Ib +SV +Ic +Dv +Dr +SV +hz +cW +Rv +fu +nw +SV +sp +YD +gN +fB +wR +Fg +rw +PT +eO +ks +ks +Fg +sz +sz +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(25,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +mM +mM +mM +mM +DM +AK +AK +AK +AK +AK +AK +Zw +zf +Ib +SV +SV +SV +SV +SV +AQ +xn +SV +SV +SV +SV +qP +qP +vW +zs +qP +Fg +bl +ye +bs +bs +rF +Fg +sz +iy +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(26,1,1) = {" +lY +lY +qc +qc +NM +qc +qc +AK +AK +AK +AK +AK +AK +AK +mM +mM +ve +ve +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +AK +AK +AK +AK +Zw +lq +au +Vj +SV +nh +PB +Ej +zi +Mv +CA +Ut +jS +Pv +Lp +QB +dg +kx +Oj +Or +sz +Bk +SH +PJ +LY +Fg +sz +cR +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +PE +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(27,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +DM +mM +mM +ve +ve +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +AK +AK +AK +AK +Zw +CF +fH +TO +vP +rH +oF +qG +qG +qG +kH +qG +gk +qG +XU +Zs +om +lE +QZ +Fg +Fg +Fg +Fg +Fg +Fg +Fg +rF +JJ +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +PE +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(28,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +ve +ve +qc +qc +mM +mM +mM +mM +AK +AK +AK +Zw +Zw +aH +XV +SV +Hr +Pc +eN +zV +Eo +tK +Lu +Bw +Eo +ui +Kc +Kc +FQ +eB +Fg +rF +sz +qj +rF +rw +Fg +rF +pc +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +XL +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(29,1,1) = {" +lY +lY +qc +qc +qc +qc +mM +AK +AK +AK +AK +qc +qc +qc +qc +qc +mM +mM +mM +mM +mM +mM +mM +qc +qc +qc +qc +qc +qc +mM +mM +AK +AK +AK +AK +wF +fH +RS +SV +kE +Cd +lT +VU +hb +RY +Rs +LZ +zV +Xs +sN +LS +Xn +As +Uc +OX +AH +bs +ql +sz +Fg +rF +IA +CC +CC +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +Db +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(30,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +AK +AK +AK +qc +qc +qc +qc +qc +qc +sD +ay +Io +ay +ay +se +se +se +se +ay +ay +ay +ay +Io +AK +AK +AK +AK +Zw +fH +pb +SV +SV +sI +SV +SV +ug +oU +gA +JQ +gA +Xs +wz +wz +XQ +VN +Ag +eb +sh +tQ +Nz +rF +RN +rF +rF +Pn +CC +AK +AK +AK +AK +AK +AK +AK +AK +XL +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(31,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +Ij +uS +yS +VW +JC +JC +JC +JC +JC +Id +Id +JC +Dq +LQ +mM +AK +AK +AK +Zw +uG +Ip +SV +fS +KM +NV +SV +AQ +Nd +DH +uL +UN +Xs +Ck +wz +qt +TP +TV +TI +wq +tu +ll +uk +Fg +sV +rF +qd +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(32,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +Qf +XR +Kl +Ay +Ay +XR +sx +qc +qc +qc +qc +qc +qc +Ac +qY +mM +AK +AK +AK +Zw +fH +Ip +SV +Gg +KM +Ju +AY +Zv +zw +XE +uE +Jn +yi +gM +gM +dX +az +Fg +nB +tQ +Hs +rw +HX +Fg +sz +sz +Ee +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(33,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +en +XR +XR +XR +XR +NK +XR +XR +XR +XR +mZ +qc +qc +qc +qc +Ac +qY +mM +AK +AK +Zw +Zw +aH +Ip +SV +Aa +KM +fS +SQ +ED +jy +Dd +MM +qr +hr +NZ +NZ +aD +zj +wn +YT +Yj +CQ +rw +IH +jj +cR +sz +xF +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +gm +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(34,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +Qf +Ok +Ok +XR +cj +op +cA +wI +Cb +wI +My +gi +Ey +XR +Ok +wI +sx +qc +Ac +qY +mM +AK +AK +Zw +cy +wC +pb +SV +Yl +ln +MO +HU +zr +xw +nj +AI +Oy +VU +LO +JB +VU +Fk +Fg +Ws +RB +iO +lV +rF +Fg +rF +rF +yG +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(35,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +Ok +gc +ux +Xo +Cz +nf +nf +XR +HJ +XR +Xp +sT +KQ +BF +Hz +kb +xb +qc +Th +LQ +mM +AK +AK +Zw +Hk +ue +pb +SV +lf +Dh +fS +SV +mu +tT +yu +Na +FG +vo +Ad +vo +re +pP +vo +vo +vo +vo +vo +vo +vo +vo +Bn +pw +CC +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(36,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +Ok +IO +oA +Cz +RP +Ns +ej +XR +iL +tk +Ys +Ep +AA +WW +Hx +eh +xb +qc +Th +LQ +AK +AK +AK +cc +so +cc +bj +SV +SV +lg +vo +vo +vx +LI +vo +nc +vo +vo +dk +Fm +Uw +Uw +rQ +BH +tf +Ax +RW +hx +vo +xf +Up +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(37,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +yL +Ok +XR +OI +GZ +JS +Jw +nx +sJ +sJ +Pk +Hh +sT +ei +Mp +XR +sX +qc +Th +LQ +AK +AK +AK +cc +Ii +iG +bp +hP +xw +Bw +vo +GM +Oe +LV +aw +Nq +rl +zK +mq +lR +Zc +da +SW +lP +Cv +Zr +Vy +EX +vo +ya +Up +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(38,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +yL +XR +wI +wI +wI +XR +XR +XR +PN +XR +XR +ME +XR +sX +qc +qc +Th +qY +AK +AK +AK +cc +YC +Eo +bp +aB +cw +gS +rP +ma +NH +IC +Vh +No +ec +hY +mq +gx +vo +YZ +Qz +Gm +cE +of +of +Wg +vo +Up +lX +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(39,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +ey +dO +ON +Iq +wI +mP +qK +Dm +XR +cm +bi +ZE +qc +qc +qc +Th +qY +AK +AK +AK +cc +mL +Eo +OE +IN +ag +Bw +QM +Pd +cd +db +bf +Hi +NH +gt +jp +gx +zJ +sO +Qz +vo +vo +vo +wx +vo +vo +oN +uW +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(40,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +ey +jN +An +vc +XR +fr +uy +Dm +XR +oQ +eh +pI +qc +qc +qc +Th +qY +AK +AK +AK +cc +SV +ni +vB +em +Ec +rZ +rm +aw +Fx +Jm +Qm +Ve +lm +sQ +Jq +KL +iV +iV +nb +vo +jC +Yn +ya +Up +he +Up +Up +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(41,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +ey +iv +FU +sK +FK +Sz +Tp +iS +Fi +if +eh +xb +qc +qc +qc +Th +qY +AK +AK +AK +cc +FJ +ou +xw +Eg +kP +xw +vo +DV +Xt +zp +aT +Cr +fl +zK +qk +Ob +mp +Qh +fK +Mx +Up +ya +Uy +Up +gs +Up +Up +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(42,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +ey +WE +vJ +zQ +XR +DE +bh +Fb +XR +cU +eh +xb +qc +qc +qc +Th +LQ +AK +AK +AK +Iv +Iv +Iv +Iv +DL +ac +DL +Iv +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +pw +BK +uf +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(43,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +ey +cT +qv +yz +wI +dZ +dB +Dm +XR +pT +XR +XR +qc +qc +qc +Ac +LQ +AK +AK +AK +Iv +fJ +Dn +Dn +bd +qO +Dn +Iv +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +pw +pw +pw +pw +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(44,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +en +XR +wI +wI +wI +XR +XR +XR +Wf +XR +XR +gU +XR +mZ +qc +qc +Ac +qY +AK +AK +AK +Iv +rx +VY +Dn +CS +qO +nY +Iv +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(45,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +en +Ok +XR +hc +WN +vy +AL +Xv +sJ +RA +dz +ji +dd +jl +Om +XR +mZ +qc +Ac +qY +mM +AK +AK +Iv +LG +VY +Dn +fj +yx +VY +Iv +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +xt +xt +xt +xt +xt +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(46,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +Ok +xz +er +zq +oI +Xu +Jk +XR +Kb +kG +bT +zC +Er +hC +Yx +eh +xb +qc +Th +Kf +ve +AK +AK +Iv +sl +VY +Dn +Dn +qO +Aj +Iv +Iv +Iv +Iv +cr +cr +cr +cr +cr +cr +cr +cr +cS +cS +xt +xt +xt +xt +xt +xt +xt +xt +xt +xt +xt +xt +AW +LU +zD +xt +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(47,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +Ok +kA +tm +xu +zq +uy +Ri +XR +HJ +XR +KQ +Wx +Mj +el +wZ +kb +xb +qc +Th +Kf +mM +AK +AK +Iv +Ir +VY +Dn +eL +aI +VY +dN +GB +Ll +ca +Bx +MR +qT +It +wd +JF +It +Sj +sr +ox +iM +xZ +bZ +vm +SP +iM +mv +hG +Nf +Aw +iz +iM +hw +bZ +eW +xt +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(48,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +je +Ok +Ok +it +xE +Zb +qH +wI +BR +wI +My +Jt +Jt +XR +Ok +wI +uc +qc +Th +qY +AK +AK +AK +Iv +Dn +VY +Is +sZ +GJ +ez +tr +IU +gK +gK +Ex +Kh +hL +Xz +Dk +Xz +Dc +Fl +JO +xh +hf +yk +gO +lk +JP +BI +eu +ml +ml +or +RR +xM +bZ +pn +cM +xt +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(49,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +yL +XR +XR +XR +XR +jg +XR +XR +XR +XR +sX +qc +qc +qc +qc +Th +qY +AK +AK +AK +Iv +AV +Vm +Is +Dn +qO +YX +Iv +Iv +Iv +Iv +cr +cr +cr +cr +dE +zR +cr +cr +hF +nv +iM +iM +iM +iM +iM +iM +iM +iM +iM +vn +iM +iM +bZ +sA +PV +xt +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(50,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +je +XR +YQ +ce +HH +XR +uc +qc +qc +qc +qc +qc +qc +Th +LQ +Iv +Iv +Iv +Iv +Iv +Iv +Iv +Iv +pj +Iv +Iv +AK +AK +AK +cr +bg +SR +MB +OA +wM +Ei +cr +JL +FW +rp +hX +At +Mq +Gf +TJ +ke +FX +iM +lK +jT +Mw +Zo +bJ +mw +bJ +bJ +bJ +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(51,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +sD +kB +GO +MT +se +ay +ay +ay +ay +ay +ay +ay +iR +LQ +Wi +cD +Iv +gQ +De +sB +Iv +HQ +xp +sy +Iv +AK +AK +AK +cr +Ne +iC +ti +EC +js +km +cr +Ez +pQ +lN +IX +Gb +nm +SZ +ru +ru +SC +iM +OB +vt +zY +bZ +vV +fE +wT +Li +bJ +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(52,1,1) = {" +lY +lY +qc +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +Ij +JC +JC +JC +JC +Id +Id +Id +JC +JC +JC +JC +Dq +LQ +bk +ao +bu +VY +VY +Wj +lz +VY +qO +sy +Iv +AK +AK +AK +cr +AG +vz +FF +Pf +Rl +UT +VF +pk +iK +kl +IX +nm +zW +Gf +Gf +Gf +Gf +iM +aX +yI +ZD +bZ +HV +XZ +qM +SK +bJ +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(53,1,1) = {" +lY +lY +qc +AK +AK +AK +AK +AK +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +mM +mM +Th +LQ +bk +ao +bu +Dn +VY +Dn +lz +an +xI +Fy +Iv +AK +AK +AK +cr +po +lG +od +UH +hh +ts +cr +mK +fQ +Sk +Sk +nm +bK +Gf +RO +BZ +uZ +xM +xS +im +kd +bc +Lt +BJ +rX +VE +bJ +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(54,1,1) = {" +lY +lY +qc +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +ve +ve +mM +Fc +LQ +Wk +IR +Iv +Tu +Dn +sB +Iv +hU +xI +Mz +Iv +AK +AK +AK +cr +cr +cr +cr +cr +zg +WP +cr +tB +Bt +Yv +VS +yw +SD +Gf +Gv +nE +LN +iM +eU +vC +Yd +bS +bJ +bJ +bJ +bJ +bJ +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(55,1,1) = {" +lY +lY +qc +qc +AK +AK +AK +AK +AK +AK +AK +Ie +mM +mM +mM +ve +ve +mM +qc +qc +mM +mM +mM +qc +qc +qc +ve +ve +mM +Ij +JC +Iv +Iv +Iv +Iv +Iv +Iv +Iv +dn +tw +Is +Iv +AK +AK +AK +AK +cS +cV +fe +cS +cS +cS +cS +eX +MU +Gf +Gf +Gf +Gf +Gf +RK +QU +vI +iM +eS +Ro +Ha +bZ +Mb +xt +AK +AK +AK +AK +mM +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(56,1,1) = {" +lY +lY +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +ve +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +AK +AK +AK +AK +Iv +YW +Gx +Dn +Dn +Ge +qh +Iv +AK +AK +AK +AK +cS +pQ +pQ +iK +iK +iK +oy +oE +ju +Gf +fq +ZY +Tw +Gf +Gf +gZ +iM +iM +mg +ZU +pn +bZ +Al +xt +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(57,1,1) = {" +lY +lY +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +mM +mM +mM +ve +ve +mM +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +Iv +If +nN +gw +xC +ha +fA +Iv +AK +AK +AK +AK +cS +cS +iK +pQ +pQ +oz +Oi +mB +Hq +rp +Bc +Sk +uA +mA +Sk +nm +nW +wJ +AN +Ro +mm +di +xt +xt +AK +AK +AK +AK +mM +mM +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(58,1,1) = {" +lY +lY +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +Iv +xa +jW +UX +aN +qO +yE +Iv +AK +AK +AK +AK +AK +cS +ES +JT +oO +Cl +oy +nA +YU +kl +no +nm +NP +nQ +Xw +Ul +iM +oo +AN +Ze +HL +EZ +xt +AK +AK +AK +AK +AK +mM +mM +GG +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(59,1,1) = {" +lY +lY +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +mM +mM +Ie +AK +AK +AK +AK +AK +AK +AK +AK +AK +Iv +Iv +Iv +Iv +mH +qQ +Iv +Iv +BM +BM +BM +AK +AK +cS +cS +cS +cS +cS +oy +RL +uq +Sh +Fr +Nb +we +Fd +BY +lD +iM +SE +Tq +Zt +bZ +vw +xt +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(60,1,1) = {" +lY +lY +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +BM +Po +Wa +uI +sv +BM +qA +Lo +BM +AK +AK +cS +Ux +dl +iQ +cS +zh +oE +uj +Gf +Gf +Gf +Gf +Gf +Gf +Gf +iM +UQ +iM +xM +iM +iM +xt +AK +AK +AK +AK +AK +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(61,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mc +mc +mc +mc +AK +AK +AK +BM +dQ +vN +Fv +Nk +yW +Df +lx +BM +AK +AK +cS +qX +KU +tA +Ol +Bt +tM +pg +Km +OZ +dh +GA +bV +HM +KY +ul +sY +aJ +oy +mj +sb +cS +AK +AK +AK +AK +AK +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(62,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mc +mc +mc +mc +mc +mc +mc +BC +HK +mc +mc +mc +mc +mc +BM +wA +Pj +BM +BM +BM +BM +BM +AK +AK +cS +HR +NE +wi +cS +cS +ex +iK +jb +VB +RT +aR +cG +Qv +Sm +iK +KJ +ax +bq +jm +Kw +cS +AK +AK +AK +AK +mM +mM +AK +AK +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(63,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mc +Tk +XA +EL +hq +oT +qB +iT +ZN +iT +hI +Pw +hW +eP +QP +GN +dM +BM +AK +AK +AK +AK +AK +AK +cS +xK +Ml +kS +ad +cS +oy +MP +GF +ze +oy +cS +cS +cS +cS +na +oX +cS +cS +cS +cS +cS +AK +AK +AK +mM +mM +Bu +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(64,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +mc +oT +wK +wf +Sg +hO +hO +Vu +ZN +iT +hI +iT +iT +Vo +mi +hV +kU +BM +BM +AK +AK +AK +AK +AK +cS +ok +hk +hM +PR +cS +mN +iK +wP +iK +iK +cS +AK +Md +fT +xk +lZ +OF +Md +AK +AK +AK +AK +mM +aj +mM +lo +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(65,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mc +NW +lQ +YS +GT +hO +Vo +uQ +uQ +uQ +uQ +uQ +pW +KS +QP +du +fx +yj +BM +AK +AK +AK +AK +AK +cS +in +NE +MF +cS +cS +iK +GU +BW +Ma +iK +St +AK +kQ +Qe +Fa +CV +bC +Av +mM +mM +GG +mM +nd +mM +AK +AK +mM +mM +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(66,1,1) = {" +lY +lY +qc +OY +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +mc +oT +bA +EJ +tF +hO +pi +QP +QP +QP +QP +QP +QP +QP +QP +Oh +fa +ai +BM +AK +AK +AK +AK +AK +cS +cS +Dz +vi +cS +pU +iK +pQ +rv +nK +UO +hR +mM +Zj +rj +CX +aG +Qw +YP +hN +ir +ki +UP +sG +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +mM +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(67,1,1) = {" +lY +lY +qc +NM +NM +NM +OY +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +mc +mc +mc +mc +hO +hO +hO +hO +hO +Yc +QP +Sl +my +qx +CL +Rb +dx +tE +CR +fa +mO +BM +AK +AK +AK +AK +AK +AK +cS +cS +cS +cS +Pt +Mo +Rr +sj +MV +iK +vL +mM +ih +cx +Ig +qa +jP +ih +mM +AT +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +IS +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(68,1,1) = {" +lY +lY +OY +NM +NM +NM +NM +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +mc +xJ +ew +hO +hO +HF +pl +pl +pl +jw +QP +qo +EQ +GL +pR +KZ +KZ +QO +do +Pa +RG +yr +yr +yr +yr +AK +AK +AK +AK +mM +AK +cS +cS +cS +cS +Lx +xY +xv +cS +AK +Md +KI +oK +vl +Jy +Md +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(69,1,1) = {" +lY +lY +OY +OY +NM +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +mc +iT +iT +iT +hO +FO +iT +cO +iT +EM +QP +Bj +Ih +kc +jq +HC +lh +yf +mX +pm +RG +CP +HY +CZ +yr +AK +AK +AK +mM +mM +AK +AK +AK +AK +cS +cS +cS +cS +cS +AK +Md +Md +eG +aY +Md +Md +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +EE +mM +mM +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(70,1,1) = {" +lY +lY +qc +OY +OY +NM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +mc +hO +hO +hO +hO +gq +iT +BM +BM +BM +BM +Ng +gn +kc +TW +dJ +am +Sy +Ew +RG +RG +iI +Zy +Zf +yr +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Md +qI +vl +Jz +Md +Md +Md +Md +Md +Md +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +mM +mM +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(71,1,1) = {" +lY +lY +qc +OY +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +mc +pN +LE +PI +np +jM +Vu +BM +SA +TE +BM +dr +jI +Wv +TW +dJ +OQ +VJ +OH +RG +tc +BG +DC +NS +yr +yr +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +Md +jU +hg +Xj +DB +lw +wm +Rm +OU +Md +Md +Md +ci +ci +ci +ci +ci +ci +AK +mM +mM +mM +Gp +mM +mM +AK +mM +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(72,1,1) = {" +lY +lY +qc +OY +OY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +mc +gg +iT +iT +iT +gq +LC +BM +ws +FL +yn +GR +jz +le +Ek +dJ +QP +Mg +OH +Xq +ZH +PX +pC +Zy +mC +yr +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +Md +Md +Md +Md +Md +Md +Jf +DI +DB +Hp +gC +Ak +YE +Kz +jd +PU +Bp +ci +wk +nJ +Qt +WR +ci +AK +mM +IS +mM +mM +mM +GG +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(73,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +mc +vF +iT +hI +hI +gq +Cn +BM +BM +BM +BM +fz +RU +BU +XY +wX +QP +VJ +uM +gH +QE +Zl +tN +Gt +CU +yr +AK +AK +mM +AK +AK +MD +MD +MD +MD +MD +Md +Wl +IQ +bG +is +Md +sM +hi +DB +gY +lA +CH +PS +jR +YE +CY +YE +ci +mW +Bg +Bg +fs +ci +AK +GG +mM +mM +mM +mM +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(74,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +mc +mc +cs +ZN +OR +AE +gq +af +BM +SA +TE +BM +dj +cX +mE +Yt +rL +QP +Ed +OH +Xq +Su +QW +Zi +Zy +AF +yr +AK +AK +AK +AK +AK +MD +Nv +Nv +qW +uv +Md +YE +CY +CY +YE +MK +Vv +pe +fZ +PM +NC +BV +rE +DO +zU +iu +iu +cz +DP +FE +FE +oa +ci +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +lY +lY +"} +(75,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mc +oW +jO +TM +Qn +hu +Kj +yv +BM +bw +FL +yn +Xg +zX +Nx +Nx +Nx +Nx +VJ +OH +RG +Ho +VP +tt +iU +Ja +yr +AK +AK +AK +AK +AK +MD +sq +nl +UK +wl +MD +MD +MD +MD +MD +MD +Yb +Zh +DB +jZ +jZ +jZ +jZ +jZ +jZ +jZ +jZ +jZ +tv +Pp +ar +RE +ci +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +lY +lY +"} +(76,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mc +oW +ic +QI +ix +rU +Ug +yv +BM +BM +BM +BM +jG +WI +YK +vf +ZM +Nx +kV +Ew +RG +RG +RG +RG +RG +RG +yr +yr +yr +AK +AK +AK +MD +xP +aA +Cw +wl +ek +wl +wl +tP +jn +MD +Vi +vh +bL +jZ +VV +za +lu +Ud +jZ +Ly +dD +jZ +jZ +ci +ci +El +ci +ci +ci +ci +ci +ci +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +lY +lY +"} +(77,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mc +mc +hO +hO +hO +hO +cu +Vu +BM +Ca +ZJ +yn +IK +df +lI +lr +Ef +Nx +Mg +rR +rS +RG +EN +TQ +eF +RG +Yq +Lk +yr +AK +AK +AK +MD +MD +MD +MD +MD +MD +Mu +gE +lp +wl +MD +Zx +cf +Nl +jZ +yV +Kr +wQ +Te +hm +Lz +dD +dD +jZ +AK +ci +Vg +RI +gR +KH +CE +BS +ci +AK +AK +AK +AK +AK +AK +AK +qc +AK +AK +qc +qc +qc +qc +lY +lY +"} +(78,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +BX +Pl +MG +Fh +hO +gq +NY +BM +SA +Yu +BM +BM +yn +Yi +NF +QV +Nx +AX +Yy +CT +wG +Bs +MH +MH +Bs +MH +Bv +yr +AK +AK +AK +AK +MD +ik +rc +Sp +MD +JR +zy +ZW +IL +MD +Us +EA +jZ +jZ +yV +fg +LK +Zk +dD +jA +UW +Ia +jZ +AK +ci +jt +Lj +Fp +pr +Rf +va +ci +AK +AK +AK +AK +AK +AK +qc +qc +AK +AK +qc +qc +qc +qc +lY +lY +"} +(79,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +BX +wE +Fn +zE +Op +zt +Op +BX +BX +BX +BM +Im +ZJ +Yi +pK +IP +Nx +Nx +JA +ph +RG +Go +ZQ +RG +RG +MH +ds +yr +AK +AK +AK +AK +MD +rc +IV +Du +MD +Tb +WO +nP +PW +MD +FS +ed +wU +lu +hB +hs +MZ +hZ +Bh +ny +Jc +bX +jZ +AK +ci +CE +ef +aV +dm +mz +sP +ci +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(80,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +BX +Jh +Fn +yg +Op +Bm +tS +Tm +SL +Vl +BM +SA +Yu +Yi +bb +HG +uC +Nx +Nx +SO +Nx +RG +RG +RG +Fu +MH +UI +yr +AK +AK +mM +AK +MD +rc +eC +Ev +PC +oq +Kv +wj +So +nV +Lw +SY +jZ +TK +XS +fg +mo +Uk +UV +dD +UW +dD +jZ +AK +ci +QN +LD +UY +YG +FE +Cc +ci +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(81,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +BX +Qb +MG +MG +Op +Mh +Gh +xd +Le +BX +Yi +Yi +Yi +Yi +Yi +YO +Eb +st +VL +KR +Nx +Sf +TZ +fy +XC +MH +fR +yr +AK +AK +mM +AK +MD +Rn +kJ +oj +Du +dy +bP +yZ +YA +MD +at +zH +jZ +eE +Rg +fg +Lr +to +jZ +Ia +Ia +dD +jZ +AK +ci +ci +ci +lv +ZX +JE +lj +ci +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(82,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +BX +BX +BX +BX +BX +AK +AK +AK +BX +Op +Op +ct +RC +MX +GD +id +ng +BX +il +xG +ah +ud +Yi +HT +cJ +rY +rY +GH +Nx +Og +Og +fW +yr +yr +yr +yr +AK +mM +FN +AK +MD +Gw +hA +Du +oV +nD +aF +lp +Vz +MD +WM +ua +jZ +jZ +jZ +Hg +lu +Ud +jZ +dD +dD +jZ +jZ +AK +AK +AK +ci +ci +Uv +ci +NQ +ci +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(83,1,1) = {" +lY +lY +qc +qc +cq +qc +qc +qc +qc +qc +qc +zA +AR +su +KT +uY +BX +BX +AK +AK +BX +go +Op +Op +Op +GY +vu +kN +WZ +BX +qU +xG +Kp +Ls +Yi +Tx +nU +Ni +Ni +kk +Nx +Qq +EP +fW +AK +AK +AK +AK +AK +mM +Ik +AK +MD +rc +IV +Du +MD +XO +Vx +SM +aA +MD +mh +ae +mh +uU +jZ +jZ +jZ +jZ +jZ +jZ +jZ +jZ +jZ +mh +AK +AK +AK +AK +TU +ci +gl +ci +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(84,1,1) = {" +lY +lY +qc +qc +cq +qc +RQ +RQ +RQ +RQ +BX +BX +BX +IW +Wh +En +IT +BX +BX +BX +BX +cv +Iy +QH +cZ +ff +uD +Sw +GX +BX +NJ +xG +Pg +Kp +FY +xO +sF +GK +Nx +gj +Nx +fy +YR +fW +AK +AK +AK +AK +AK +mM +mM +AK +MD +Zn +rc +Zn +MD +JR +gb +Rw +jn +MD +cP +yK +yC +LW +vU +ra +ot +ZS +vp +gh +DQ +nn +oG +mh +AK +AK +AK +qc +qc +ci +sw +ci +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(85,1,1) = {" +lY +lY +qc +qc +cq +RQ +RQ +wL +xB +xB +Cf +DZ +Be +hp +dw +gT +EG +Iy +dP +dP +CM +Wr +TA +pM +Op +jx +nX +GW +bI +BX +Yi +Yi +Yi +Yi +Yi +QD +bY +RV +Nx +cb +ku +fy +fy +fW +AK +AK +AK +AK +AK +FN +mM +AK +MD +MD +MD +MD +MD +MD +MD +uP +MD +MD +tO +vE +Jd +aU +iZ +TB +DQ +DQ +DQ +KC +DQ +Nw +Pz +mh +AK +AK +qc +qc +qc +uw +vZ +RQ +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(86,1,1) = {" +lY +lY +qc +qc +RQ +qc +RQ +vZ +RQ +oD +BX +BX +BX +GE +GW +GW +os +BX +BX +BX +BX +BX +BX +BX +hT +Nr +JU +Wh +Iw +BX +fo +ty +CN +Vk +yT +ty +HG +Fe +Nx +xH +Wc +fy +bE +fW +fW +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +MD +fM +dL +wl +co +MD +mh +mD +uV +DQ +DQ +DQ +DQ +KC +KC +KC +DQ +qD +nT +mh +AK +AK +qc +qc +qc +RQ +vZ +RQ +RQ +RQ +fd +fd +fd +fd +fd +fd +fd +fd +qc +qc +qc +qc +lY +lY +"} +(87,1,1) = {" +lY +lY +qc +qc +cq +qc +RQ +vZ +RQ +qc +qc +qc +BX +sC +fv +aa +BX +BX +AK +AK +AK +AK +AK +BX +yb +Nr +JU +Wh +iB +BX +xx +Xy +ty +cJ +Cq +ty +HG +Ph +Nx +Wb +gI +fy +Og +EP +fW +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +MD +gz +wl +wl +WQ +MD +AK +mh +mh +KC +KC +DQ +KC +KC +KC +KC +ft +mh +mh +mh +AK +AK +qc +qc +qc +RQ +YM +xB +xB +xB +zk +zk +zk +zk +zk +zk +zk +zk +xB +HA +qc +qc +lY +lY +"} +(88,1,1) = {" +lY +lY +qc +qc +cq +qc +RQ +vZ +RQ +qc +qc +qc +BX +Hc +BX +BX +BX +AK +AK +AK +AK +AK +AK +BX +BX +pZ +HI +rK +Oa +BX +rn +cJ +Ap +Vk +Yi +tX +kt +cJ +Nx +Nx +Nx +fy +PP +fp +fW +AK +AK +AK +AK +Ik +mM +AK +AK +AK +AK +AK +MD +MD +MD +MD +MD +MD +AK +AK +mh +Um +rs +mh +Sr +DQ +oh +DQ +pB +mh +AK +AK +AK +AK +qc +qc +qc +vR +RQ +RQ +RQ +RQ +JW +JW +JW +JW +JW +JW +JW +JW +qc +qc +qc +qc +lY +lY +"} +(89,1,1) = {" +lY +lY +qc +qc +cq +RQ +nL +xj +NB +qc +qc +qc +qc +iX +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +BX +ov +HD +HD +JD +BX +fW +fW +fW +fW +fW +fy +TS +fy +fy +Ue +YF +EP +EP +fW +fW +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mh +mh +mh +mh +mh +Xa +mh +Xa +mh +mh +AK +AK +AK +AK +qc +qc +qc +qc +RQ +qc +qc +qc +RQ +qc +qc +qc +qc +qc +qc +RQ +qc +qc +qc +qc +lY +lY +"} +(90,1,1) = {" +lY +lY +qc +qc +RQ +qc +nL +xj +NB +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +BX +Fz +ns +Dt +lF +Mi +ky +Kq +tR +ky +Ps +Eu +vA +Dj +In +EP +EP +EP +fW +fW +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mh +hD +QF +mh +hD +QF +mh +AK +AK +qc +qc +qc +qc +cq +cq +cq +RQ +cq +cq +cq +RQ +cq +cq +cq +RQ +cq +cq +cq +qc +qc +qc +lY +lY +"} +(91,1,1) = {" +lY +lY +qc +qc +cq +qc +nL +xj +NB +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +BX +BX +BX +BX +BX +BX +fW +fW +QG +mx +iY +Mm +Pi +FV +fy +fy +Ss +EP +fW +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +mh +nq +Gz +mh +Uh +WF +mh +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(92,1,1) = {" +lY +lY +qc +qc +cq +qc +nL +xj +NB +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +fW +fW +fW +FI +bF +Fw +FV +Sc +fW +fW +fW +fW +AK +AK +AK +AK +AK +AK +AK +AK +mM +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +AK +mh +OV +Vr +mh +sH +cH +mh +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(93,1,1) = {" +lY +lY +qc +qc +cq +qc +nL +xj +NB +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +fW +ZB +PF +eY +QS +Ra +fW +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +AK +qc +qc +AK +AK +AK +mM +mM +mM +AK +mh +mh +mh +mh +mh +mh +mh +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(94,1,1) = {" +lY +lY +qc +qc +RQ +qc +nL +xj +NB +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +fW +fW +kF +jh +pF +fW +fW +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +qc +qc +qc +AK +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(95,1,1) = {" +lY +lY +qc +qc +cq +qc +nL +xj +NB +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +fW +fW +fW +fW +fW +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +mM +mM +mM +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(96,1,1) = {" +lY +lY +qc +qc +cq +RQ +nL +xj +NB +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +AK +AK +qc +qc +AK +AK +AK +mM +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +mM +mM +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(97,1,1) = {" +lY +lY +qc +qc +cq +qc +qc +vZ +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +AK +qc +qc +qc +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(98,1,1) = {" +lY +lY +qc +qc +qc +qc +qc +wg +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +AK +AK +AK +AK +AK +AK +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +qc +lY +lY +"} +(99,1,1) = {" +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +"} +(100,1,1) = {" +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +lY +"} diff --git a/code/__DEFINES/_helpers.dm b/code/__DEFINES/_helpers.dm new file mode 100644 index 00000000000..03e7fa7f777 --- /dev/null +++ b/code/__DEFINES/_helpers.dm @@ -0,0 +1,10 @@ +// Stuff that is relatively "core" and is used in other defines/helpers + +//Returns the hex value of a decimal number +//len == length of returned string +#define num2hex(X, len) num2text(X, len, 16) + +//Returns an integer given a hex input, supports negative values "-ff" +//skips preceding invalid characters +#define hex2num(X) text2num(X, 16) + diff --git a/code/__DEFINES/alerts.dm b/code/__DEFINES/alerts.dm index fc8d2830f35..9a7e40f7412 100644 --- a/code/__DEFINES/alerts.dm +++ b/code/__DEFINES/alerts.dm @@ -7,6 +7,8 @@ #define ALERT_BUCKLED "buckled" #define ALERT_HANDCUFFED "handcuffed" #define ALERT_LEGCUFFED "legcuffed" +#define ALERT_EMBEDDED "embedded" +#define ALERT_NUTRITION "nutrition" /** Silicon related */ #define ALERT_LOCKED "locked" diff --git a/code/__DEFINES/math.dm b/code/__DEFINES/math.dm index e273f72e9f8..1ee3e92d620 100644 --- a/code/__DEFINES/math.dm +++ b/code/__DEFINES/math.dm @@ -2,7 +2,7 @@ #define PI 3.1415 #define INFINITY 1e31 //closer than enough -#define SQRT_2 1.41421356237 +#define SQRT_2 1.4142135623730950488016887242097 #define SHORT_REAL_LIMIT 16777216 diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index f5e8a30b70c..6aff54abbb5 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -390,6 +390,3 @@ /// Possible value of [/atom/movable/buckle_lying]. If set to a different (positive-or-zero) value than this, the buckling thing will force a lying angle on the buckled. #define NO_BUCKLE_LYING -1 -// Return values for [/mob/living/proc/handle_ventcrawl()] -#define VENTCRAWL_IN_SUCCESS 1 -#define VENTCRAWL_OUT_SUCCESS 2 diff --git a/code/__DEFINES/overlays.dm b/code/__DEFINES/overlays.dm index d86a510180d..aa2cc455b0e 100644 --- a/code/__DEFINES/overlays.dm +++ b/code/__DEFINES/overlays.dm @@ -26,3 +26,11 @@ } \ } */ + + +// Layer offsets for closets +#define CLOSET_OLAY_OFFSET_CONTENTS 0.01 +#define CLOSET_OLAY_OFFSET_DOOR 0.02 +#define CLOSET_OLAY_OFFSET_LOCK 0.03 +#define CLOSET_OLAY_OFFSET_WELDED 0.04 + diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm index cce9818cd62..c09fa1dcc27 100644 --- a/code/__DEFINES/preferences.dm +++ b/code/__DEFINES/preferences.dm @@ -58,6 +58,7 @@ #define PREFTOGGLE_2_MC_TABS (1<<11) // 2048 #define PREFTOGGLE_2_DISABLE_TGUI_LISTS (1<<12) // 4096 #define PREFTOGGLE_2_PARALLAX_MULTIZ (1<<13) // 8192 +#define PREFTOGGLE_2_DISABLE_VOTE_POPUPS (1<<14) // 16384 #define TOGGLES_2_TOTAL 32767 // If you add or remove a preference toggle above, make sure you update this define with the total value of the toggles combined. diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index b9ed396d526..4327918ca71 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -15,7 +15,7 @@ #define CHANNEL_BOSS_MUSIC 1011 #define CHANNEL_INTERACTION_SOUNDS 1010 // item pickup/equip/drop sounds -#define USER_VOLUME(M, C) M?.client?.prefs.get_channel_volume(C) +#define USER_VOLUME(M, C) M?.client?.prefs?.get_channel_volume(C) //THIS SHOULD ALWAYS BE THE LOWEST ONE! //KEEP IT UPDATED diff --git a/code/__DEFINES/span.dm b/code/__DEFINES/span.dm index bc5730f3e8f..5ada6ee2317 100644 --- a/code/__DEFINES/span.dm +++ b/code/__DEFINES/span.dm @@ -88,7 +88,6 @@ //#define span_phobia(str) ("" + str + "") #define span_prefix(str) ("" + str + "") #define span_purple(str) ("" + str + "") -#define span_radio(str) ("" + str + "") #define span_reallybig(str) ("" + str + "") #define span_red(str) ("" + str + "") //#define span_redteamradio(str) ("" + str + "") diff --git a/code/__DEFINES/text.dm b/code/__DEFINES/text.dm new file mode 100644 index 00000000000..0fd4bbf96f4 --- /dev/null +++ b/code/__DEFINES/text.dm @@ -0,0 +1,13 @@ +/// Standard maptext +/// Prepares a text to be used for maptext. Use this so it doesn't look hideous. +#define MAPTEXT(text) {"[##text]"} + + +/// Macro from Lummox used to get height from a MeasureText proc. +/// resolves the MeasureText() return value once, then resolves the height, then sets return_var to that. +#define WXH_TO_HEIGHT(measurement, return_var) \ + do { \ + var/_measurement = measurement; \ + return_var = text2num(copytext(_measurement, findtextEx(_measurement, "x") + 1)); \ + } while(FALSE); + diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index c588dbd6087..210287e4f46 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -295,10 +295,11 @@ * * extra_checks - Additional checks to perform before the action is executed. * * interaction_key - The assoc key under which the do_after is capped, with max_interact_count being the cap. Interaction key will default to target if not set. * * max_interact_count - The maximum amount of interactions allowed. - * * cancel_message - Message shown to the user if they exceeds max interaction count. + * * cancel_message - Message shown to the user if they exceeds max interaction count. Use "" to remove it. * * Returns `TRUE` on success, `FALSE` on failure. */ + /proc/do_after(mob/user, delay, atom/target, timed_action_flags = DEFAULT_DOAFTER_IGNORE, progress = TRUE, datum/callback/extra_checks, interaction_key, max_interact_count = INFINITY, cancel_message = span_warning("Attempt cancelled.")) if(!user) return FALSE diff --git a/code/__HELPERS/type2type.dm b/code/__HELPERS/type2type.dm index d8df7909030..ebca3ad7d74 100644 --- a/code/__HELPERS/type2type.dm +++ b/code/__HELPERS/type2type.dm @@ -2,7 +2,6 @@ * Holds procs designed to change one type of value, into another. * Contains: * file2list - * hex2num & num2hex * file2list * angle2dir * angle2text @@ -16,57 +15,6 @@ return splittext(trim(file2text(filename)),seperator) return splittext(file2text(filename),seperator) -//Returns an integer given a hex input -/proc/hex2num(hex) - if(!(istext(hex))) - return - - var/num = 0 - var/power = 0 - var/i = null - i = length(hex) - while(i > 0) - var/char = copytext(hex, i, i + 1) - switch(char) - if("0") - //Apparently, switch works with empty statements, yay! If that doesn't work, blame me, though. -- Urist - if("9", "8", "7", "6", "5", "4", "3", "2", "1") - num += text2num(char) * 16 ** power - if("a", "A") - num += 16 ** power * 10 - if("b", "B") - num += 16 ** power * 11 - if("c", "C") - num += 16 ** power * 12 - if("d", "D") - num += 16 ** power * 13 - if("e", "E") - num += 16 ** power * 14 - if("f", "F") - num += 16 ** power * 15 - else - return - power++ - i-- - return num - -//Returns the hex value of a number given a value assumed to be a base-ten value -/proc/num2hex(num, placeholder) - if(!isnum(num)) return - if(placeholder == null) placeholder = 2 - - var/hex = "" - while(num) - var/val = num % 16 - num = round(num / 16) - - if(val > 9) - val = ascii2text(55 + val) // 65 - 70 correspond to "A" - "F" - hex = "[val][hex]" - while(length(hex) < placeholder) - hex = "0[hex]" - return hex || "0" - //Returns an integer value for R of R/G/B given a hex color input. /proc/color2R(hex) if(!(istext(hex))) diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index a55e4eae493..110f92f09cb 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -382,13 +382,29 @@ Turf and target are seperate in case you want to teleport some distance from a t if(GLOB.stealthminID[P] == txt) return P -// Returns the atom sitting on the turf. -// For example, using this on a disk, which is in a bag, on a mob, will return the mob because it's on the turf. -/proc/get_atom_on_turf(var/atom/movable/M) - var/atom/loc = M - while(loc && loc.loc && !istype(loc.loc, /turf/)) - loc = loc.loc - return loc + +/** + * Returns the top-most atom sitting on the turf. + * For example, using this on a disk, which is in a bag, on a mob, + * will return the mob because it's on the turf. + * + * Arguments + * * something_in_turf - a movable within the turf, somewhere. + * * stop_type - optional - stops looking if stop_type is found in the turf, returning that type (if found). + **/ +/proc/get_atom_on_turf(atom/movable/something_in_turf, stop_type) + if(!istype(something_in_turf)) + CRASH("get_atom_on_turf was not passed an /atom/movable! Got [isnull(something_in_turf) ? "null":"type: [something_in_turf.type]"]") + + var/atom/movable/topmost_thing = something_in_turf + + while(topmost_thing?.loc && !isturf(topmost_thing.loc)) + topmost_thing = topmost_thing.loc + if(stop_type && istype(topmost_thing, stop_type)) + break + + return topmost_thing + /* Returns 1 if the chain up to the area contains the given typepath @@ -1242,7 +1258,7 @@ Standard way to write links -Sayu colour = pick(list("FF0000","FF7F00","FFFF00","00FF00","0000FF","4B0082","8F00FF")) else for(var/i=1;i<=3;i++) - var/temp_col = "[num2hex(rand(lower,upper))]" + var/temp_col = "[num2hex(rand(lower, upper), 2)]" if(length(temp_col )<2) temp_col = "0[temp_col]" colour += temp_col diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm index 59ac1ccffd6..5643296979a 100644 --- a/code/_onclick/telekinesis.dm +++ b/code/_onclick/telekinesis.dm @@ -91,7 +91,7 @@ /obj/item/tk_grab/equipped(mob/user, slot, initial = FALSE) SHOULD_CALL_PARENT(FALSE) if(slot & ITEM_SLOT_HANDS) - return + return TRUE qdel(src) diff --git a/code/controllers/configuration/entries/config.dm b/code/controllers/configuration/entries/config.dm index 4f0c3146d42..db40f60b287 100644 --- a/code/controllers/configuration/entries/config.dm +++ b/code/controllers/configuration/entries/config.dm @@ -422,15 +422,47 @@ min_val = 0 -/datum/config_entry/keyed_list/antag_paradise_main_antags +/datum/config_entry/str_list/antag_paradise_random_antags_whitelist + lowercase = TRUE + default = list( + ROLE_TRAITOR, + ROLE_VAMPIRE, + ) + + +/datum/config_entry/keyed_list/antag_paradise_single_antags_weights + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + default = list( + ROLE_TRAITOR = 60, + ROLE_THIEF = 0, + ROLE_VAMPIRE = 20, + ROLE_CHANGELING = 0, + ) + + +/datum/config_entry/keyed_list/antag_paradise_double_antags_weights key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_NUM default = list( ROLE_TRAITOR = 60, + ROLE_THIEF = 0, ROLE_VAMPIRE = 20, ROLE_CHANGELING = 20, ) + +/datum/config_entry/keyed_list/antag_paradise_tripple_antags_weights + key_mode = KEY_MODE_TEXT + value_mode = VALUE_MODE_NUM + default = list( + ROLE_TRAITOR = 60, + ROLE_THIEF = 0, + ROLE_VAMPIRE = 20, + ROLE_CHANGELING = 20, + ) + + /datum/config_entry/keyed_list/antag_paradise_special_antags_weights key_mode = KEY_MODE_TEXT value_mode = VALUE_MODE_NUM @@ -636,6 +668,9 @@ /datum/config_entry/string/map_rotate default = "none" +/datum/config_entry/string/map_vote_mode + default = "all" + //Needs proper handling? /datum/config_entry/string/default_map default = null diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 833d1bebe8c..edede05d549 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -13,20 +13,15 @@ /// Approximate height in pixels of an 'average' line, used for height decay #define CHAT_MESSAGE_APPROX_LHEIGHT 11 /// Max width of chat message in pixels -#define CHAT_MESSAGE_WIDTH 96 +#define CHAT_MESSAGE_WIDTH 112 /// Max length of chat message in characters #define CHAT_MESSAGE_MAX_LENGTH 110 /// Maximum precision of float before rounding errors occur (in this context) #define CHAT_LAYER_Z_STEP 0.0001 /// The number of z-layer 'slices' usable by the chat message layering #define CHAT_LAYER_MAX_Z (CHAT_LAYER_MAX - CHAT_LAYER) / CHAT_LAYER_Z_STEP -/// Macro from Lummox used to get height from a MeasureText proc. -/// resolves the MeasureText() return value once, then resolves the height, then sets return_var to that. -#define WXH_TO_HEIGHT(measurement, return_var) \ - do { \ - var/_measurement = measurement; \ - return_var = text2num(copytext(_measurement, findtextEx(_measurement, "x") + 1)); \ - } while(FALSE); +/// The dimensions of the chat message icons +#define CHAT_MESSAGE_ICON_SIZE 9 /** @@ -38,9 +33,12 @@ /// The visual element of the chat messsage var/image/message /// The original source of this message - var/atom/movable/message_source - /// The list of locs chained from message_source to that with loc == turf - var/list/signal_targets = list() + var/atom/message_source + /// Current turf this message registered on + var/turf/message_turf + /// The list of locs chained from message_source to the turf level + /// We need to listen for possible Moved() on all of these locs and change message loc accordingly + var/list/signal_targets /// The client who heard this message var/client/owned_by /// Contains the approximate amount of lines for height decay @@ -54,38 +52,43 @@ /** - * Constructs a chat message overlay - * - * Arguments: - * * text - The text content of the overlay - * * source - The target atom to display the overlay at - * * owner - The mob that owns this overlay, only this mob will be able to view it - * * italics - Should we use italics or not - * * lifespan - The lifespan of the message in deciseconds - */ -/datum/chatmessage/New(text, atom/movable/source, mob/owner, radio_speech, italics, emote, lifespan = CHAT_MESSAGE_LIFESPAN) + * Constructs a chat message overlay + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ +/datum/chatmessage/New(text, atom/target, mob/owner, list/extra_classes, lifespan = CHAT_MESSAGE_LIFESPAN) . = ..() - if(!istype(source)) - CRASH("Invalid source given for chatmessage") + if(!isatom(target) || isarea(target)) + CRASH("Invalid target given for chatmessage") if(QDELETED(owner) || !istype(owner) || !owner.client) stack_trace("/datum/chatmessage created with [isnull(owner) ? "null" : "invalid"] mob owner") qdel(src) return - INVOKE_ASYNC(src, PROC_REF(generate_image), text, source, owner, radio_speech, lifespan, italics, emote) + INVOKE_ASYNC(src, PROC_REF(generate_image), text, target, owner, extra_classes, lifespan) /datum/chatmessage/Destroy() - if(REALTIMEOFDAY < (animate_start + animate_lifespan)) - stack_trace("Del'd before we finished fading, with [(animate_start + animate_lifespan) - REALTIMEOFDAY] time left") - for(var/target in signal_targets) - UnregisterSignal(target, COMSIG_MOVABLE_MOVED) - signal_targets = null - if(owned_by) + if(!QDELETED(owned_by)) + if(REALTIMEOFDAY < animate_start + animate_lifespan) + stack_trace("Del'd before we finished fading, with [(animate_start + animate_lifespan) - REALTIMEOFDAY] time left") + if(owned_by.seen_messages) - LAZYREMOVEASSOC(owned_by.seen_messages, message_source, src) + LAZYREMOVEASSOC(owned_by.seen_messages, message_turf, src) owned_by.images.Remove(message) + + if(signal_targets) + for(var/target in signal_targets) + UnregisterSignal(target, COMSIG_MOVABLE_MOVED) + UnregisterSignal(target, COMSIG_MOVABLE_Z_CHANGED) + signal_targets.Cut() owned_by = null message_source = null + message_turf = null message = null return ..() @@ -94,35 +97,33 @@ * Calls qdel on the chatmessage when its parent is deleted, used to register qdel signal */ /datum/chatmessage/proc/on_parent_qdel() - qdel(src) + SIGNAL_HANDLER + if(!QDELETED(src)) + qdel(src) /** - * Generates a chat message image representation - * - * Arguments: - * * text - The text content of the overlay - * * source - The source atom of spoken message - * * owner - The mob that owns this overlay, only this mob will be able to view it - * * radio_speech - Fancy shmancy radio icon represents that we use radio - * * lifespan - The lifespan of the message in deciseconds - * * italics - Just copy and paste, sir - */ -/datum/chatmessage/proc/generate_image(text, atom/movable/source, mob/owner, radio_speech, lifespan, italics, emote) - if(!owner && !owner.client) - qdel(src) - return - + * Generates a chat message image representation + * + * Arguments: + * * text - The text content of the overlay + * * target - The target atom to display the overlay at + * * owner - The mob that owns this overlay, only this mob will be able to view it + * * extra_classes - Extra classes to apply to the span that holds the text + * * lifespan - The lifespan of the message in deciseconds + */ +/datum/chatmessage/proc/generate_image(text, atom/target, mob/owner, list/extra_classes, lifespan) // Register client who owns this message owned_by = owner.client RegisterSignal(owned_by, COMSIG_PARENT_QDELETING, PROC_REF(on_parent_qdel)) + // Remove spans in the message from things like the recorder + var/static/regex/span_check = new(@"<\/?span[^>]*>", "gi") + text = replacetext(text, span_check, "") + // Clip message - var/maxlen = CHAT_MESSAGE_MAX_LENGTH - var/datum/html/split_holder/s = split_html(text) - if(length_char(s.inner_text) > maxlen) - var/chattext = copytext_char(s.inner_text, 1, maxlen + 1) + "..." - text = jointext(s.opening, "") + chattext + jointext(s.closing, "") + if(length_char(text) > CHAT_MESSAGE_MAX_LENGTH) + text = copytext_char(text, 1, CHAT_MESSAGE_MAX_LENGTH + 1) + "..." // BYOND index moment // Get rid of any URL schemes that might cause BYOND to automatically wrap something in an anchor tag var/static/regex/url_scheme = new(@"[A-Za-z][A-Za-z0-9+-\.]*:\/\/", "g") @@ -130,57 +131,90 @@ // Reject whitespace var/static/regex/whitespace = new(@"^\s*$") - if (whitespace.Find(text)) + if(whitespace.Find(text)) qdel(src) return + var/list/prefixes + var/chat_color_name_to_use + + /// Cached icons to show + var/static/list/chat_icons + // Append radio icon - if(radio_speech) - var/image/r_icon = image('icons/effects/chat_icons.dmi', icon_state = "radio") - text = "\icon[r_icon] " + text - // Append emote icon - if(emote) - var/image/e_icon = image('icons/effects/chat_icons.dmi', icon_state = "emote") - text = "\icon[e_icon] " + text + if(LAZYIN(extra_classes, "radio")) + var/icon/radio_icon = LAZYACCESS(chat_icons, "radio") + if(isnull(radio_icon)) + radio_icon = icon('icons/effects/chat_icons.dmi', "radio") + radio_icon.Scale(CHAT_MESSAGE_ICON_SIZE, CHAT_MESSAGE_ICON_SIZE) + LAZYSET(chat_icons, "radio", radio_icon) + LAZYADD(prefixes, "\icon[radio_icon]") - // We dim italicized text to make it more distinguishable from regular text - var/tgt_color = radio_speech ? source.chat_color_darkened : source.chat_color + // Append emote icon + var/emote_message = LAZYIN(extra_classes, "emote") + if(emote_message) + var/icon/emote_icon = LAZYACCESS(chat_icons, "emote") + if(isnull(emote_icon)) + emote_icon = icon('icons/effects/chat_icons.dmi', "emote") + emote_icon.Scale(CHAT_MESSAGE_ICON_SIZE, CHAT_MESSAGE_ICON_SIZE) + LAZYSET(chat_icons, "emote", emote_icon) + LAZYADD(prefixes, "\icon[emote_icon]") + // use face name for nonverbal messages + chat_color_name_to_use = target.get_visible_name(add_id_name = FALSE) + + if(isnull(chat_color_name_to_use)) + chat_color_name_to_use = target.GetVoice() + + // Calculate target color if not already present + if(!target.chat_color || target.chat_color_name != chat_color_name_to_use) + target.chat_color = colorize_string(chat_color_name_to_use) + target.chat_color_darkened = colorize_string(chat_color_name_to_use, 0.85, 0.85) + target.chat_color_name = chat_color_name_to_use + + text = "[prefixes?.Join(" ")][text]" + + // We dim italicized text and emotes to make them more distinguishable from regular text + var/tgt_color = emote_message || LAZYIN(extra_classes, "italics") ? target.chat_color_darkened : target.chat_color // Approximate text height - var/static/regex/html_metachars = new(@"&[A-Za-z]{1,7};", "g") - var/complete_text = "[text]" + var/complete_text = "[text]" + var/mheight WXH_TO_HEIGHT(owned_by.MeasureText(complete_text, null, CHAT_MESSAGE_WIDTH), mheight) if(!VERB_SHOULD_YIELD) - return finish_image_generation(mheight, source, owner, complete_text, lifespan) + return finish_image_generation(mheight, target, owner, complete_text, lifespan) - var/datum/callback/our_callback = CALLBACK(src, PROC_REF(finish_image_generation), mheight, source, owner, complete_text, lifespan) + var/datum/callback/our_callback = CALLBACK(src, PROC_REF(finish_image_generation), mheight, target, owner, complete_text, lifespan) SSrunechat.message_queue += our_callback - return ///finishes the image generation after the MeasureText() call in generate_image(). ///necessary because after that call the proc can resume at the end of the tick and cause overtime. -/datum/chatmessage/proc/finish_image_generation(mheight, atom/movable/source, mob/owner, complete_text, lifespan) +/datum/chatmessage/proc/finish_image_generation(mheight, atom/target, mob/owner, complete_text, lifespan) + message_source = target + message_turf = isturf(target) ? target : get_turf(target) + if(QDELETED(target) || !message_turf) + qdel(src) + return + var/rough_time = REALTIMEOFDAY approx_lines = max(1, mheight / CHAT_MESSAGE_APPROX_LHEIGHT) - var/starting_height = source.maptext_height + var/starting_height = target.maptext_height // Translate any existing messages upwards, apply exponential decay factors to timers if(owned_by.seen_messages) var/idx = 1 var/combined_height = approx_lines - //for(var/datum/chatmessage/m as anything in owned_by.seen_messages[message_source]) - for(var/datum/chatmessage/m as anything in owned_by.seen_messages[source]) + for(var/datum/chatmessage/m as anything in owned_by.seen_messages[message_turf]) combined_height += m.approx_lines var/time_spent = rough_time - m.animate_start - var/lifespan_until_fade = m.animate_lifespan - CHAT_MESSAGE_EOL_FADE + var/time_before_fade = m.animate_lifespan - CHAT_MESSAGE_EOL_FADE // When choosing to update the remaining time we have to be careful not to update the // scheduled time once the EOL has been executed. - if(time_spent >= lifespan_until_fade) + if(time_spent >= time_before_fade) if(m.message.pixel_y < starting_height) var/max_height = m.message.pixel_y + m.approx_lines * CHAT_MESSAGE_APPROX_LHEIGHT - starting_height if(max_height > 0) @@ -189,7 +223,7 @@ animate(m.message, pixel_y = m.message.pixel_y + mheight, time = CHAT_MESSAGE_SPAWN_TIME, flags = ANIMATION_PARALLEL) continue - var/remaining_time = lifespan_until_fade * (CHAT_MESSAGE_EXP_DECAY ** idx++) * (CHAT_MESSAGE_HEIGHT_DECAY ** combined_height) + var/remaining_time = time_before_fade * (CHAT_MESSAGE_EXP_DECAY ** idx++) * (CHAT_MESSAGE_HEIGHT_DECAY ** combined_height) // Ensure we don't accidentially spike alpha up or something silly like that m.message.alpha = m.get_current_alpha(time_spent) if(remaining_time > 0) @@ -217,24 +251,38 @@ // Build message image message = image(loc = null, layer = CHAT_LAYER + CHAT_LAYER_Z_STEP * current_z_idx++) - SET_PLANE_EXPLICIT(message, RUNECHAT_PLANE, source) - message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA | KEEP_APART + SET_PLANE_EXPLICIT(message, RUNECHAT_PLANE, message_turf) + message.appearance_flags = APPEARANCE_UI_IGNORE_ALPHA|KEEP_APART message.alpha = 0 message.pixel_y = starting_height - message.pixel_x = -source.base_pixel_x + message.pixel_x = -target.base_pixel_x message.maptext_width = CHAT_MESSAGE_WIDTH - message.maptext_height = mheight + message.maptext_height = mheight * 1.25 // We add extra because some characters are superscript, like actions message.maptext_x = (CHAT_MESSAGE_WIDTH - owner.bound_width) * -0.5 - message.maptext = complete_text + message.maptext = MAPTEXT(complete_text) animate_start = rough_time animate_lifespan = lifespan - message_source = source - adjust_message_loc(message_source) + if(ismovable(target)) + signal_targets = list() + // message loc for movables is always set to the top-most /atom/movable sitting on the turf + var/atom/movable/message_loc = target + while(message_loc.loc && !isturf(message_loc.loc)) + message_loc = message_loc.loc + signal_targets += message_loc + message.loc = message_loc + // we listen for Moved() on the target and every nested loc if the target is outside of the turf contents + RegisterSignal(target, COMSIG_MOVABLE_MOVED, PROC_REF(adjust_message_loc)) + for(var/listening_target in signal_targets) + RegisterSignal(listening_target, COMSIG_MOVABLE_MOVED, PROC_REF(adjust_message_loc)) + RegisterSignal(listening_target, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(adjust_message_z)) + else + // its always turf otherwise + message.loc = message_turf // View the message - LAZYADDASSOCLIST(owned_by.seen_messages, source, src) + LAZYADDASSOCLIST(owned_by.seen_messages, message_turf, src) owned_by.images |= message // Fade in @@ -249,23 +297,50 @@ /// Returns the current alpha of the message based on the time spent -/datum/chatmessage/proc/get_current_alpha(time_alive) - if(time_alive < CHAT_MESSAGE_SPAWN_TIME) - return (time_alive / CHAT_MESSAGE_SPAWN_TIME) * 255 +/datum/chatmessage/proc/get_current_alpha(time_spent) + if(time_spent < CHAT_MESSAGE_SPAWN_TIME) + return (time_spent / CHAT_MESSAGE_SPAWN_TIME) * 255 - var/lifespan_until_fade = animate_lifespan - CHAT_MESSAGE_EOL_FADE - if(time_alive <= lifespan_until_fade) + var/time_before_fade = animate_lifespan - CHAT_MESSAGE_EOL_FADE + if(time_spent <= time_before_fade) return 255 - return (1 - ((time_alive - lifespan_until_fade) / CHAT_MESSAGE_EOL_FADE)) * 255 + return (1 - ((time_spent - time_before_fade) / CHAT_MESSAGE_EOL_FADE)) * 255 + + +/datum/chatmessage/proc/adjust_message_z(datum/source, turf/old_turf, turf/new_turf, same_z_layer) + SIGNAL_HANDLER + // Replanes the message if the user of the message changed z + if(!same_z_layer) + SET_PLANE_EXPLICIT(message, RUNECHAT_PLANE, new_turf) -/datum/chatmessage/proc/adjust_message_loc(atom/movable/caller) +/datum/chatmessage/proc/adjust_message_loc(atom/movable/signal_movable, atom/old_loc, movement_dir, forced) SIGNAL_HANDLER + if(QDELETED(owned_by) || QDELETED(src) || QDELETED(message_source)) + return + + var/turf/new_turf = get_turf(message_source) + // nullspace? we are done + if(!new_turf) + qdel(src) + return + + // turf changed, re-register message to the new turf so they line up properly + if(message_turf != new_turf) + LAZYREMOVEASSOC(owned_by.seen_messages, message_turf, src) + LAZYADDASSOCLIST(owned_by.seen_messages, new_turf, src) + message_turf = new_turf + + // message_source moving from turf to another turf, skip next + if(signal_movable == message_source && isturf(old_loc) && isturf(message_source.loc)) + return + var/list/previous_signal_targets = signal_targets - var/list/next_signal_targets = list(message_source) + var/list/next_signal_targets = list() + // message loc for movables is always set to the top-most /atom/movable sitting on the turf var/atom/movable/message_loc = message_source while(message_loc.loc && !isturf(message_loc.loc)) message_loc = message_loc.loc @@ -276,56 +351,67 @@ UnregisterSignal(obsolete_target, COMSIG_MOVABLE_MOVED) UnregisterSignal(obsolete_target, COMSIG_MOVABLE_Z_CHANGED) + // we listen for Moved() on every nested loc if the target is outside of the turf contents for(var/new_target in next_signal_targets - previous_signal_targets) RegisterSignal(new_target, COMSIG_MOVABLE_MOVED, PROC_REF(adjust_message_loc)) RegisterSignal(new_target, COMSIG_MOVABLE_Z_CHANGED, PROC_REF(adjust_message_z)) signal_targets = next_signal_targets -/datum/chatmessage/proc/adjust_message_z(atom/movable/caller) - SIGNAL_HANDLER - // Replanes the message if the user of the message changed z - SET_PLANE_EXPLICIT(message, RUNECHAT_PLANE, message_source) +/** + * Creates a message overlay at a defined location for a given speaker + * + * Arguments: + * * speaker - The atom who is saying this message + * * raw_message - The text content of the message + * * spans - Additional classes to be added to the message + */ +/mob/proc/create_chat_message(atom/movable/speaker, raw_message, list/spans) + if(!SStimer.can_fire || !SSrunechat.can_fire) + return + + // Ensure the list we are using, if present, is a copy so we don't modify the list provided to us + spans = spans ? spans.Copy() : null + + // Display visual above source + new /datum/chatmessage(raw_message, speaker, src, spans) + /** - * Creates a message overlay at a defined location for a given speaker + * Proc to allow atoms to set their own runechat colour + * + * This is a proc designed to be overridden in places if you want a specific atom to use a specific runechat colour + * Exampls include consoles using a colour based on their screen colour, and mobs using a colour based off of a customisation property * - * Arguments: - * * speaker - The atom who is saying this message - * * raw_message - The text content of the message - * * italics - Vacuum and other things - * * radio_speech - Should we use radio speech icon */ -/mob/proc/create_chat_message(atom/movable/speaker, raw_message, radio_speech, italics = FALSE, emote = FALSE) - if(SStimer.can_fire && SSrunechat.can_fire) // Disable Runechat if SSTimer or SSRunechat stopped - // Display visual above source - new /datum/chatmessage(raw_message, speaker, src, radio_speech, italics, emote) +/atom/proc/get_runechat_color() + return chat_color // Tweak these defines to change the available color ranges -/* -#define CM_COLOR_SAT_MIN 0.6 -#define CM_COLOR_SAT_MAX 0.7 -#define CM_COLOR_LUM_MIN 0.65 -#define CM_COLOR_LUM_MAX 0.75 +#define CM_COLOR_SAT_MIN 0.6 +#define CM_COLOR_SAT_MAX 0.7 +#define CM_COLOR_LUM_MIN 0.65 +#define CM_COLOR_LUM_MAX 0.75 + /** - * Gets a color for a name, will return the same color for a given string consistently within a round.atom - * - * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. - * - * Arguments: - * * name - The name to generate a color for - * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation - * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence - */ + * Gets a color for a name, will return the same color for a given string consistently within a round.atom + * + * Note that this proc aims to produce pastel-ish colors using the HSL colorspace. These seem to be favorable for displaying on the map. + * + * Arguments: + * * name - The name to generate a color for + * * sat_shift - A value between 0 and 1 that will be multiplied against the saturation + * * lum_shift - A value between 0 and 1 that will be multiplied against the luminescence + */ /datum/chatmessage/proc/colorize_string(name, sat_shift = 1, lum_shift = 1) // seed to help randomness - var/static/rseed = rand(1,26) + var/static/rseed = rand(1, 26) // get hsl using the selected 6 characters of the md5 hash - var/hash = copytext(md5(name + station_name()), rseed, rseed + 6) + var/hash = copytext(md5(name + GLOB.round_id), rseed, rseed + 6) var/h = hex2num(copytext(hash, 1, 3)) * (360 / 255) var/s = (hex2num(copytext(hash, 3, 5)) >> 2) * ((CM_COLOR_SAT_MAX - CM_COLOR_SAT_MIN) / 63) + CM_COLOR_SAT_MIN var/l = (hex2num(copytext(hash, 5, 7)) >> 2) * ((CM_COLOR_LUM_MAX - CM_COLOR_LUM_MIN) / 63) + CM_COLOR_LUM_MIN @@ -357,28 +443,20 @@ return "#[num2hex(c, 2)][num2hex(m, 2)][num2hex(x, 2)]" -/** - * Ensures a colour is bright enough for the system - * - * This proc is used to brighten parts of a colour up if its too dark, and looks bad - * - * Arguments: - * * hex - Hex colour to be brightened up - */ -/datum/chatmessage/proc/sanitize_color(color) - var/list/HSL = rgb2hsl(hex2num(copytext(color,2,4)),hex2num(copytext(color,4,6)),hex2num(copytext(color,6,8))) - HSL[3] = max(HSL[3],0.4) - var/list/RGB = hsl2rgb(arglist(HSL)) - return "#[num2hex(RGB[1],2)][num2hex(RGB[2],2)][num2hex(RGB[3],2)]" - -*/ -/** - * Proc to allow atoms to set their own runechat colour - * - * This is a proc designed to be overridden in places if you want a specific atom to use a specific runechat colour - * Exampls include consoles using a colour based on their screen colour, and mobs using a colour based off of a customisation property - * - */ -/atom/proc/get_runechat_color() - return chat_color +#undef CHAT_MESSAGE_SPAWN_TIME +#undef CHAT_MESSAGE_LIFESPAN +#undef CHAT_MESSAGE_EOL_FADE +#undef CHAT_MESSAGE_GRACE_PERIOD +#undef CHAT_MESSAGE_EXP_DECAY +#undef CHAT_MESSAGE_HEIGHT_DECAY +#undef CHAT_MESSAGE_APPROX_LHEIGHT +#undef CHAT_MESSAGE_WIDTH +#undef CHAT_MESSAGE_MAX_LENGTH +#undef CHAT_LAYER_Z_STEP +#undef CHAT_LAYER_MAX_Z +#undef CHAT_MESSAGE_ICON_SIZE +#undef CM_COLOR_LUM_MAX +#undef CM_COLOR_LUM_MIN +#undef CM_COLOR_SAT_MAX +#undef CM_COLOR_SAT_MIN diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm index 17dbc3de8ef..a2f056e4fe5 100644 --- a/code/datums/components/wet_floor.dm +++ b/code/datums/components/wet_floor.dm @@ -126,7 +126,7 @@ var/turf/simulated/T = parent var/diff = world.time - last_process var/decrease = 0 - var/t = T.air.temperature + var/t = T.air ? T.air.temperature : T.temperature switch(t) if(-INFINITY to T0C) add_wet(TURF_WET_ICE, max_time_left()) //Water freezes into ice! diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index a3eff1ce7e3..ccb7c665b23 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -36,60 +36,60 @@ GLOBAL_LIST_EMPTY(PDA_Manifest) var/department = 0 var/depthead = 0 // Department Heads will be placed at the top of their lists. if(real_rank in GLOB.command_positions) - heads[++heads.len] = list("name" = name, "rank" = rank, "active" = isactive) + heads[++heads.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 depthead = 1 if(real_rank == JOB_TITLE_CAPTAIN && heads.len != 1) heads.Swap(1, heads.len) if((real_rank == JOB_TITLE_JUDGE) || (real_rank == JOB_TITLE_LAWYER) || (real_rank == JOB_TITLE_REPRESENTATIVE)) - pro[++pro.len] = list("name" = name, "rank" = rank, "active" = isactive) + pro[++pro.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if((real_rank == JOB_TITLE_JUDGE) && pro.len != 1) pro.Swap(1, pro.len) if(real_rank in GLOB.security_positions) - sec[++sec.len] = list("name" = name, "rank" = rank, "active" = isactive) + sec[++sec.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(depthead && sec.len != 1) sec.Swap(1, sec.len) if(real_rank in GLOB.engineering_positions) - eng[++eng.len] = list("name" = name, "rank" = rank, "active" = isactive) + eng[++eng.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(depthead && eng.len != 1) eng.Swap(1, eng.len) if(real_rank in GLOB.medical_positions) - med[++med.len] = list("name" = name, "rank" = rank, "active" = isactive) + med[++med.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(depthead && med.len != 1) med.Swap(1, med.len) if(real_rank in GLOB.science_positions) - sci[++sci.len] = list("name" = name, "rank" = rank, "active" = isactive) + sci[++sci.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(depthead && sci.len != 1) sci.Swap(1, sci.len) if(real_rank in GLOB.service_positions) - ser[++ser.len] = list("name" = name, "rank" = rank, "active" = isactive) + ser[++ser.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(depthead && ser.len != 1) ser.Swap(1, ser.len) if(real_rank in GLOB.supply_positions) - sup[++sup.len] = list("name" = name, "rank" = rank, "active" = isactive) + sup[++sup.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(depthead && sup.len != 1) sup.Swap(1, sup.len) if(real_rank in GLOB.nonhuman_positions) - bot[++bot.len] = list("name" = name, "rank" = rank, "active" = isactive) + bot[++bot.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) department = 1 if(!department && !(name in heads)) - misc[++misc.len] = list("name" = name, "rank" = rank, "active" = isactive) + misc[++misc.len] = list("name" = name, "rank" = rank, "real_rank" = real_rank, "active" = isactive) GLOB.PDA_Manifest = list(\ diff --git a/code/datums/emote/emote.dm b/code/datums/emote/emote.dm index 0138fb40527..b7837f228dd 100644 --- a/code/datums/emote/emote.dm +++ b/code/datums/emote/emote.dm @@ -298,8 +298,8 @@ for(var/mob/living/M in O.contents) M.show_message(text, EMOTE_VISIBLE) - if(O.client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) - O.create_chat_message(user, runechat_text, emote = TRUE) + if(O.stat == CONSCIOUS && O.client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) + O.create_chat_message(user, runechat_text, list("emote")) /** diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 508b87df10b..a30f14f92c2 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -1374,12 +1374,12 @@ GLOBAL_LIST_INIT(all_supply_groups, list(SUPPLY_EMERGENCY,SUPPLY_SECURITY,SUPPLY required_tech = list("biotech" = 6, "combat" = 2) /datum/supply_packs/medical/cloning - name = "NanoTrasen Special Delivery Crate" + name = "NanoTrasen Experimental Cloning Machine Crate" contains = list(/obj/item/circuitboard/clonepod, /obj/item/circuitboard/cloning) - cost = 900 + cost = 350 containertype = /obj/structure/closet/crate/secure - containername = "NanoTrasen special delivery crate" + containername = "NanoTrasen experimental cloning machine crate" access = ACCESS_CMO announce_beacons = list("Medbay" = list("Chief Medical Officer's Desk")) diff --git a/code/defines/procs/records.dm b/code/defines/procs/records.dm index 3fb7b3a9206..4f5e124c205 100644 --- a/code/defines/procs/records.dm +++ b/code/defines/procs/records.dm @@ -5,7 +5,7 @@ var/icon/side = new(get_id_photo(dummy), dir = WEST) var/datum/data/record/G = new /datum/data/record() G.fields["name"] = "New Record" - G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7)), 6)) + G.fields["id"] = text("[]", add_zero(num2hex(rand(1, 1.6777215E7), 2), 6)) G.fields["rank"] = "Unassigned" G.fields["real_rank"] = "Unassigned" G.fields["sex"] = "Male" diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 580d7e9e68c..26e205e5e5d 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -106,9 +106,10 @@ map_name = name // Save the initial (the name set in the map) name of the area. if(use_starlight && CONFIG_GET(flag/starlight)) - static_lighting = FALSE - base_lighting_alpha = 255 - base_lighting_color = COLOR_WHITE + // Areas lit by starlight are not supposed to be fullbright 4head + base_lighting_alpha = 0 + base_lighting_color = null + static_lighting = TRUE if(requires_power) diff --git a/code/game/area/areas/syndicate_base.dm b/code/game/area/areas/syndicate_base.dm index 4fa571ffdd5..2f910c3ee2d 100644 --- a/code/game/area/areas/syndicate_base.dm +++ b/code/game/area/areas/syndicate_base.dm @@ -174,7 +174,6 @@ name = "Syndicate Space Turrets" sound_environment = SOUND_AREA_SPACE icon_state = "taipan_turrets" - use_starlight = TRUE /area/syndicate/unpowered/syndicate_space_base/vault name = "Syndicate Space Vault" diff --git a/code/game/area/ss13_areas.dm b/code/game/area/ss13_areas.dm index 15d6c2011a5..950a5caed9b 100644 --- a/code/game/area/ss13_areas.dm +++ b/code/game/area/ss13_areas.dm @@ -42,7 +42,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "space" requires_power = TRUE always_unpowered = TRUE - use_starlight = TRUE + static_lighting = FALSE + base_lighting_color = COLOR_WHITE + base_lighting_alpha = 255 power_light = FALSE power_equip = FALSE power_environ = FALSE @@ -54,6 +56,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /area/space/nearstation icon_state = "space_near" + use_starlight = TRUE /area/space/planetary icon_state = "space_planet" @@ -400,6 +403,10 @@ NOTE: there are two lists of areas in the end of this file: centcom and station icon_state = "purple" xenobiology_compatible = TRUE +/area/shuttle/pirate_corvette + name = "\improper Pirate Corvette" + icon_state = "shuttle" + /area/airtunnel1/ // referenced in airtunnel.dm:759 /area/dummy/ // Referenced in engine.dm:261 @@ -1610,7 +1617,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station valid_territory = FALSE ambientsounds = ENGINEERING_SOUNDS sound_environment = SOUND_AREA_SPACE - use_starlight = TRUE + static_lighting = FALSE + base_lighting_color = COLOR_WHITE + base_lighting_alpha = 255 /area/solar/auxport name = "\improper North-West Solar Array" @@ -2975,3 +2984,100 @@ GLOBAL_LIST_INIT(centcom_areas, list( /area/ruin/USSP_SpaceBanya name = "Space_abandoned_banya" icon_state = "barstation" + +//pirate base +/area/ruin/space/pirate_base + name = "pirates base " + icon_state = "unknown" + +/area/ruin/space/pirate_base/arrivals + name = "Unknown Arrivals" + icon_state = "awaycontent1" + +/area/ruin/space/pirate_base/atrium + name = "Prison Atrium" + icon_state = "awaycontent2" + +/area/ruin/space/pirate_base/kitchen + name = "Prison Kitchen" + icon_state = "awaycontent3" + +/area/ruin/space/pirate_base/mining + name = "Prison Mining" + icon_state = "awaycontent4" + +/area/ruin/space/pirate_base/prison_maint + name = "Prison Maintenance" + icon_state = "awaycontent5" + +/area/ruin/space/pirate_base/entertainment + name = "Prison Entertainment" + icon_state = "awaycontent6" + +/area/ruin/space/pirate_base/security_atrium + name = "Security Atrium" + icon_state = "awaycontent7" + +/area/ruin/space/pirate_base/security_maint + name = "Technical Security zone" + icon_state = "awaycontent8" + +/area/ruin/space/pirate_base/security_medical + name = "Medical and Storage" + icon_state = "awaycontent9" + +/area/ruin/space/pirate_base/observ + name = "Observation Point" + icon_state = "awaycontent10" + +/area/ruin/space/pirate_base/lab_sec + name = "Laboratory Security" + icon_state = "awaycontent11" + +/area/ruin/space/pirate_base/lab_hall + name = "Laboratory Hallway" + icon_state = "awaycontent12" + +/area/ruin/space/pirate_base/laboratory + name = "Laboratory" + icon_state = "awaycontent13" + +/area/ruin/space/pirate_base/lab_medical + name = "Medical Bay" + icon_state = "awaycontent14" + +/area/ruin/space/pirate_base/lab_maint + name = "Laboratory Maintenance" + icon_state = "awaycontent15" + +/area/ruin/space/pirate_base/atmos + name = "Prison Atmos" + icon_state = "awaycontent16" + +/area/ruin/space/pirate_base/xeno_lab + name = "Xeno Lab" + icon_state = "awaycontent17" + +/area/ruin/space/pirate_base/virus_lab + name = "Virus TestLab" + icon_state = "awaycontent18" + +/area/ruin/space/pirate_base/virology + name = "LP7 Virology" + icon_state = "awaycontent19" + +/area/ruin/space/pirate_base/prison_solar + name = "Prison Solar" + icon_state = "awaycontent20" + +/area/ruin/space/pirate_base/lab_solar + name = "Labor Solar" + icon_state = "awaycontent21" + +/area/ruin/space/pirate_base/telecomms + name = "Telecomms" + icon_state = "awaycontent22" + +/area/ruin/space/pirate_base/black_market + name = "Black Market" + icon_state = "awaycontent23" diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 1e2a419df8f..4ac1b335b4f 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -1171,7 +1171,7 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) continue if(M.client.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) - M.create_chat_message(src, message, FALSE, TRUE) + M.create_chat_message(src, message, list("italics")) var/effect = SOUND_EFFECT_RADIO var/traits = TTS_TRAIT_RATE_MEDIUM @@ -1589,3 +1589,15 @@ GLOBAL_LIST_EMPTY(blood_splatter_icons) pixel_y = pixel_y + base_pixel_y - . + +/atom/proc/get_visible_name(add_id_name = TRUE) + return name + + +/atom/proc/GetVoice() + return name + + +/atom/proc/GetTTSVoice() + return tts_seed + diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index a76762a1353..b2b4edb07d8 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -170,20 +170,24 @@ if(NAMEOF(src, x)) var/turf/T = locate(var_value, y, z) if(T) + admin_teleport(T) return TRUE return FALSE if(NAMEOF(src, y)) var/turf/T = locate(x, var_value, z) if(T) + admin_teleport(T) return TRUE return FALSE if(NAMEOF(src, z)) var/turf/T = locate(x, y, var_value) if(T) + admin_teleport(T) return TRUE return FALSE if(NAMEOF(src, loc)) if(isatom(var_value) || isnull(var_value)) + admin_teleport(var_value) return TRUE return FALSE if(NAMEOF(src, anchored)) @@ -197,6 +201,17 @@ return ..() +/// Proc to hook user-enacted teleporting behavior and keep logging of the event. +/atom/movable/proc/admin_teleport(atom/new_location) + if(isnull(new_location)) + log_admin("[key_name(usr)] teleported [key_name(src)] to nullspace") + move_to_null_space() + else + var/turf/location = get_turf(new_location) + log_admin("[key_name(usr)] teleported [key_name(src)] to [AREACOORD(location)]") + forceMove(new_location) + + //Returns an atom's power cell, if it has one. Overload for individual items. /atom/movable/proc/get_cell() return @@ -525,7 +540,6 @@ for(var/atom/movable/movable in (destination.contents - src)) movable.Crossed(src, oldloc) - . = TRUE //If no destination, move the atom into nullspace (don't do this unless you know what you're doing) diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 898e9806028..ff7db6f7342 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -261,7 +261,7 @@ /mob/living/carbon/human/proc/sec_hud_set_security_status() var/image/holder = hud_list[WANTED_HUD] - var/perpname = get_visible_name(TRUE) //gets the name of the perp, works if they have an id or if their face is uncovered + var/perpname = get_visible_name(add_id_name = FALSE) //gets the name of the perp, works if they have an id or if their face is uncovered if(!SSticker) return //wait till the game starts or the monkeys runtime.... if(perpname) var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security) @@ -528,7 +528,7 @@ /// Helper function to add a "comment" to a data record. Used for medical or security records. /mob/living/carbon/human/proc/add_comment(mob/commenter, comment_kind, comment_text) - var/perpname = get_visible_name(TRUE) //gets the name of the perp, works if they have an id or if their face is uncovered + var/perpname = get_visible_name(add_id_name = FALSE) //gets the name of the perp, works if they have an id or if their face is uncovered if(!perpname) return var/datum/data/record/R diff --git a/code/game/dna/dna2.dm b/code/game/dna/dna2.dm index 834d4ef5e09..1af7df3b47b 100644 --- a/code/game/dna/dna2.dm +++ b/code/game/dna/dna2.dm @@ -270,11 +270,14 @@ GLOBAL_LIST_EMPTY(bad_blocks) /////////////////////////////////////// // "Zeroes out" all of the blocks. -/datum/dna/proc/ResetSE() +/datum/dna/proc/ResetSE(monkeybasic = FALSE) for(var/i = 1, i <= DNA_SE_LENGTH, i++) + if(i == DNA_SE_LENGTH && monkeybasic) + continue SetSEValue(i, rand(1, 1024), 1) UpdateSE() + // Set a DNA SE block's raw value. /datum/dna/proc/SetSEValue(block, value, defer = FALSE) @@ -406,12 +409,12 @@ GLOBAL_LIST_EMPTY(bad_blocks) // Initial DNA setup. I'm kind of wondering why the hell this doesn't just call the above. // ready_dna is (hopefully) only used on mob creation, and sets the struc_enzymes_original and SE_original only once - Bone White -/datum/dna/proc/ready_dna(mob/living/carbon/human/character, flatten_SE = 1) +/datum/dna/proc/ready_dna(mob/living/carbon/human/character, flatten_SE = TRUE, monkeybasic = FALSE) ResetUIFrom(character) if(flatten_SE) - ResetSE() + ResetSE(monkeybasic) struc_enzymes_original = struc_enzymes // sets the original struc_enzymes when ready_dna is called SE_original = SE.Copy() diff --git a/code/game/dna/dna2_domutcheck.dm b/code/game/dna/dna2_domutcheck.dm index 6c955993863..535f05c3d7d 100644 --- a/code/game/dna/dna2_domutcheck.dm +++ b/code/game/dna/dna2_domutcheck.dm @@ -42,6 +42,9 @@ * Returns TRUE if any changes were made, FALSE otherwise */ /mob/living/carbon/human/proc/update_gene_status(datum/dna/gene/gene, flags = NONE) + if(!gene.block) + return FALSE + // If human mob has no DNA its better runtime to tell us, // since its involves some hacky code elsewhere if(!dna) @@ -93,8 +96,10 @@ * Arguments: * * block - block to manipulate with. * * activate - `TRUE` for activate, `FALSE` for deactivate. - * * update_default_status - whether to add/removes this block in/from `gene default_genes` variable. + * * update_default_status - whether to add/remove this block in/from `gene default_genes` variable. * * ignore_species_default - if `TRUE` gene will be always removed, even if it belongs to `species default_genes` variable. + * + * Returns `TRUE` if a gene was changed, `FALSE` otherwise. */ /mob/proc/force_gene_block(block, activate = FALSE, update_default_status = FALSE, ignore_species_default = FALSE) return @@ -104,9 +109,9 @@ var/force_flags = MUTCHK_FORCED if(ignore_species_default) force_flags |= MUTCHK_IGNORE_DEFAULT - dna.SetSEState(block, activate, TRUE) - check_gene_block(block, force_flags) - if(update_default_status) + dna.SetSEState(block, activate) + . = check_gene_block(block, force_flags) + if(. && update_default_status) if(activate) LAZYOR(dna.default_blocks, block) else diff --git a/code/game/dna/genes/gene.dm b/code/game/dna/genes/gene.dm index b70e7cd5351..13df0002527 100644 --- a/code/game/dna/genes/gene.dm +++ b/code/game/dna/genes/gene.dm @@ -27,6 +27,13 @@ var/instability = 0 +/datum/dna/gene/Destroy(force) + if(force) + return ..() + // put your hands off the gene GC! + return QDEL_HINT_LETMELIVE + + /* * Is the gene active in this mob's DNA? */ @@ -49,8 +56,7 @@ SHOULD_CALL_PARENT(TRUE) LAZYOR(mutant.active_genes, type) mutant.gene_stability -= instability - if(OnDrawUnderlays()) - mutant.update_mutations() + mutant.update_mutations() /** @@ -61,8 +67,7 @@ SHOULD_CALL_PARENT(TRUE) LAZYREMOVE(mutant.active_genes, type) mutant.gene_stability += instability - if(OnDrawUnderlays()) - mutant.update_mutations() + mutant.update_mutations() // This section inspired by goone's bioEffects. diff --git a/code/game/dna/genes/monkey.dm b/code/game/dna/genes/monkey.dm index 0dd812c623d..454f21dd67b 100644 --- a/code/game/dna/genes/monkey.dm +++ b/code/game/dna/genes/monkey.dm @@ -7,11 +7,11 @@ /datum/dna/gene/monkey/can_activate(mob/living/mutant, flags) - return ishuman(mutant) && !ismonkeybasic(mutant) + return ishuman(mutant) && !ismonkeybasic(mutant) && !HAS_TRAIT(mutant, TRAIT_NO_TRANSFORM) /datum/dna/gene/monkey/can_deactivate(mob/living/mutant, flags) - return ishuman(mutant) && ismonkeybasic(mutant) + return ishuman(mutant) && ismonkeybasic(mutant) && !HAS_TRAIT(mutant, TRAIT_NO_TRANSFORM) /datum/dna/gene/monkey/activate(mob/living/carbon/human/mutant, flags) diff --git a/code/game/gamemodes/antag_paradise/antag_paradise.dm b/code/game/gamemodes/antag_paradise/antag_paradise.dm index cd94a807fbd..1d2c015694b 100644 --- a/code/game/gamemodes/antag_paradise/antag_paradise.dm +++ b/code/game/gamemodes/antag_paradise/antag_paradise.dm @@ -233,30 +233,51 @@ antags_weights = list() - var/list/antag_weight_config = CONFIG_GET(keyed_list/antag_paradise_main_antags) - antag_weight_config = antag_weight_config.Copy() - - for(var/antag in antag_weight_config) - if(players < antag_required_players[antag]) - antag_weight_config -= antag - - if(!length(antag_weight_config)) - return - var/mode_type = pick_weight_classic(CONFIG_GET(keyed_list/antag_paradise_mode_subtypes)) if(mode_type == ANTAG_RANDOM) - for(var/antag in antag_weight_config) + var/list/random_mode_whitelist = CONFIG_GET(str_list/antag_paradise_random_antags_whitelist) + for(var/antag in list(ROLE_TRAITOR, ROLE_VAMPIRE, ROLE_CHANGELING, ROLE_THIEF)) + if(!(antag in random_mode_whitelist)) + continue antags_weights[antag] = rand(1, 100) return + var/list/single_weights_config = CONFIG_GET(keyed_list/antag_paradise_single_antags_weights) + single_weights_config = single_weights_config.Copy() + for(var/antag in single_weights_config) + if(players < antag_required_players[antag] || single_weights_config[antag] <= 0) + single_weights_config -= antag + if(!length(single_weights_config)) + return var/list/subtype_weights = CONFIG_GET(keyed_list/antag_paradise_subtype_weights) - antags_weights[pick_weight_n_take(antag_weight_config)] = subtype_weights[ANTAG_SINGLE] - if(!length(antag_weight_config) || mode_type == ANTAG_SINGLE) + var/list/choosen_antags = list() + var/single_antag = pick_weight_classic(single_weights_config) + choosen_antags += single_antag + antags_weights[single_antag] = subtype_weights[ANTAG_SINGLE] + if(mode_type == ANTAG_SINGLE) return - antags_weights[pick_weight_n_take(antag_weight_config)] = subtype_weights[ANTAG_DOUBLE] - if(!length(antag_weight_config) || mode_type == ANTAG_DOUBLE) + + var/list/double_weights_config = CONFIG_GET(keyed_list/antag_paradise_double_antags_weights) + double_weights_config = double_weights_config.Copy() - choosen_antags + for(var/antag in double_weights_config) + if(players < antag_required_players[antag] || double_weights_config[antag] <= 0) + double_weights_config -= antag + if(!length(double_weights_config)) + return + var/double_antag = pick_weight_classic(double_weights_config) + choosen_antags += double_antag + antags_weights[double_antag] = subtype_weights[ANTAG_DOUBLE] + if(mode_type == ANTAG_DOUBLE) return - antags_weights[pick_weight_n_take(antag_weight_config)] = subtype_weights[ANTAG_TRIPPLE] + + var/list/tripple_weights_config = CONFIG_GET(keyed_list/antag_paradise_tripple_antags_weights) + tripple_weights_config = tripple_weights_config.Copy() - choosen_antags + for(var/antag in tripple_weights_config) + if(players < antag_required_players[antag] || tripple_weights_config[antag] <= 0) + tripple_weights_config -= antag + if(!length(tripple_weights_config)) + return + antags_weights[pick_weight_classic(tripple_weights_config)] = subtype_weights[ANTAG_TRIPPLE] /datum/game_mode/antag_paradise/post_setup() @@ -295,7 +316,7 @@ antag.add_antag_datum(/datum/antagonist/thief) for(var/datum/mind/antag as anything in pre_double_antags) - switch(pre_antags[antag]) + switch(pre_double_antags[antag]) if(ROLE_VAMPIRE) antag.add_antag_datum(/datum/antagonist/vampire) if(ROLE_CHANGELING) diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index 73f0605413a..9f1484930f8 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -147,9 +147,9 @@ stat("Resources:",resources) -/mob/living/simple_animal/hostile/swarmer/handle_ventcrawl(obj/machinery/atmospherics/ventcrawl_target) +/mob/living/simple_animal/hostile/swarmer/move_into_vent(obj/machinery/atmospherics/ventcrawl_target, message = TRUE) . = ..() - if(. == VENTCRAWL_IN_SUCCESS && light_on) + if(. && light_on) ToggleLight() diff --git a/code/game/gamemodes/shadowling/shadowling_abilities.dm b/code/game/gamemodes/shadowling/shadowling_abilities.dm index 1580d3eb6cf..f74fa3fe003 100644 --- a/code/game/gamemodes/shadowling/shadowling_abilities.dm +++ b/code/game/gamemodes/shadowling/shadowling_abilities.dm @@ -897,6 +897,7 @@ desc = "Empower your faithful thrall or revives" base_cooldown = 0 ignore_prer = TRUE + human_req = FALSE /obj/effect/proc_holder/spell/ascendant_hypnosis name = "Hypnosis" diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 096b390a8dd..fc614eb3aae 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -62,7 +62,6 @@ /obj/machinery/camera/Destroy() SStgui.close_uis(wires) - toggle_cam(null, FALSE) //kick anyone viewing out QDEL_NULL(assembly) QDEL_NULL(wires) GLOB.cameranet.removeCamera(src) //Will handle removal from the camera network and the chunks, so we don't need to worry about that diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm index d6bea70e324..e86385e4aa9 100644 --- a/code/game/machinery/camera/tracking.dm +++ b/code/game/machinery/camera/tracking.dm @@ -175,7 +175,7 @@ U.cameraFollow = target U.tracking = 1 - to_chat(U, span_notice("Attempting to track [target.get_visible_name()]...")) + to_chat(U, span_notice("Attempting to track [target.get_visible_name(add_id_name = FALSE)]...")) sleep(min(30, get_dist(target, U.eyeobj) / 4)) spawn(15) //give the AI a grace period to stop moving. U.tracking = 0 @@ -185,7 +185,7 @@ U.cameraFollow = null return - to_chat(U, span_notice("Now tracking [target.get_visible_name()] on camera.")) + to_chat(U, span_notice("Now tracking [target.get_visible_name(add_id_name = FALSE)] on camera.")) var/cameraticks = 0 spawn(0) diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index deb01b99bbf..181462c3555 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -196,7 +196,7 @@ return var/datum/data/record/G = new /datum/data/record() G.fields["name"] = "New Record" - G.fields["id"] = "[add_zero(num2hex(rand(1, 1.6777215E7)), 6)]" + G.fields["id"] = "[add_zero(num2hex(rand(1, 1.6777215E7), 2), 6)]" G.fields["rank"] = "Unassigned" G.fields["real_rank"] = "Unassigned" G.fields["sex"] = "Male" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3fecbb47de9..1ebe6b263a6 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -552,7 +552,7 @@ About the new airlock wires panel: if("closing") update_icon(AIRLOCK_CLOSING) if("deny") - if(!stat) + if(arePowerSystemsOn()) update_icon(AIRLOCK_DENY) playsound(src,doorDeni,50,0,3) sleep(6) diff --git a/code/game/machinery/doors/airlock_control.dm b/code/game/machinery/doors/airlock_control.dm index 409f107a9bc..21133f8ad45 100644 --- a/code/game/machinery/doors/airlock_control.dm +++ b/code/game/machinery/doors/airlock_control.dm @@ -148,6 +148,7 @@ anchored = TRUE resistance_flags = FIRE_PROOF power_channel = ENVIRON + layer = BELOW_OBJ_LAYER + 0.01 var/id_tag var/master_tag @@ -229,6 +230,7 @@ name = "access button" anchored = TRUE power_channel = ENVIRON + layer = BELOW_OBJ_LAYER + 0.01 var/master_tag frequency = AIRLOCK_FREQ diff --git a/code/game/machinery/embedded_controller/embedded_controller_base.dm b/code/game/machinery/embedded_controller/embedded_controller_base.dm index 3226d7e5b87..b86ce1e8417 100644 --- a/code/game/machinery/embedded_controller/embedded_controller_base.dm +++ b/code/game/machinery/embedded_controller/embedded_controller_base.dm @@ -7,6 +7,8 @@ use_power = IDLE_POWER_USE idle_power_usage = 10 + layer = BELOW_OBJ_LAYER + 0.01 + var/on = 1 /obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line) diff --git a/code/game/machinery/iv_drip.dm b/code/game/machinery/iv_drip.dm index f466b97cc43..bc4a9eba91d 100644 --- a/code/game/machinery/iv_drip.dm +++ b/code/game/machinery/iv_drip.dm @@ -34,7 +34,7 @@ if(!bag) to_chat(usr, span_warning("There's no IV bag connected to [src]!")) return FALSE - bag.afterattack(over_object, usr, TRUE) + bag.attack(over_object, usr) START_PROCESSING(SSmachines, src) diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index e4e88ab5af3..92167d5deca 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -535,7 +535,7 @@ Class Procs: threatcount += 4 if(check_records || check_arrest) - var/perpname = perp.get_visible_name(TRUE) + var/perpname = perp.get_visible_name(add_id_name = FALSE) var/datum/data/record/R = find_security_record("name", perpname) if(check_records && !R) diff --git a/code/game/machinery/tcomms/core.dm b/code/game/machinery/tcomms/core.dm index 01e5babdc64..311006fba4d 100644 --- a/code/game/machinery/tcomms/core.dm +++ b/code/game/machinery/tcomms/core.dm @@ -125,6 +125,8 @@ * */ /obj/machinery/tcomms/core/proc/refresh_zlevels() + if(QDELING(src)) + return // Refresh the list reachable_zlevels = list() // Add itself as a reachable Z-level diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index c9f9bd5995b..749bdb28a59 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1773,7 +1773,8 @@ /obj/item/clothing/under/bluehawaiianshirt = 1, /obj/item/clothing/under/orangehawaiianshirt = 1, /obj/item/clothing/under/ussptracksuit_red = 4, - /obj/item/clothing/under/ussptracksuit_blue = 4) + /obj/item/clothing/under/ussptracksuit_blue = 4, + /obj/item/clothing/under/dress50s = 3) contraband = list(/obj/item/clothing/suit/judgerobe = 1, /obj/item/clothing/head/powdered_wig = 1, /obj/item/gun/magic/wand = 1, @@ -1791,7 +1792,9 @@ /obj/item/clothing/under/cuban_suit = 1, /obj/item/clothing/head/cuban_hat = 1, /obj/item/clothing/under/ussptracksuit_black = 1, - /obj/item/clothing/under/ussptracksuit_white = 1) + /obj/item/clothing/under/ussptracksuit_white = 1, + /obj/item/clothing/under/steampunkdress = 1, + /obj/item/clothing/suit/hooded/hijab = 1) refill_canister = /obj/item/vending_refill/autodrobe /obj/machinery/vending/dinnerware @@ -2130,6 +2133,8 @@ /obj/item/clothing/under/overalls = 1, /obj/item/clothing/under/suit_jacket/really_black = 2, /obj/item/clothing/suit/storage/lawyer/blackjacket = 2, + /obj/item/clothing/under/pants/galifepants = 3, + /obj/item/clothing/under/pants/sandpants = 3, /obj/item/clothing/under/pants/jeans = 3, /obj/item/clothing/under/pants/classicjeans = 2, /obj/item/clothing/under/pants/camo = 1, @@ -2187,6 +2192,8 @@ /obj/item/clothing/shoes/laceup = 2, /obj/item/clothing/shoes/black = 4, /obj/item/clothing/shoes/sandal = 1, + /obj/item/clothing/shoes/leather_boots = 3, + /obj/item/clothing/gloves/brown_short_gloves = 3, /obj/item/clothing/gloves/fingerless = 2, /obj/item/storage/belt/fannypack = 1, /obj/item/storage/belt/fannypack/blue = 1, diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 6a615a761be..836eeb0e78f 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1275,8 +1275,7 @@ GLOBAL_DATUM_INIT(fire_overlay, /mutable_appearance, mutable_appearance('icons/g return -/// Conditional proc that allows ventcrawling with this item, if it has TRAIT_VENTCRAWLER_ITEM_BASED trait. -/// Always allows by default. +/// Conditional proc that allows ventcrawling with an item, if it has trait TRAIT_VENTCRAWLER_ITEM_BASED. /obj/item/proc/used_for_ventcrawling(mob/living/user, provide_feedback = TRUE) - return TRUE + return FALSE diff --git a/code/game/objects/items/devices/megaphone.dm b/code/game/objects/items/devices/megaphone.dm index eaac326f5f9..91095eb3601 100644 --- a/code/game/objects/items/devices/megaphone.dm +++ b/code/game/objects/items/devices/megaphone.dm @@ -75,7 +75,7 @@ for(var/mob/M in get_mobs_in_view(7, src)) if((M.client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) && M.can_hear() && M.stat != UNCONSCIOUS) - M.create_chat_message(user, message, FALSE, FALSE) + M.create_chat_message(user, message, list("yell")) var/effect = SOUND_EFFECT_MEGAPHONE if(isrobot(user)) effect = SOUND_EFFECT_MEGAPHONE_ROBOT diff --git a/code/game/objects/items/weapons/storage/boxes.dm b/code/game/objects/items/weapons/storage/boxes.dm index d7435526ca1..3f7aab781fc 100644 --- a/code/game/objects/items/weapons/storage/boxes.dm +++ b/code/game/objects/items/weapons/storage/boxes.dm @@ -98,7 +98,7 @@ icon_state = "box_min" /obj/item/storage/box/survival_mining/populate_contents() - new /obj/item/clothing/mask/gas/explorer(src) + new /obj/item/clothing/mask/gas/explorer/folded(src) new /obj/item/tank/internals/emergency_oxygen/engi(src) new /obj/item/crowbar/red(src) new /obj/item/storage/firstaid/crew(src) @@ -112,7 +112,7 @@ new /obj/item/storage/firstaid/crew(src) new /obj/item/flashlight/flare/glowstick/red(src) new /obj/item/crowbar/red/sec(src) - new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/mask/gas/sechailer/folded(src) new /obj/item/radio/sec(src) /obj/item/storage/box/survival_security/hos @@ -854,7 +854,7 @@ max_combined_w_class = 20 /obj/item/storage/box/centcomofficer/populate_contents() - new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/mask/gas/sechailer/folded(src) new /obj/item/tank/internals/emergency_oxygen/double(src) new /obj/item/flashlight/seclite(src) new /obj/item/kitchen/knife/combat(src) @@ -872,7 +872,7 @@ icon_state = "box_ert" /obj/item/storage/box/responseteam/populate_contents() - new /obj/item/clothing/mask/gas/sechailer(src) + new /obj/item/clothing/mask/gas/sechailer/folded(src) new /obj/item/tank/internals/emergency_oxygen/engi(src) new /obj/item/flashlight/flare(src) new /obj/item/crowbar/red(src) diff --git a/code/game/objects/items/weapons/storage/garment_bag.dm b/code/game/objects/items/weapons/storage/garment_bag.dm index 22332b3fe26..b9e078fd29d 100644 --- a/code/game/objects/items/weapons/storage/garment_bag.dm +++ b/code/game/objects/items/weapons/storage/garment_bag.dm @@ -231,6 +231,7 @@ new /obj/item/clothing/under/rank/chaplain(src) new /obj/item/clothing/shoes/black(src) new /obj/item/clothing/under/rank/chaplain/skirt(src) + new /obj/item/clothing/suit/hooded/hijab(src) /obj/item/storage/garmentbag/quartermaster/populate_contents() new /obj/item/clothing/head/soft(src) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index b14aa28d2e4..212cb990bdd 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -341,22 +341,24 @@ GLOBAL_LIST_EMPTY(closets) icon_state = opened ? icon_opened : icon_closed + + /obj/structure/closet/update_overlays() . = ..() if(opened) if(custom_open_overlay) - . += "[custom_open_overlay]_open" + . += mutable_appearance(icon, "[custom_open_overlay]_open", src.layer + CLOSET_OLAY_OFFSET_DOOR) else - . += "[icon_state]_open" + . += mutable_appearance(icon, "[icon_state]_open", src.layer + CLOSET_OLAY_OFFSET_DOOR) else for(var/olay in apply_contents_overlays()) . += olay if(custom_door_overlay) - . += "[custom_door_overlay]_door" + . += mutable_appearance(icon, "[custom_door_overlay]_door", src.layer + CLOSET_OLAY_OFFSET_DOOR) else - . += "[icon_state]_door" //No initials because of custom map-made closets. + . += mutable_appearance(icon, "[icon_state]_door", src.layer + CLOSET_OLAY_OFFSET_DOOR) if(welded) - . += "welded" + . += mutable_appearance(icon, "welded", src.layer + CLOSET_OLAY_OFFSET_WELDED) /** @@ -484,16 +486,16 @@ GLOBAL_LIST_EMPTY(closets) . = list() if(!opened) if(transparent) - . += "[initial(icon_state)]_door_trans" + . += mutable_appearance(icon, "[initial(icon_state)]_door_trans", src.layer + CLOSET_OLAY_OFFSET_DOOR) else - . += "[initial(icon_state)]_door" + . += mutable_appearance(icon, "[initial(icon_state)]_door", src.layer + CLOSET_OLAY_OFFSET_DOOR) if(welded) - . += "welded" + . += mutable_appearance(icon, "welded", src.layer + CLOSET_OLAY_OFFSET_WELDED) else if(transparent) - . += "[initial(icon_state)]_open_trans" + . += mutable_appearance(icon, "[initial(icon_state)]_open_trans", src.layer + CLOSET_OLAY_OFFSET_DOOR) else - . += "[initial(icon_state)]_open" + . += mutable_appearance(icon, "[initial(icon_state)]_open", src.layer + CLOSET_OLAY_OFFSET_DOOR) /obj/structure/closet/bluespace/Crossed(atom/movable/AM, oldloc) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm index bed6882aab6..339166fe662 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm @@ -32,5 +32,7 @@ shottas-- choise = "projectile" if(choise) - . += image(icon, icon_state = choise, pixel_x = i * 4) + var/mutable_appearance/gun_olay = mutable_appearance(icon, choise, src.layer + CLOSET_OLAY_OFFSET_CONTENTS) + gun_olay.pixel_x = i * 4 + . += gun_olay diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index 2cf32aea65e..0e9a1621fe8 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -116,9 +116,9 @@ . = ..() if(!opened && !broken) if(locked) - . += overlay_locked + . += mutable_appearance(icon, overlay_locked, src.layer + CLOSET_OLAY_OFFSET_LOCK) else - . += overlay_unlocked + . += mutable_appearance(icon, overlay_unlocked, src.layer + CLOSET_OLAY_OFFSET_LOCK) /obj/structure/closet/secure_closet/update_desc(updates = ALL) diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index f5e95957f8b..5d9a66a3ef7 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -66,7 +66,7 @@ calculated_move_delay = 4 //no racecarts glide_for(calculated_move_delay) if(direction & (direction - 1)) //moved diagonally - calculated_move_delay *= 1.41 + calculated_move_delay *= SQRT_2 move_delay = world.time move_delay += calculated_move_delay diff --git a/code/game/turfs/simulated/floor/asteroid.dm b/code/game/turfs/simulated/floor/asteroid.dm index e6a9931c2d2..a9c8c94ad8f 100644 --- a/code/game/turfs/simulated/floor/asteroid.dm +++ b/code/game/turfs/simulated/floor/asteroid.dm @@ -96,6 +96,8 @@ playsound(src, I.usesound, 50, TRUE) if(do_after(user, 4 SECONDS * I.toolspeed * gettoolspeedmod(user), src)) + if(!istype(src, /turf/simulated/floor/plating/asteroid)) + return TRUE //Turf has been changed in process, prevents can_dig() runtime if(!can_dig(user)) return TRUE to_chat(user, span_notice("You dig a hole.")) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index 91dc58f893c..5a4bf1a7122 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -354,14 +354,7 @@ if(SSlighting.initialized) recalc_atom_opacity() - var/area/A = loc - if(!A.use_starlight) - // Should have a lighting object if we never had one - lighting_object = old_lighting_object || new /atom/movable/lighting_object(src) - else - W.add_overlay(A.lighting_effect) - if(A.use_starlight && old_lighting_object) - qdel(old_lighting_object, force = TRUE) + lighting_object = old_lighting_object directional_opacity = old_directional_opacity recalculate_directional_opacity() @@ -375,6 +368,12 @@ if(old_opacity != opacity && SSticker) GLOB.cameranet.bareMajorChunkChange(src) + // We will only run this logic if the tile is not on the prime z layer, since we use area overlays to cover that + if(SSmapping.z_level_to_plane_offset[z]) + var/area/our_area = W.loc + if(our_area.lighting_effects) + W.add_overlay(our_area.lighting_effects[SSmapping.z_level_to_plane_offset[z] + 1]) + return W /turf/proc/BeforeChange() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 452c723a966..af88acd4105 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1248,10 +1248,8 @@ if(GLOB.antag_paradise_weights) antags_list = GLOB.antag_paradise_weights else - antags_list = CONFIG_GET(keyed_list/antag_paradise_main_antags) + antags_list = CONFIG_GET(keyed_list/antag_paradise_single_antags_weights) antags_list = antags_list.Copy() - for(var/key in list(ROLE_TRAITOR, ROLE_VAMPIRE, ROLE_CHANGELING, ROLE_THIEF)) - antags_list[key] = !!(key in antags_list) for(var/antag in antags_list) dat += {"[capitalize(antag)]\[[antags_list[antag]]\]"} @@ -1294,7 +1292,7 @@ else if(findtext(command, "weights_normal_")) if(!GLOB.antag_paradise_weights) - var/list/antags_list = CONFIG_GET(keyed_list/antag_paradise_main_antags) + var/list/antags_list = CONFIG_GET(keyed_list/antag_paradise_single_antags_weights) antags_list = antags_list.Copy() for(var/key in list(ROLE_TRAITOR, ROLE_VAMPIRE, ROLE_CHANGELING, ROLE_THIEF)) antags_list[key] = !!(key in antags_list) diff --git a/code/modules/antagonists/changeling/powers/lesserform.dm b/code/modules/antagonists/changeling/powers/lesserform.dm index 4f29c1edcda..ce337dca7e4 100644 --- a/code/modules/antagonists/changeling/powers/lesserform.dm +++ b/code/modules/antagonists/changeling/powers/lesserform.dm @@ -27,7 +27,7 @@ user.visible_message(span_warning("[user] transforms!"), span_warning("Our genes cry out!")) remove_changeling_mutations(user) - user.monkeyize() + user.force_gene_block(GLOB.monkeyblock, TRUE) cling.give_power(new /datum/action/changeling/humanform) diff --git a/code/modules/antagonists/changeling/powers/swap_form.dm b/code/modules/antagonists/changeling/powers/swap_form.dm index 5b775393e31..c2a2e05a135 100644 --- a/code/modules/antagonists/changeling/powers/swap_form.dm +++ b/code/modules/antagonists/changeling/powers/swap_form.dm @@ -23,7 +23,7 @@ to_chat(user, span_warning("DNA of [target] is ruined beyond usability!")) return - if(!istype(target) || !target.mind || issmall(target) || has_no_DNA(target)) + if(!istype(target) || !target.mind || ismonkeybasic(target) || has_no_DNA(target)) to_chat(user, span_warning("[target] is not compatible with this ability.")) return FALSE @@ -63,9 +63,13 @@ cling.absorb_dna(target) cling.trim_dna() - var/mob/dead/observer/ghost = target.ghostize(FALSE) + var/mob/dead/observer/ghost = target.mind?.get_ghost(TRUE) + if(!ghost) + ghost = target.ghostize(FALSE) + user.mind.transfer_to(target) user.update_action_buttons(TRUE) + if(ghost?.mind) ghost.mind.transfer_to(user) GLOB.non_respawnable_keys -= ghost.ckey //they have a new body, let them be able to re-enter their corpse if they die diff --git a/code/modules/antagonists/survivalist/survivalist.dm b/code/modules/antagonists/survivalist/survivalist.dm index 44e5a55447d..bea9ab79959 100644 --- a/code/modules/antagonists/survivalist/survivalist.dm +++ b/code/modules/antagonists/survivalist/survivalist.dm @@ -14,7 +14,7 @@ /datum/antagonist/survivalist/guns - greet_message = "Your own safety matters above all else, and the only way to ensure your safety is to stockpile weapons! Grab as many guns as possible, by any means necessary. Kill anyone who gets in your way." + greet_message = "Устройте на станции как можно больше хаоса. Вы больше не подчиняетесь НТ и у вас явно хватит на это сил!" /datum/antagonist/survivalist/guns/give_objectives() @@ -24,12 +24,12 @@ /datum/antagonist/survivalist/magic name = "Amateur Magician" - greet_message = "Grow your newfound talent! Grab as many magical artefacts as possible, by any means necessary. Kill anyone who gets in your way." + greet_message = "Устройте на станции как можно больше хаоса. Вы больше не подчиняетесь НТ и у вас явно хватит на это сил!" /datum/antagonist/survivalist/magic/greet() - ..() - return . += span_notice("As a wonderful magician, you should remember that spellbooks don't mean anything if they are used up.") + . = ..() + . += span_notice("Будучи замечательным волшебником, вы должны помнить, что использованные книги заклинаний не имеют ценности.") /datum/antagonist/survivalist/magic/give_objectives() diff --git a/code/modules/antagonists/vampire/vampire_powers/bestia_powers.dm b/code/modules/antagonists/vampire/vampire_powers/bestia_powers.dm index 78f065e01e1..be242135736 100644 --- a/code/modules/antagonists/vampire/vampire_powers/bestia_powers.dm +++ b/code/modules/antagonists/vampire/vampire_powers/bestia_powers.dm @@ -1414,7 +1414,7 @@ name = "Flying vampire..." invisibility = 0 layer = LOW_LANDMARK_LAYER - light_system = MOVABLE_LIGHT + light_system = STATIC_LIGHT /** diff --git a/code/modules/atmospherics/machinery/atmospherics.dm b/code/modules/atmospherics/machinery/atmospherics.dm index 3bc0f7caa41..df8655e4755 100644 --- a/code/modules/atmospherics/machinery/atmospherics.dm +++ b/code/modules/atmospherics/machinery/atmospherics.dm @@ -219,7 +219,7 @@ Pipelines + Other Objects -> Pipe network to_chat(user, span_warning("As you begin unwrenching \the [src] a gust of air blows in your face... maybe you should reconsider?")) unsafe_wrenching = TRUE //Oh dear oh dear - if(do_after(user, 4 SECONDS * W.toolspeed * gettoolspeedmod(user), src) && !QDELETED(src)) + if(do_after(user, 4 SECONDS * W.toolspeed * gettoolspeedmod(user), src, max_interact_count = 1, cancel_message = "") && !QDELETED(src)) user.visible_message( \ "[user] unfastens \the [src].", \ span_notice("You have unfastened \the [src]."), \ diff --git a/code/modules/awaymissions/mission_code/ruins/USSP_gorky17.dm b/code/modules/awaymissions/mission_code/ruins/USSP_gorky17.dm index de0db8922c7..6240c9cefdb 100644 --- a/code/modules/awaymissions/mission_code/ruins/USSP_gorky17.dm +++ b/code/modules/awaymissions/mission_code/ruins/USSP_gorky17.dm @@ -225,9 +225,9 @@ ambientsounds = ENGINEERING_SOUNDS sound_environment = SOUND_AREA_SPACE has_gravity = FALSE - use_starlight = TRUE - - + static_lighting = FALSE + base_lighting_color = COLOR_WHITE + base_lighting_alpha = 255 /////////////// Safe with secret documets /obj/effect/spawner/lootdrop/randomsafe diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index b6056a040aa..36f9819f1b2 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -467,6 +467,7 @@ SSinput.processing -= src SSping.currentrun -= src Master.UpdateTickRate() + seen_messages = null ..() //Even though we're going to be hard deleted there are still some things that want to know the destroy is happening return QDEL_HINT_HARDDEL_NOW diff --git a/code/modules/client/preference/loadout/loadout_donor.dm b/code/modules/client/preference/loadout/loadout_donor.dm index 1e5275314b9..22bbbbf829e 100644 --- a/code/modules/client/preference/loadout/loadout_donor.dm +++ b/code/modules/client/preference/loadout/loadout_donor.dm @@ -298,3 +298,16 @@ path = /obj/item/toy/plushie/beaver donator_tier = 3 cost = 1 + +/datum/gear/donor/hijab + donator_tier = 1 + cost = 1 + display_name = "hijab" + path = /obj/item/clothing/suit/hooded/hijab + +/datum/gear/donor/steampunkdress + donator_tier = 1 + cost = 1 + display_name = "victorian blue-white dress" + path = /obj/item/clothing/under/steampunkdress + diff --git a/code/modules/client/preference/loadout/loadout_gloves.dm b/code/modules/client/preference/loadout/loadout_gloves.dm index 9b35ab2f59f..8b08281e1a8 100644 --- a/code/modules/client/preference/loadout/loadout_gloves.dm +++ b/code/modules/client/preference/loadout/loadout_gloves.dm @@ -14,3 +14,7 @@ /datum/gear/gloves/goldring display_name = "Gold ring" path = /obj/item/clothing/gloves/ring/gold + +/datum/gear/gloves/brown_short_gloves + display_name = "short leather gloves" + path = /obj/item/clothing/gloves/brown_short_gloves diff --git a/code/modules/client/preference/loadout/loadout_racial.dm b/code/modules/client/preference/loadout/loadout_racial.dm index 02c660e46e4..756858129c1 100644 --- a/code/modules/client/preference/loadout/loadout_racial.dm +++ b/code/modules/client/preference/loadout/loadout_racial.dm @@ -9,66 +9,65 @@ path = /obj/item/clothing/glasses/tajblind slot = ITEM_SLOT_EYES -/datum/gear/racial/taj/bot +/datum/gear/racial/taj/job + subtype_path = /datum/gear/racial/taj/job + subtype_cost_overlap = FALSE + cost = 2 + +/datum/gear/racial/taj/job/bot display_name = "veil, blooming" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built botanical HUD." path = /obj/item/clothing/glasses/hud/hydroponic/tajblind allowed_roles = list(JOB_TITLE_BOTANIST) -/datum/gear/racial/taj/sec +/datum/gear/racial/taj/job/sec display_name = "veil, sleek" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built security HUD." path = /obj/item/clothing/glasses/hud/security/sunglasses/tajblind allowed_roles = list(JOB_TITLE_HOS, JOB_TITLE_WARDEN, JOB_TITLE_OFFICER, JOB_TITLE_PILOT, JOB_TITLE_JUDGE) - cost = 2 -/datum/gear/racial/taj/iaa +/datum/gear/racial/taj/job/iaa display_name = "veil, sleek(read-only)" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built security HUD." path = /obj/item/clothing/glasses/hud/security/sunglasses/tajblind/read_only allowed_roles = list(JOB_TITLE_LAWYER) - cost = 2 -/datum/gear/racial/taj/med +/datum/gear/racial/taj/job/med display_name = "veil, lightweight" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built medical HUD." path = /obj/item/clothing/glasses/hud/health/tajblind allowed_roles = list(JOB_TITLE_CMO, JOB_TITLE_DOCTOR, JOB_TITLE_INTERN, JOB_TITLE_CHEMIST, JOB_TITLE_PSYCHIATRIST, JOB_TITLE_PARAMEDIC, JOB_TITLE_VIROLOGIST, JOB_TITLE_BRIGDOC, JOB_TITLE_CORONER) - cost = 2 -/datum/gear/racial/taj/sci +/datum/gear/racial/taj/job/sci display_name = "veil, hi-tech" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built science goggles" path = /obj/item/clothing/glasses/tajblind/sci allowed_roles = list(JOB_TITLE_RD, JOB_TITLE_SCIENTIST, JOB_TITLE_SCIENTIST_STUDENT, JOB_TITLE_ROBOTICIST, JOB_TITLE_GENETICIST, JOB_TITLE_CHEMIST) - cost = 2 -/datum/gear/racial/taj/eng +/datum/gear/racial/taj/job/eng display_name = "veil, industrial" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built optical meson scanners and welding shields." path = /obj/item/clothing/glasses/tajblind/eng allowed_roles = list(JOB_TITLE_CHIEF, JOB_TITLE_ENGINEER, JOB_TITLE_ENGINEER_TRAINEE, JOB_TITLE_MECHANIC, JOB_TITLE_ATMOSTECH) - cost = 2 -/datum/gear/racial/taj/cargo +/datum/gear/racial/taj/job/cargo display_name = "veil, khaki" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built optical meson scanners." path = /obj/item/clothing/glasses/tajblind/cargo allowed_roles = list(JOB_TITLE_QUARTERMASTER, JOB_TITLE_CARGOTECH) - cost = 2 -/datum/gear/racial/taj/diag +/datum/gear/racial/taj/job/diag display_name = "veil, diagnostic" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built diagnostic HUD." path = /obj/item/clothing/glasses/hud/diagnostic/tajblind allowed_roles = list(JOB_TITLE_ROBOTICIST, JOB_TITLE_RD) - cost = 2 -/datum/gear/racial/taj/skills + +/datum/gear/racial/taj/job/skills display_name = "veil, skills" description = "A common traditional nano-fiber veil worn by many Tajaran, It is rare and offensive to see it on other races. This one has an in-built skills HUD." path = /obj/item/clothing/glasses/hud/skills/tajblind allowed_roles = list(JOB_TITLE_HOP, JOB_TITLE_CAPTAIN) - cost = 2 + /datum/gear/racial/footwraps display_name = "cloth footwraps, select" path = /obj/item/clothing/shoes/footwraps diff --git a/code/modules/client/preference/loadout/loadout_shoes.dm b/code/modules/client/preference/loadout/loadout_shoes.dm index d1255a446dc..9f59078acc7 100644 --- a/code/modules/client/preference/loadout/loadout_shoes.dm +++ b/code/modules/client/preference/loadout/loadout_shoes.dm @@ -65,3 +65,7 @@ /datum/gear/shoes/jackcross display_name = "jackcross" path = /obj/item/clothing/shoes/jackboots/cross + +/datum/gear/shoes/leather_boots + display_name = "high leather boots" + path = /obj/item/clothing/shoes/leather_boots diff --git a/code/modules/client/preference/loadout/loadout_uniform.dm b/code/modules/client/preference/loadout/loadout_uniform.dm index c9dc2719811..ab559eeaba8 100644 --- a/code/modules/client/preference/loadout/loadout_uniform.dm +++ b/code/modules/client/preference/loadout/loadout_uniform.dm @@ -367,3 +367,14 @@ description = "A classic track suit. There is a small tag on the clothes that says \"Made in the USSP\"." path = /obj/item/clothing/under/ussptracksuit_blue +/datum/gear/uniform/dress50s + display_name = "old Soviet dress" + path = /obj/item/clothing/under/dress50s + +/datum/gear/uniform/galifepants + display_name = "check breeches" + path = /obj/item/clothing/under/pants/galifepants + +/datum/gear/uniform/sandpants + display_name = "long sand pants" + path = /obj/item/clothing/under/pants/sandpants diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index f41c59345aa..56cbdb9f55c 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -550,6 +550,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts dat += "Donator Publicity: [(toggles & PREFTOGGLE_DONATOR_PUBLIC) ? "Public" : "Hidden"]
" dat += "Fancy TGUI: [(toggles2 & PREFTOGGLE_2_FANCYUI) ? "Yes" : "No"]
" dat += "Input Lists: [(toggles2 & PREFTOGGLE_2_DISABLE_TGUI_LISTS) ? "Default" : "TGUI"]
" + dat += "Vote Popups: [(toggles2 & PREFTOGGLE_2_DISABLE_VOTE_POPUPS) ? "No" : "Yes"]
" dat += "FPS: [clientfps]
" dat += "Ghost Ears: [(toggles & PREFTOGGLE_CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]
" dat += "Ghost Radio: [(toggles & PREFTOGGLE_CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]
" @@ -657,10 +658,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts for(var/gear_name in LC.gear) var/datum/gear/G = LC.gear[gear_name] var/datum/gear/ticked = choosen_gears[G.display_name] - if(G.donator_tier > user.client.donator_level) - dat += "[G.display_name]
" - else - dat += "[G.display_name]
" + dat += "[G.display_name]
" if(ticked) for(var/datum/gear_tweak/tweak in ticked.gear_tweaks) dat += "
[tweak.get_contents(get_tweak_metadata(ticked, tweak))]" @@ -1433,7 +1431,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts choosen_gears -= TG.display_name else if(TG.donator_tier && user.client.donator_level < TG.donator_tier) - to_chat(user, "That gear is only available at a higher donation tier than you are on.") + to_chat(user, span_warning("That gear is only available at [TG.donator_tier] and higher donation tier.")) return var/total_cost = 0 var/list/type_blacklist = list() @@ -2377,6 +2375,9 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts if("input_lists") toggles2 ^= PREFTOGGLE_2_DISABLE_TGUI_LISTS + if("vote_popup") + toggles2 ^= PREFTOGGLE_2_DISABLE_VOTE_POPUPS + if("ghost_att_anim") toggles2 ^= PREFTOGGLE_2_ITEMATTACK @@ -2886,7 +2887,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts if(character.dna.dirtySE) character.dna.UpdateSE() - character.dna.ready_dna(character, flatten_SE = 0) + character.dna.ready_dna(character, flatten_SE = FALSE) character.sync_organ_dna(assimilate=1) character.UpdateAppearance() diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index f634c4c8763..80819e0904a 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -409,10 +409,13 @@ /datum/preferences/proc/form_choosen_gears() choosen_gears.Cut() for(var/gear in loadout_gear) - var/datum/geartype = GLOB.gear_datums[gear] + var/datum/gear/geartype = GLOB.gear_datums[gear] if(!istype(geartype)) loadout_gear -= gear // Delete wrong/outdated data continue + if(geartype.donator_tier > parent.donator_level) + loadout_gear -= gear // Gagaga, donate again + continue var/datum/gear/new_gear = new geartype.type for(var/tweak in loadout_gear[gear]) for(var/datum/gear_tweak/gear_tweak in new_gear.gear_tweaks) diff --git a/code/modules/client/preference/preferences_toggles.dm b/code/modules/client/preference/preferences_toggles.dm index e6cdd9c5d38..d550e63f34a 100644 --- a/code/modules/client/preference/preferences_toggles.dm +++ b/code/modules/client/preference/preferences_toggles.dm @@ -255,6 +255,16 @@ prefs.toggles2 ^= PREFTOGGLE_2_DISABLE_TGUI_LISTS prefs.save_preferences(src) to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_DISABLE_TGUI_LISTS) ? "no longer" : "now"] use TGUI Input Lists.") + SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle TGUI Input Lists") //If you are copy-pasting this, ensure the 4th parameter is unique to the new proc! + +/client/verb/toggle_vote_popup() + set name = "Toggle Vote Popup" + set category = "Preferences" + set desc = "Toggles the popup of the voting window on the screen when voting starts (Now working only with map votes)" + prefs.toggles2 ^= PREFTOGGLE_2_DISABLE_VOTE_POPUPS + prefs.save_preferences(src) + to_chat(src, "You will [(prefs.toggles2 & PREFTOGGLE_2_DISABLE_VOTE_POPUPS) ? "no longer" : "now"] receive popups when vote starts.") + SSblackbox.record_feedback("tally", "toggle_verbs", 1, "Toggle Vote Popup") //If you are copy-pasting this, ensure the 4th parameter is unique to the new proc! /client/verb/Toggle_disco() //to toggle off the disco machine locally, in case it gets too annoying set name = "Hear/Silence Dance Machine" diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index f974659b7e6..3184ac54b2b 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -544,6 +544,15 @@ BLIND // can't see anything if(!user.equip_to_slot_if_possible(src, slot_flags)) user.put_in_hands(src) +/obj/item/clothing/mask/proc/force_adjust_mask() + up = !up + update_icon(UPDATE_ICON_STATE) + gas_transfer_coefficient = null + permeability_coefficient = null + flags_cover &= ~MASKCOVERSMOUTH + flags_inv &= ~HIDENAME + clothing_flags &= ~AIRTIGHT + w_class = WEIGHT_CLASS_SMALL // Changes the speech verb when wearing a mask if a value is returned /obj/item/clothing/mask/proc/change_speech_verb() diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index f4fa3a8bbb5..344a5dabbda 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -355,3 +355,19 @@ user.visible_message("[user] has hit [obj] with knuckles!", "You hit [obj] with knuckles!") obj.take_damage(knobj_damage, BRUTE, "melee", 1, get_dir(src, user)) return TRUE + +/obj/item/clothing/gloves/brown_short_gloves + name = "short leather gloves" + desc = "Короткие облегающие перчатки из кожи." + icon_state = "brown_short_gloves" + item_state = "brown_short_gloves" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/gloves.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/gloves.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/gloves.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/gloves.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/gloves.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/gloves.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/gloves.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/gloves.dmi' + ) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 5b247633496..bf6d24f5a5a 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -96,18 +96,6 @@ . = ..() force_adjust_mask() - -/obj/item/clothing/mask/gas/explorer/folded/proc/force_adjust_mask() - up = !up - update_icon(UPDATE_ICON_STATE) - gas_transfer_coefficient = null - permeability_coefficient = null - flags_cover &= ~MASKCOVERSMOUTH - flags_inv &= ~HIDENAME - clothing_flags &= ~AIRTIGHT - w_class = WEIGHT_CLASS_SMALL - - //Bane gas mask /obj/item/clothing/mask/banemask name = "bane mask" @@ -361,6 +349,14 @@ "dredd" = "I am, the LAW!" ) +/obj/item/clothing/mask/gas/sechailer/adjustmask(user) + . = ..() + if(.) + w_class = up ? WEIGHT_CLASS_SMALL : WEIGHT_CLASS_NORMAL + +/obj/item/clothing/mask/gas/sechailer/folded/Initialize(mapload) + . = ..() + force_adjust_mask() /obj/item/clothing/mask/gas/sechailer/hos name = "\improper HOS SWAT mask" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 9b599ce3128..1c0588dc2fe 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -491,6 +491,9 @@ if(user.throwing) to_chat(user, span_warning("You can't jump in the middle of another jump!")) return + if(!jumper.has_gravity()) + to_chat(user, span_warning("You can't jump without gravity!")) + return var/atom/target = get_edge_target_turf(user, user.dir) //gets the user's direction @@ -589,3 +592,22 @@ can_cut_open = FALSE icon_state = "commandos_boots" item_state = "commandos_boots" + +/obj/item/clothing/shoes/leather_boots + name = "high leather boots" + desc = "Стройные сапоги сделанные из кожи." + icon_state = "leather_boots" + item_state = "leather_boots" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/shoes.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/shoes.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/shoes.dmi', + SPECIES_ASHWALKER_BASIC = 'icons/mob/clothing/species/unathi/shoes.dmi', + SPECIES_ASHWALKER_SHAMAN = 'icons/mob/clothing/species/unathi/shoes.dmi', + SPECIES_DRACONOID = 'icons/mob/clothing/species/unathi/shoes.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/shoes.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/shoes.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/shoes.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/shoes.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/shoes.dmi' + ) diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 8b0591ada01..8d4c4c1076f 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -1235,6 +1235,49 @@ desc = "A traditional chinese suit worn for fashion." icon_state = "triadkillers" +/obj/item/clothing/suit/hooded/hijab + name = "hijab" + desc = "Тёмное одеяние скрывающее тело." + icon_state = "hijab" + flags_inv = HIDETAIL + hoodtype = /obj/item/clothing/head/hooded/hijab + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/suit.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/suit.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/suit.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/suit.dmi', + SPECIES_ASHWALKER_BASIC = 'icons/mob/clothing/species/unathi/suit.dmi', + SPECIES_ASHWALKER_SHAMAN = 'icons/mob/clothing/species/unathi/suit.dmi', + SPECIES_DRACONOID = 'icons/mob/clothing/species/unathi/suit.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/suit.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/suit.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/suit.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/suit.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/suit.dmi' + ) + +/obj/item/clothing/head/hooded/hijab + name = "hijab hood" + desc = "Тёмное одеяние скрывающее лицо." + icon_state = "hijab_head" + flags_inv = HIDEHEADSETS|HIDENAME|HIDEHAIR + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/head.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/head.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/head.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/head.dmi', + SPECIES_ASHWALKER_BASIC = 'icons/mob/clothing/species/unathi/head.dmi', + SPECIES_ASHWALKER_SHAMAN = 'icons/mob/clothing/species/unathi/head.dmi', + SPECIES_DRACONOID = 'icons/mob/clothing/species/unathi/head.dmi', + SPECIES_TAJARAN = 'icons/mob/clothing/species/tajaran/head.dmi', + SPECIES_VULPKANIN = 'icons/mob/clothing/species/vulpkanin/head.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/head.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/head.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/head.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/head.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/head.dmi' + ) + // Suragi start // Suragi parent /obj/item/clothing/suit/storage/suragi_jacket diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 42318e8bed9..ed81fc92476 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -867,18 +867,18 @@ clothing_traits = list(TRAIT_VENTCRAWLER_ITEM_BASED) -/obj/item/clothing/under/contortionist/used_for_ventcrawling(mob/living/user, provide_feedback = TRUE) - // Allowed to wear: glasses, shoes, gloves, pockets, mask, and jumpsuit (obviously) - var/slots_must_be_empty = ITEM_SLOT_BACK|ITEM_SLOT_BELT|ITEM_SLOT_HEAD|ITEM_SLOT_CLOTH_OUTER|ITEM_SLOT_HANDS|ITEM_SLOT_HANDCUFFED|ITEM_SLOT_LEGCUFFED - - for(var/obj/item/item as anything in user.get_equipped_items(include_hands = TRUE)) - if(item.slot_flags & slots_must_be_empty) - if(provide_feedback) - to_chat(user, span_warning("Вы не можете ползать по вентиляции с [item.name].")) - return FALSE +/// Allowed to wear: glasses, shoes, gloves, mask, ears, pockets, id, pda and jumpsuit (obviously) +#define CONTORTIONIST_ALLOWED_SLOTS (ITEM_SLOT_CLOTH_INNER|ITEM_SLOT_ID|ITEM_SLOT_PDA|ITEM_SLOT_GLOVES|ITEM_SLOT_FEET|ITEM_SLOT_MASK|ITEM_SLOT_EYES|ITEM_SLOT_EARS|ITEM_SLOT_POCKETS) +/obj/item/clothing/under/contortionist/used_for_ventcrawling(mob/living/user, provide_feedback = TRUE) + if(user.get_equipped_slots(include_hands = TRUE) & ~CONTORTIONIST_ALLOWED_SLOTS) + if(provide_feedback) + to_chat(user, span_warning("Вы можете ползать по вентиляции только с перчатками, обувью, маской, очками, наушниками, а также комбинезоном с ID-картой и PDA.")) + return FALSE return TRUE +#undef CONTORTIONIST_ALLOWED_SLOTS + /obj/item/clothing/under/cursedclown name = "cursed clown suit" @@ -1136,3 +1136,45 @@ icon_state = "night_dress_white" item_state = "night_dress_white" item_color = "night_dress_white" + +/obj/item/clothing/under/steampunkdress + name = "victorian blue-white dress" + desc = "Изящное бело-кремовое платье с синим жакетом. Платье повторяет одежду викторианской эпохи, но с небольшими современными идеями. На лацкане жакета нацеплена брош символизирующая превосходство." + over_shoes = TRUE + icon_state = "steampunkdress" + item_state = "steampunkdress" + item_color = "steampunkdress" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/uniform.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/uniform.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_ASHWALKER_BASIC = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_ASHWALKER_SHAMAN = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_DRACONOID = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/uniform.dmi' + ) + + +/obj/item/clothing/under/dress50s + name = "old Soviet dress" + desc = "Платье в горошек на манер старой моды. Кажется, такое носят женщины из СССП." + over_shoes = TRUE + icon_state = "dress50s" + item_state = "dress50s" + item_color = "dress50s" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/uniform.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/uniform.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/uniform.dmi' + ) diff --git a/code/modules/clothing/under/pants.dm b/code/modules/clothing/under/pants.dm index c3fb90d16e5..f554fa2be3e 100644 --- a/code/modules/clothing/under/pants.dm +++ b/code/modules/clothing/under/pants.dm @@ -94,3 +94,47 @@ /obj/item/clothing/under/pants/camo/commando armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/under/pants/galifepants + name = "check breeches" + desc = "Штаны широкого фасона в бёдрах." + icon_state = "galifepants" + item_state = "galifepants" + item_color = "galifepants" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/uniform.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/uniform.dmi', + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_ASHWALKER_BASIC = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_ASHWALKER_SHAMAN = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_DRACONOID = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/uniform.dmi' + ) + +/obj/item/clothing/under/pants/sandpants + name = "long sand pants" + desc = "Брюки песочного цвета, расклешённые от колена." + icon_state = "sandpants" + item_state = "sandpants" + item_color = "sandpants" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/uniform.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/uniform.dmi', + SPECIES_VOX = 'icons/mob/clothing/species/vox/uniform.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_ASHWALKER_BASIC = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_ASHWALKER_SHAMAN = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_DRACONOID = 'icons/mob/clothing/species/unathi/uniform.dmi', + SPECIES_MONKEY = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_FARWA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_WOLPIN = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_NEARA = 'icons/mob/clothing/species/monkey/uniform.dmi', + SPECIES_STOK = 'icons/mob/clothing/species/monkey/uniform.dmi' + ) diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index ffdaa381ed9..fa06814410f 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -202,13 +202,17 @@ part_reagent = new thing() parts_used += part_reagent - for(var/obj/item/reagent_containers/container in (surroundings - reagent_containers_for_deletion)) + for(var/obj/item/reagent_containers/container in surroundings) var/datum/reagent/contained_reagent = container.reagents.get_reagent(thing) if(!contained_reagent) continue var/extracted_amount = min(contained_reagent.volume, needed_amount) - reagent_containers_for_deletion[container] = list(contained_reagent, extracted_amount) + if(reagent_containers_for_deletion[container] == null) + reagent_containers_for_deletion[container] = list() + + reagent_containers_for_deletion[container][contained_reagent] = extracted_amount + part_reagent.volume += extracted_amount part_reagent.data += contained_reagent.data needed_amount -= extracted_amount @@ -250,15 +254,15 @@ parts_used += part_atom for(var/obj/item/reagent_containers/container_to_clear as anything in reagent_containers_for_deletion) - var/datum/reagent/reagent_to_delete = reagent_containers_for_deletion[container_to_clear][1] - var/amount_to_delete = reagent_containers_for_deletion[container_to_clear][2] + for(var/datum/reagent/reagent_to_delete as anything in reagent_containers_for_deletion[container_to_clear]) + var/amount_to_delete = reagent_containers_for_deletion[container_to_clear][reagent_to_delete] - if(amount_to_delete < reagent_to_delete.volume) - reagent_to_delete.volume -= amount_to_delete - else - container_to_clear.reagents.reagent_list -= reagent_to_delete - container_to_clear.reagents.conditional_update(container_to_clear) - container_to_clear.update_icon() + if(amount_to_delete < reagent_to_delete.volume) + reagent_to_delete.volume -= amount_to_delete + else + container_to_clear.reagents.reagent_list -= reagent_to_delete + container_to_clear.reagents.conditional_update(container_to_clear) + container_to_clear.update_icon() for(var/obj/item/stack/stack_to_delete as anything in item_stacks_for_deletion) var/amount_to_delete = item_stacks_for_deletion[stack_to_delete] diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index 364a72dd3e0..640314672d3 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -165,7 +165,7 @@ process_mutation(holder) /datum/spacevine_mutation/space_covering/on_spread(obj/structure/spacevine/holder, turf/target) - if(target.type == /turf/space && !locate(/obj/structure/spacevine) in target) + if(isspaceturf(target) && !(locate(/obj/structure/spacevine) in target) && !is_location_within_transition_boundaries(target)) holder.master.spawn_spacevine_piece(target, holder) . = TRUE @@ -187,7 +187,7 @@ quality = MINOR_NEGATIVE /datum/spacevine_mutation/bluespace/on_spread(obj/structure/spacevine/holder, turf/target) - if(holder.energy > 1 && !locate(/obj/structure/spacevine) in target) + if(holder.energy > 1 && !(locate(/obj/structure/spacevine) in target) && !is_location_within_transition_boundaries(target)) // Lose bluespace upon piercing a single tile, and drop it from our own mutations too // Representing a loss in "high potential" // also conveniently prevents this from spreading too crazily @@ -680,9 +680,8 @@ spread_success |= SM.on_spread(src, stepturf) // If this returns 1, spreading succeeded if(!locate(/obj/structure/spacevine, stepturf)) // snowflake for space turf, but space turf is super common and a big deal - if(!isspaceturf(stepturf) && stepturf.Enter(src)) - if(master) - master.spawn_spacevine_piece(stepturf, src) + if(!isspaceturf(stepturf) && stepturf.Enter(src) && !is_location_within_transition_boundaries(stepturf)) + master?.spawn_spacevine_piece(stepturf, src) spread_success = TRUE if(spread_success || !spread_search) break diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 5acf28567c9..da78a5693c7 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -947,9 +947,9 @@ GLOBAL_LIST_INIT(non_fakeattack_weapons, list(/obj/item/gun/projectile, /obj/ite throw_alert("too_much_tox", /atom/movable/screen/alert/too_much_tox, override = TRUE) if("nutrition") if(prob(50)) - throw_alert("nutrition", /atom/movable/screen/alert/hunger/fat, override = TRUE, icon_override = dna.species.hunger_icon) + throw_alert(ALERT_NUTRITION, /atom/movable/screen/alert/hunger/fat, override = TRUE, icon_override = dna.species.hunger_icon) else - throw_alert("nutrition", /atom/movable/screen/alert/hunger/starving, override = TRUE, icon_override = dna.species.hunger_icon) + throw_alert(ALERT_NUTRITION, /atom/movable/screen/alert/hunger/starving, override = TRUE, icon_override = dna.species.hunger_icon) if("weightless") throw_alert("weightless", /atom/movable/screen/alert/weightless, override = TRUE) if("fire") diff --git a/code/modules/food_and_drinks/kitchen_machinery/processor.dm b/code/modules/food_and_drinks/kitchen_machinery/processor.dm index c794702b323..4aebe25872f 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/processor.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/processor.dm @@ -178,25 +178,27 @@ return default_deconstruction_crowbar(user, O) - var/obj/item/what = O - + var/obj/item/grab/grab if(istype(O, /obj/item/grab)) - var/obj/item/grab/G = O - what = G.affecting + grab = O + what = grab.affecting var/datum/food_processor_process/P = select_recipe(what) if(!P) to_chat(user, "That probably won't blend.") - return 1 + return TRUE + + if(grab) + qdel(grab) + what.forceMove(src) + else if(!user.drop_transfer_item_to_loc(what, src)) + return user.visible_message("\the [user] puts \the [what] into \the [src].", \ "You put \the [what] into \the [src].") - user.drop_transfer_item_to_loc(what, src) - - return /obj/machinery/processor/attack_hand(mob/user) if(stat & (NOPOWER|BROKEN)) //no power or broken diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm index 9af289684f7..052eb8b93b7 100644 --- a/code/modules/games/cards.dm +++ b/code/modules/games/cards.dm @@ -23,8 +23,6 @@ force = 0 actions_types = list(/datum/action/item_action/draw_card, /datum/action/item_action/deal_card, /datum/action/item_action/deal_card_multi, /datum/action/item_action/shuffle) var/list/cards = list() - /// To prevent spam shuffle - var/cooldown = 0 /// Decks default to a single pack, setting it higher will multiply them by that number var/deck_size = 1 /// The total number of cards. Set on init after the deck is fully built @@ -49,6 +47,8 @@ var/card_attack_verb /// Inherited card resistance var/card_resistance_flags = FLAMMABLE + /// To prevent spam shuffle + COOLDOWN_DECLARE(shuffle_cooldown) /obj/item/deck/Initialize(mapload) @@ -133,7 +133,7 @@ /datum/action/item_action/deal_card/Trigger(left_click = TRUE) if(istype(target, /obj/item/deck)) var/obj/item/deck/D = target - return D.deal_card() + return D.deal_card(usr) return ..() @@ -146,7 +146,7 @@ /datum/action/item_action/deal_card_multi/Trigger(left_click = TRUE) if(istype(target, /obj/item/deck)) var/obj/item/deck/D = target - return D.deal_card_multi() + return D.deal_card_multi(usr) return ..() @@ -159,7 +159,7 @@ /datum/action/item_action/shuffle/Trigger(left_click = TRUE) if(istype(target, /obj/item/deck)) var/obj/item/deck/D = target - return D.deckshuffle() + return D.deckshuffle(usr) return ..() @@ -192,46 +192,65 @@ to_chat(user, span_notice("It's the [play_card].")) -/obj/item/deck/proc/deal_card(mob/user = usr) +/obj/item/deck/proc/deal_card(mob/user) if(user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user)) return if(!length(cards)) - to_chat(usr, span_notice("There are no cards in the deck.")) + to_chat(user, span_warning("There are no cards in the deck!")) return var/list/players = list() - for(var/mob/living/player in viewers(3)) + for(var/mob/living/carbon/player in viewers(3, user)) if(!player.incapacitated() && !HAS_TRAIT(player, TRAIT_HANDS_BLOCKED)) players += player - var/mob/living/target = tgui_input_list(user, "Who do you wish to deal a card to?", "Deal Card", players) - if(!user || !src || !target || target.incapacitated() || HAS_TRAIT(target, TRAIT_HANDS_BLOCKED)) + if(!length(players)) + to_chat(user, span_warning("There are no players around!")) + return + + var/mob/living/carbon/target = tgui_input_list(user, "Who do you wish to deal a card to?", "Deal Card", players) + if(!user || !src || !target || !Adjacent(user) || get_dist(user, target) > 3 || target.incapacitated() || HAS_TRAIT(target, TRAIT_HANDS_BLOCKED)) + return + + if(!length(cards)) + to_chat(user, span_warning("Deck is empty!")) return deal_at(user, target, 1) -/obj/item/deck/proc/deal_card_multi(mob/user = usr) +/obj/item/deck/proc/deal_card_multi(mob/user) if(user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED) || !Adjacent(user)) return if(!length(cards)) - to_chat(user, span_notice("There are no cards in the deck.")) + to_chat(user, span_warning("There are no cards in the deck!")) return + var/maxcards = clamp(length(cards), 1, 10) + var/dcard = input("How many card(s) do you wish to deal? You may deal up to [maxcards] cards.", "Card Dealing", 1) as num|null + if(!dcard || !length(cards) || !Adjacent(user) || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) + return + + dcard = clamp(min(round(abs(dcard)), length(cards)), 1, 10) // we absolutely trust our players + var/list/players = list() - for(var/mob/living/player in viewers(3)) - if(!player.incapacitated()) + for(var/mob/living/carbon/player in viewers(3, user)) + if(!player.incapacitated() && !HAS_TRAIT(player, TRAIT_HANDS_BLOCKED)) players += player - var/maxcards = clamp(length(cards), 1, 10) - var/dcard = input("How many card(s) do you wish to deal? You may deal up to [maxcards] cards.") as num - if(dcard > maxcards) + if(!length(players)) + to_chat(user, span_warning("You decide to deal [dcard] card\s, but there are no players around!")) + return + to_chat(user, span_notice("You decide to deal [dcard] card\s.")) + + var/mob/living/carbon/target = tgui_input_list(user, "Who do you wish to deal [dcard] card(s)?", "Deal Card", players) + if(!user || !src || !target || !Adjacent(user) || get_dist(user, target) > 3 || target.incapacitated() || HAS_TRAIT(target, TRAIT_HANDS_BLOCKED)) return - var/mob/living/target = tgui_input_list(usr, "Who do you wish to deal [dcard] card(s)?", "Deal Card", players) - if(!user || !src || !target || !Adjacent(user)) + if(length(cards) < dcard) + to_chat(user, span_warning("The deck has no sufficient amount of cards anymore!")) return deal_at(user, target, dcard) @@ -248,10 +267,10 @@ cardhand.concealed = TRUE cardhand.update_appearance(UPDATE_NAME|UPDATE_DESC|UPDATE_OVERLAYS) if(user == target) - user.visible_message(span_notice("[user] deals [dcard] card(s) to [user.p_themselves()].")) + user.visible_message(span_notice("[user] deals [dcard] card\s to [user.p_themselves()].")) else - user.visible_message(span_notice("[user] deals [dcard] card(s) to [target].")) - cardhand.throw_at(get_step(target,target.dir), 3, 1, cardhand) + user.visible_message(span_notice("[user] deals [dcard] card\s to [target].")) + INVOKE_ASYNC(cardhand, TYPE_PROC_REF(/atom/movable, throw_at), get_step(target, target.dir), 3, 1, user) /obj/item/deck/attack_self(mob/user) @@ -264,13 +283,13 @@ /obj/item/deck/proc/deckshuffle(mob/user) - if(cooldown < world.time - 1 SECONDS || !iscarbon(user) || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) + if(!COOLDOWN_FINISHED(src, shuffle_cooldown) || !iscarbon(user) || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) return + COOLDOWN_START(src, shuffle_cooldown, 1 SECONDS) cards = shuffle(cards) user.visible_message(span_notice("[user] shuffles [src].")) - playsound(user, 'sound/items/cardshuffle.ogg', 50, 1) - cooldown = world.time + playsound(user, 'sound/items/cardshuffle.ogg', 50, TRUE) /obj/item/deck/MouseDrop(atom/over_object, src_location, over_location, src_control, over_control, params) @@ -279,7 +298,7 @@ return FALSE var/mob/user = usr - if(over_object != user || user.incapacitated() || !ishuman(user)) + if(over_object != user || user.incapacitated() || !iscarbon(user)) return FALSE if(user.put_in_hands(src, ignore_anim = FALSE)) diff --git a/code/modules/games/tarot.dm b/code/modules/games/tarot.dm index d6f7ccc924c..aa9d1fa1db0 100644 --- a/code/modules/games/tarot.dm +++ b/code/modules/games/tarot.dm @@ -15,19 +15,19 @@ cards += new /datum/playingcard("[number] of [suit]", "tarot_[suit]", "card_back_tarot") -/obj/item/deck/tarot/deckshuffle() - var/mob/living/user = usr - if(cooldown < world.time - 1 SECONDS) - var/list/newcards = list() - while(cards.len) - var/datum/playingcard/card = pick(cards) - card.name = replacetext(card.name," reversed","") - if(prob(50)) - card.name += " reversed" - newcards += card - cards -= card - cards = newcards - playsound(user, 'sound/items/cardshuffle.ogg', 50, 1) - user.visible_message(span_notice("[user] shuffles [src]."), span_notice("You shuffle [src].")) - cooldown = world.time +/obj/item/deck/tarot/deckshuffle(mob/user) + if(!COOLDOWN_FINISHED(src, shuffle_cooldown) || !iscarbon(user) || user.incapacitated() || HAS_TRAIT(user, TRAIT_HANDS_BLOCKED)) + return + + COOLDOWN_START(src, shuffle_cooldown, 1 SECONDS) + var/list/newcards = list() + while(cards.len) + var/datum/playingcard/card = pick_n_take(cards) + card.name = replacetext(card.name," reversed", "") + if(prob(50)) + card.name += " reversed" + newcards += card + cards = newcards + playsound(user, 'sound/items/cardshuffle.ogg', 50, TRUE) + user.visible_message(span_notice("[user] shuffles [src]."), span_notice("You shuffle [src].")) diff --git a/code/modules/hydroponics/grown/kudzu.dm b/code/modules/hydroponics/grown/kudzu.dm index 1e36954e52c..b27f6449c3c 100644 --- a/code/modules/hydroponics/grown/kudzu.dm +++ b/code/modules/hydroponics/grown/kudzu.dm @@ -27,7 +27,8 @@ return BRUTELOSS /obj/item/seeds/kudzu/proc/plant(mob/user) - if(isspaceturf(user.loc)) + var/turf/user_turf = get_turf(user) + if(!user_turf || isspaceturf(user_turf) || is_location_within_transition_boundaries(user_turf)) return var/turf/T = get_turf(src) message_admins("Kudzu planted by [ADMIN_LOOKUPFLW(user)] at [ADMIN_COORDJMP(T)]") diff --git a/code/modules/lighting/lighting_area.dm b/code/modules/lighting/lighting_area.dm index 9639b3487a2..d90aacc18d7 100644 --- a/code/modules/lighting/lighting_area.dm +++ b/code/modules/lighting/lighting_area.dm @@ -11,14 +11,15 @@ GLOBAL_LIST_INIT_TYPED(fullbright_overlays, /mutable_appearance, list(create_ful /area luminosity = TRUE - ///The mutable appearance we underlay to show light - var/mutable_appearance/lighting_effect = null + ///List of mutable appearances we underlay to show light + ///In the form plane offset + 1 -> appearance to use + var/list/mutable_appearance/lighting_effects = null ///Whether this area has a currently active base lighting, bool var/area_has_base_lighting = FALSE ///alpha 0-255 of lighting_effect and thus baselighting intensity var/base_lighting_alpha = 0 ///The colour of the light acting on this area - var/base_lighting_color = null + var/base_lighting_color = COLOR_WHITE ///Whether this area allows static lighting and thus loads the lighting objects var/static_lighting = TRUE ///Whether this area is iluminated by starlight @@ -64,22 +65,34 @@ GLOBAL_LIST_INIT_TYPED(fullbright_overlays, /mutable_appearance, list(create_ful add_base_lighting() /area/proc/remove_base_lighting() + var/list/z_offsets = SSmapping.z_level_to_plane_offset for(var/turf/T in src) - T.cut_overlay(lighting_effect) - QDEL_NULL(lighting_effect) + if(z_offsets[T.z]) + T.cut_overlay(lighting_effects[z_offsets[T.z] + 1]) + cut_overlay(lighting_effects[1]) + QDEL_LIST(lighting_effects) area_has_base_lighting = FALSE /area/proc/add_base_lighting() - lighting_effect = mutable_appearance('icons/effects/alphacolors.dmi', "white") - lighting_effect.plane = LIGHTING_PLANE - lighting_effect.layer = LIGHTING_LAYER - lighting_effect.blend_mode = BLEND_ADD - lighting_effect.alpha = base_lighting_alpha - lighting_effect.color = base_lighting_color + lighting_effects = list() + for(var/offset in 0 to SSmapping.max_plane_offset) + var/mutable_appearance/lighting_effect = mutable_appearance('icons/effects/alphacolors.dmi', "white") + SET_PLANE_W_SCALAR(lighting_effect, LIGHTING_PLANE, offset) + lighting_effect.layer = LIGHTING_LAYER + lighting_effect.blend_mode = BLEND_ADD + lighting_effect.alpha = base_lighting_alpha + lighting_effect.color = base_lighting_color + lighting_effect.appearance_flags = RESET_TRANSFORM | RESET_ALPHA | RESET_COLOR + lighting_effects += lighting_effect + add_overlay(lighting_effects[1]) + var/list/z_offsets = SSmapping.z_level_to_plane_offset for(var/turf/T in src) - T.add_overlay(lighting_effect) T.luminosity = 1 - area_has_base_lighting = TRUE + // This outside loop is EXTREMELY hot because it's run by space tiles. Don't want no part in that + // We will only add overlays to turfs not on the first z layer, because that's a significantly lesser portion + // And we need to do them separate, or lighting will go fuckey + if(z_offsets[T.z]) + T.add_overlay(lighting_effects[z_offsets[T.z] + 1]) /area/proc/update_static_lighting(new_static_value) if(new_static_value == static_lighting) diff --git a/code/modules/lighting/lighting_turf.dm b/code/modules/lighting/lighting_turf.dm index 001908d0504..2a23c709a04 100644 --- a/code/modules/lighting/lighting_turf.dm +++ b/code/modules/lighting/lighting_turf.dm @@ -107,11 +107,16 @@ lighting_build_overlay() else lighting_clear_overlay() - //Inherit overlay of new area - if(old_area.lighting_effect) - cut_overlay(old_area.lighting_effect) - if(new_area.lighting_effect) - add_overlay(new_area.lighting_effect) + + // We will only run this logic on turfs off the prime z layer + // Since on the prime z layer, we use an overlay on the area instead, to save time + if(SSmapping.z_level_to_plane_offset[z]) + var/index = SSmapping.z_level_to_plane_offset[z] + //Inherit overlay of new area + if(old_area.lighting_effects) + cut_overlay(old_area.lighting_effects[index]) + if(new_area.lighting_effects) + add_overlay(new_area.lighting_effects[index]) ///Proc to add movable sources of opacity on the turf and let it handle lighting code. /turf/proc/add_opacity_source(atom/movable/new_source) diff --git a/code/modules/mining/equipment/explorer_gear.dm b/code/modules/mining/equipment/explorer_gear.dm index d147901fda7..82abf5c9b97 100644 --- a/code/modules/mining/equipment/explorer_gear.dm +++ b/code/modules/mining/equipment/explorer_gear.dm @@ -205,6 +205,18 @@ item_color = "darktemplar-chaplain0" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/champion/templar/premium +/obj/item/clothing/head/helmet/space/hardsuit/champion/inquisitor + name = "inquisitor's helmet" + desc = "A helmet worn by those who deal with paranormal threats for a living." + icon_state = "hardsuit0-inquisitor" + item_color = "inquisitor" + +/obj/item/clothing/suit/space/hardsuit/champion/inquisitor + name = "inquisitor's hardsuit" + desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats." + icon_state = "hardsuit-inquisitor" + helmettype = /obj/item/clothing/head/helmet/space/hardsuit/champion/inquisitor + /obj/item/clothing/suit/hooded/pathfinder name = "pathfinder cloak" desc = "A thick cloak woven from sinew and hides, designed to protect its wearer from hazardous weather." diff --git a/code/modules/mining/lavaland/necropolis_chests.dm b/code/modules/mining/lavaland/necropolis_chests.dm index bd0987ea2cd..a3b07034c18 100644 --- a/code/modules/mining/lavaland/necropolis_chests.dm +++ b/code/modules/mining/lavaland/necropolis_chests.dm @@ -12,8 +12,7 @@ desc = "It's watching you suspiciously." /obj/structure/closet/crate/necropolis/tendril/populate_contents() - var/loot = rand(1, 32) - switch(loot) + switch(rand(1, 32)) if(1) new /obj/item/shared_storage/red(src) if(2) @@ -42,7 +41,7 @@ if(11) new /obj/item/ship_in_a_bottle(src) if(12) - new /obj/item/clothing/suit/space/hardsuit/champion(src) + new /obj/item/grenade/clusterbuster/inferno(src) if(13) new /obj/item/jacobs_ladder(src) if(14) @@ -66,15 +65,19 @@ new /obj/item/gun/magic/hook(src) if(22) new /obj/item/voodoo(src) - if(23) - new /obj/item/grenade/clusterbuster/inferno(src) - if(24) - if(prob(60)) - new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) - new /obj/item/clothing/suit/space/hardsuit/champion/templar(src) - else - new /obj/item/reagent_containers/food/drinks/bottle/holywater(src) - new /obj/item/clothing/suit/space/hardsuit/champion/templar/premium(src) + if(23, 24) + switch(rand(1, 4)) + if(1) + new /obj/item/clothing/suit/space/hardsuit/champion(src) + if(2) + new /obj/item/clothing/suit/space/hardsuit/champion/templar(src) + new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) + if(3) + new /obj/item/clothing/suit/space/hardsuit/champion/templar/premium(src) + new /obj/item/reagent_containers/food/drinks/bottle/holywater(src) + if(4) + new /obj/item/clothing/suit/space/hardsuit/champion/inquisitor(src) + new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src) if(25) new /obj/item/eflowers(src) if(26) @@ -85,8 +88,7 @@ new /obj/item/grenade/plastic/miningcharge/mega(src) new /obj/item/grenade/plastic/miningcharge/mega(src) if(28) - var/mega = rand(1, 4) - switch(mega) + switch(rand(1, 4)) if(1) new /obj/item/twohanded/kinetic_crusher/mega(src) if(2) @@ -348,6 +350,9 @@ item_flags = NO_PIXEL_RANDOM_DROP contents = newlist(/obj/item/cursed_katana) +/obj/item/organ/internal/cyberimp/arm/katana/prepare_eat() + return + /obj/item/organ/internal/cyberimp/arm/katana/attack_self(mob/living/carbon/user, modifiers) . = ..() to_chat(user, span_warning("The mass goes up your arm and inside it!")) diff --git a/code/modules/mob/hear_say.dm b/code/modules/mob/hear_say.dm index 2423c8eca1e..c8f558f798d 100644 --- a/code/modules/mob/hear_say.dm +++ b/code/modules/mob/hear_say.dm @@ -148,7 +148,7 @@ // Create map text message if (client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) // can_hear is checked up there on L99 - create_chat_message(speaker, message_clean, FALSE, italics) + create_chat_message(speaker, message_clean, italics ? list("italics") : null) var/effect = SOUND_EFFECT_NONE if(isrobot(speaker)) @@ -218,7 +218,7 @@ else to_chat(src, "[part_a][track || speaker_name][part_b][message]") if(client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) - create_chat_message(speaker, message_clean, TRUE, FALSE) + create_chat_message(speaker, message_clean, list("radio")) if(src != speaker || isrobot(src) || isAI(src)) var/effect = SOUND_EFFECT_RADIO if(isrobot(speaker)) @@ -284,7 +284,7 @@ name = speaker.voice_name if((client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) && can_hear()) - create_chat_message(H, message_clean, TRUE, FALSE) + create_chat_message(H, message_clean, list("radio")) var/effect = SOUND_EFFECT_RADIO if(isrobot(speaker)) diff --git a/code/modules/mob/inventory.dm b/code/modules/mob/inventory.dm index 799cf7cd771..0350f111859 100644 --- a/code/modules/mob/inventory.dm +++ b/code/modules/mob/inventory.dm @@ -305,7 +305,7 @@ if(QDELING(I)) return FALSE - if(!force && !put_in_hand_check(I, hand_id)) + if(!put_in_hand_check(I, hand_id) && !force) return FALSE if(!ignore_anim) @@ -616,11 +616,10 @@ * and not actually wearing it in any REAL equipment slot. */ /mob/proc/is_general_slot(slot) - return (slot & (ITEM_SLOT_HANDS|ITEM_SLOT_POCKETS|ITEM_SLOT_BACKPACK|ITEM_SLOT_HANDCUFFED|ITEM_SLOT_LEGCUFFED)) + return (slot & (ITEM_SLOT_HANDS|ITEM_SLOT_POCKETS|ITEM_SLOT_BACKPACK|ITEM_SLOT_HANDCUFFED|ITEM_SLOT_LEGCUFFED|ITEM_SLOT_ACCESSORY)) -//Outdated but still in use apparently. This should at least be a human proc. -//Daily reminder to murder this - Remie. +/// Collects all items in possibly equipped slots. /mob/proc/get_equipped_items(include_pockets = FALSE, include_hands = FALSE) var/list/items = list() if(back) @@ -635,6 +634,20 @@ return items +/// Same as above but we get slots, not items. +/mob/proc/get_equipped_slots(include_pockets = FALSE, include_hands = FALSE) + . = NONE + if(back) + . |= ITEM_SLOT_BACK + if(wear_mask) + . |= ITEM_SLOT_MASK + if(include_hands) + if(l_hand) + . |= ITEM_SLOT_HAND_LEFT + if(r_hand) + . |= ITEM_SLOT_HAND_RIGHT + + /mob/proc/get_all_slots() return list(wear_mask, back, l_hand, r_hand) diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index 0e312050531..fc08585f6a6 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -154,3 +154,13 @@ items += l_store return items + +/mob/living/carbon/alien/humanoid/get_equipped_slots(include_pockets = FALSE, include_hands = FALSE) + . = ..() + if(!include_pockets) + return . + if(r_store) + . |= ITEM_SLOT_POCKET_RIGHT + if(l_store) + . |= ITEM_SLOT_POCKET_LEFT + diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm index 2ee5d8b90e6..ed3553deac3 100644 --- a/code/modules/mob/living/carbon/brain/MMI.dm +++ b/code/modules/mob/living/carbon/brain/MMI.dm @@ -241,7 +241,7 @@ syndiemmi = 1 -/obj/item/mmi/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target) +/obj/item/mmi/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) if(!brainmob) return FALSE if(!parent) diff --git a/code/modules/mob/living/carbon/brain/robotic_brain.dm b/code/modules/mob/living/carbon/brain/robotic_brain.dm index 9891c385e87..d08865e23ca 100644 --- a/code/modules/mob/living/carbon/brain/robotic_brain.dm +++ b/code/modules/mob/living/carbon/brain/robotic_brain.dm @@ -148,7 +148,7 @@ radio_action.UpdateButtonIcon() -/obj/item/mmi/robotic_brain/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target) +/obj/item/mmi/robotic_brain/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) . = ..() if(. && imprinted_master) to_chat(target, span_dangerbigger("You are permanently imprinted to [imprinted_master], obey [imprinted_master]'s every order and assist [imprinted_master.p_them()] in completing [imprinted_master.p_their()] goals at any cost.")) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index d8ff7147110..1d586409677 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -369,7 +369,7 @@ msg += "[p_they(TRUE)] [p_are()] mostly desiccated now, with only bones remaining of what used to be a person.\n" if(hasHUD(user, EXAMINE_HUD_SECURITY_READ)) - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/criminal = "None" var/commentLatest = "ERROR: Unable to locate a data core entry for this person." //If there is no datacore present, give this @@ -391,7 +391,7 @@ msg += "Latest entry: [commentLatest]\n" if(hasHUD(user, EXAMINE_HUD_SKILLS)) - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/skills if(perpname) @@ -407,7 +407,7 @@ if(hasHUD(user,EXAMINE_HUD_MEDICAL)) - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/medical = "None" for(var/datum/data/record/E in GLOB.data_core.general) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index f7d018cffaf..dc023531352 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -514,7 +514,7 @@ return name //repurposed proc. Now it combines get_id_name() and get_face_name() to determine a mob's name variable. Made into a seperate proc as it'll be useful elsewhere -/mob/living/carbon/human/get_visible_name(var/id_override = FALSE) +/mob/living/carbon/human/get_visible_name(add_id_name = TRUE) if(name_override) return name_override if(wear_mask && (wear_mask.flags_inv & HIDENAME)) //Wearing a mask which hides our face, use id-name if possible @@ -523,7 +523,7 @@ return get_id_name("Unknown") //Likewise for hats var/face_name = get_face_name() var/id_name = get_id_name("") - if(id_name && (id_name != face_name) && !id_override) + if(add_id_name && id_name && (id_name != face_name)) return "[face_name] (as [id_name])" return face_name @@ -730,7 +730,7 @@ if(usr.incapacitated()) return var/found_record = 0 - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) if(perpname != "Unknown") for(var/datum/data/record/E in GLOB.data_core.general) @@ -771,7 +771,7 @@ if(hasHUD(usr, EXAMINE_HUD_SECURITY_READ)) if(usr.incapacitated()) return - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/read = 0 for(var/datum/data/record/E in GLOB.data_core.general) @@ -795,7 +795,7 @@ if(hasHUD(usr, EXAMINE_HUD_SECURITY_READ)) if(usr.incapacitated() && !isobserver(usr)) //give the ghosts access to "View Comment Log" while they can't manipulate it return - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/read = 0 for(var/datum/data/record/E in GLOB.data_core.general) @@ -829,7 +829,7 @@ if(usr.incapacitated()) return var/modified = 0 - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) for(var/datum/data/record/E in GLOB.data_core.general) if(E.fields["name"] == perpname) @@ -855,7 +855,7 @@ if(usr.incapacitated()) return var/read = 0 - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) for(var/datum/data/record/E in GLOB.data_core.general) if(E.fields["name"] == perpname) @@ -879,7 +879,7 @@ if(hasHUD(usr, EXAMINE_HUD_MEDICAL)) if(usr.incapacitated()) return - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/read = FALSE for(var/datum/data/record/E in GLOB.data_core.general) @@ -913,7 +913,7 @@ return var/skills - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) if(perpname) for(var/datum/data/record/E in GLOB.data_core.general) if(E.fields["name"] == perpname) @@ -1100,6 +1100,7 @@ var/organ_path = species.has_organ[organ_slot] new organ_path(src) + recalculate_limbs_status() return TRUE @@ -1197,8 +1198,9 @@ * * Arguments: * * new_species - The new species to assign. + * * monkeybasic - If `TRUE` will skip randomization of the last SE block */ -/mob/living/carbon/human/proc/setup_dna(datum/species/new_species) +/mob/living/carbon/human/proc/setup_dna(datum/species/new_species, monkeybasic = FALSE) set_species(new_species, use_default_color = TRUE, delay_icon_update = TRUE, skip_same_check = TRUE) // Name real_name = dna.species.get_random_name(gender) @@ -1206,7 +1208,7 @@ mind?.name = real_name // DNA ready - dna.ready_dna(src) + dna.ready_dna(src, TRUE, monkeybasic) dna.real_name = real_name dna.tts_seed_dna = tts_seed sync_organ_dna() @@ -1243,7 +1245,7 @@ * * transfer_special_internals - If `TRUE`, all special internal organs (implants, spider eggs, xeno embryos, etc.), will be present on the mob post-change. Does not affect racial internal organs (heart, liver, etc.). * * save_appearance - If `TRUE`, all bodyparts appearances (head hair style, body tattoos, tail type, etc.) will be transfered to new species. */ -/mob/living/carbon/human/proc/set_species(datum/species/new_species, use_default_color, delay_icon_update = FALSE, skip_same_check = FALSE, retain_damage = FALSE, transformation = FALSE, keep_missing_bodyparts = FALSE, transfer_special_internals = TRUE, save_appearance = FALSE) +/mob/living/carbon/human/proc/set_species(datum/species/new_species, use_default_color = FALSE, delay_icon_update = FALSE, skip_same_check = FALSE, retain_damage = FALSE, transformation = FALSE, keep_missing_bodyparts = FALSE, transfer_special_internals = TRUE, save_appearance = FALSE) if(!skip_same_check && dna.species.name == initial(new_species.name)) return @@ -1606,7 +1608,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X //Check for arrest warrant if(judgebot.check_records) - var/perpname = get_visible_name(TRUE) + var/perpname = get_visible_name(add_id_name = FALSE) var/datum/data/record/R = find_record("name", perpname, GLOB.data_core.security) if(R && R.fields["criminal"]) switch(R.fields["criminal"]) @@ -1943,7 +1945,7 @@ Eyes need to have significantly high darksight to shine unless the mob has the X . += "---" /mob/living/carbon/human/adjust_nutrition(change) - if(NO_HUNGER in dna.species.species_traits) + if((NO_HUNGER in dna.species.species_traits) && !isvampire(src)) return FALSE . = ..() update_hunger_slowdown() diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index f5d69da92e6..6445e109b15 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -96,9 +96,9 @@ INVOKE_ASYNC(src, PROC_REF(emote), "scream") -/mob/living/carbon/human/set_usable_legs(new_value) +/mob/living/carbon/human/set_usable_legs(new_value, special = ORGAN_MANIPULATION_DEFAULT) . = ..() - if(isnull(.)) + if(isnull(.) || special != ORGAN_MANIPULATION_DEFAULT) return . if(. == 0) @@ -113,9 +113,9 @@ update_fractures_slowdown() -/mob/living/carbon/human/set_usable_hands(new_value) +/mob/living/carbon/human/set_usable_hands(new_value, special = ORGAN_MANIPULATION_DEFAULT) . = ..() - if(isnull(.)) + if(isnull(.) || special != ORGAN_MANIPULATION_DEFAULT) return . if(. == 0) @@ -148,8 +148,6 @@ if(usable_legs < default_num_legs) limbless_slowdown += (default_num_legs - usable_legs) * 4 - get_crutches() if(!usable_legs) - if(has_pain()) - INVOKE_ASYNC(src, PROC_REF(emote), "scream") ADD_TRAIT(src, TRAIT_FLOORED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) if(usable_hands < default_num_hands) limbless_slowdown += (default_num_hands - usable_hands) * 4 @@ -166,6 +164,26 @@ update_obesity_slowdown() +/// Proc used to recalculate traits and slowdowns after species change. +/mob/living/carbon/human/proc/recalculate_limbs_status() + if(usable_legs > 0) // gained leg usage + REMOVE_TRAIT(src, TRAIT_FLOORED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) + REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) + else if(usable_legs == 0 && !(movement_type & (FLYING|FLOATING))) // lost leg usage, not flying + ADD_TRAIT(src, TRAIT_FLOORED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) + if(usable_hands == 0) // lost hand usage + ADD_TRAIT(src, TRAIT_IMMOBILIZED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) + + if(usable_hands > 0) // gained hand usage + REMOVE_TRAIT(src, TRAIT_HANDS_BLOCKED, LACKING_MANIPULATION_APPENDAGES_TRAIT) + else if(usable_hands == 0) // lost hand usage + ADD_TRAIT(src, TRAIT_HANDS_BLOCKED, LACKING_MANIPULATION_APPENDAGES_TRAIT) + + update_limbless_slowdown() + update_fractures_slowdown() + update_hands_HUD() + + /// Proc used to inflict stamina damage when user is moving from no gravity to positive gravity. /mob/living/carbon/human/proc/thunk() if(buckled || incorporeal_move || mob_negates_gravity()) diff --git a/code/modules/mob/living/carbon/human/human_organs.dm b/code/modules/mob/living/carbon/human/human_organs.dm index dd4d4892edb..98cb53a2f28 100644 --- a/code/modules/mob/living/carbon/human/human_organs.dm +++ b/code/modules/mob/living/carbon/human/human_organs.dm @@ -187,10 +187,14 @@ var/mob/living/holder = thing.loc holder.drop_item_ground(thing) - if(embedded_zone && !get_organ(embedded_zone)) - embedded_zone = BODY_ZONE_CHEST + var/obj/item/organ/external/bodypart + if(embedded_zone) + bodypart = get_organ(embedded_zone) + if(!bodypart) + bodypart = get_organ(BODY_ZONE_CHEST) + else + bodypart = safepick(bodyparts) - var/obj/item/organ/external/bodypart = embedded_zone ? embedded_zone : safepick(bodyparts) if(!bodypart) return FALSE @@ -216,7 +220,7 @@ var/counter = 0 for(var/obj/item/organ/external/bodypart as anything in bodyparts) counter += bodypart.remove_all_embedded_objects(drop_loc, clear_alert = FALSE) - clear_alert("embeddedobject") + clear_alert(ALERT_EMBEDDED) return counter diff --git a/code/modules/mob/living/carbon/human/inventory.dm b/code/modules/mob/living/carbon/human/inventory.dm index ee5d86ac819..a9bd98bbde5 100644 --- a/code/modules/mob/living/carbon/human/inventory.dm +++ b/code/modules/mob/living/carbon/human/inventory.dm @@ -609,6 +609,37 @@ return items +/mob/living/carbon/human/get_equipped_slots(include_pockets = FALSE, include_hands = FALSE) + . = ..() + if(belt) + . |= ITEM_SLOT_BELT + if(l_ear) + . |= ITEM_SLOT_EAR_LEFT + if(r_ear) + . |= ITEM_SLOT_EAR_RIGHT + if(glasses) + . |= ITEM_SLOT_EYES + if(gloves) + . |= ITEM_SLOT_GLOVES + if(neck) + . |= ITEM_SLOT_NECK + if(shoes) + . |= ITEM_SLOT_FEET + if(wear_id) + . |= ITEM_SLOT_ID + if(wear_pda) + . |= ITEM_SLOT_PDA + if(w_uniform) + . |= ITEM_SLOT_CLOTH_INNER + if(include_pockets) + if(r_store) + . |= ITEM_SLOT_POCKET_RIGHT + if(l_store) + . |= ITEM_SLOT_POCKET_LEFT + if(s_store) + . |= ITEM_SLOT_SUITSTORE + + /mob/living/carbon/human/equipped_speed_mods() . = ..() for(var/obj/item/thing as anything in get_equipped_items()) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 017fb7cd3c0..77f54b30428 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -828,7 +828,7 @@ /mob/living/carbon/human/proc/handle_nutrition_alerts() //This is a terrible abuse of the alert system; something like this should be a HUD element - if(NO_HUNGER in dna.species.species_traits) + if((NO_HUNGER in dna.species.species_traits) && !isvampire(src)) return var/new_hunger @@ -851,7 +851,7 @@ if(dna.species.hunger_level != new_hunger) dna.species.hunger_level = new_hunger - throw_alert("nutrition", "/atom/movable/screen/alert/hunger/[new_hunger]", icon_override = dna.species.hunger_icon) + throw_alert(ALERT_NUTRITION, text2path("/atom/movable/screen/alert/hunger/[new_hunger]"), icon_override = dna.species.hunger_icon) med_hud_set_status() diff --git a/code/modules/mob/living/carbon/human/monkey.dm b/code/modules/mob/living/carbon/human/monkey.dm index acdd0e9c5ca..af944459eb9 100644 --- a/code/modules/mob/living/carbon/human/monkey.dm +++ b/code/modules/mob/living/carbon/human/monkey.dm @@ -1,37 +1,44 @@ /mob/living/carbon/human/lesser - var/master_commander = null //переменная хранящая владельца "животного" + icon = 'icons/mob/monkey.dmi' // for mappers + var/master_commander = null var/sentience_type = SENTIENCE_ORGANIC - //holder_type = /obj/item/holder/monkey //Задыхается сидя на голове или в сумке, временно отключен -/mob/living/carbon/human/lesser/Initialize(mapload, species) - icon = null - . = ..(mapload, species) - -/mob/living/carbon/human/lesser/setup_dna(datum/species/new_species) +/mob/living/carbon/human/lesser/setup_dna(datum/species/new_species, monkeybasic = TRUE) . = ..() - dna.SetSEState(GLOB.monkeyblock, TRUE) + // since we are created as monkas we need to manually set our GLOB.monkeyblock as activated LAZYOR(active_genes, /datum/dna/gene/monkey) +/mob/living/carbon/human/lesser/monkey + icon_state = "monkey1" + /mob/living/carbon/human/lesser/monkey/Initialize(mapload) . = ..(mapload, /datum/species/monkey) tts_seed = "Sniper" +/mob/living/carbon/human/lesser/farwa + icon_state = "tajkey1" + /mob/living/carbon/human/lesser/farwa/Initialize(mapload) . = ..(mapload, /datum/species/monkey/tajaran) tts_seed = "Gyro" - //holder_type = /obj/item/holder/farwa + +/mob/living/carbon/human/lesser/wolpin + icon_state = "wolfling" /mob/living/carbon/human/lesser/wolpin/Initialize(mapload) . = ..(mapload, /datum/species/monkey/vulpkanin) tts_seed = "Bloodseeker" - //holder_type = /obj/item/holder/farwa + +/mob/living/carbon/human/lesser/neara + icon_state = "skrellkey1" /mob/living/carbon/human/lesser/neara/Initialize(mapload) . = ..(mapload, /datum/species/monkey/skrell) tts_seed = "Bounty" - //holder_type = /obj/item/holder/neara + +/mob/living/carbon/human/lesser/stok + icon_state = "stokkey1" /mob/living/carbon/human/lesser/stok/Initialize(mapload) . = ..(mapload, /datum/species/monkey/unathi) tts_seed = "Witchdoctor" - //holder_type = /obj/item/holder/stok diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 2ccc89a755b..b2b64666251 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -44,7 +44,7 @@ var/heat_level_3 = 460 // Heat damage level 3 above this point; used for body temperature var/heatmod = 1 // Damage multiplier for being in a hot environment - var/body_temperature = 310.15 //non-IS_SYNTHETIC species will try to stabilize at this temperature. (also affects temperature processing) + var/body_temperature = BODYTEMP_NORMAL //non-IS_SYNTHETIC species will try to stabilize at this temperature. (also affects temperature processing) var/reagent_tag //Used for metabolizing reagents. var/hunger_drain = HUNGER_FACTOR var/digestion_ratio = 1 //How quickly the species digests/absorbs reagents. @@ -281,6 +281,9 @@ new organ_path(target) + // and now we need to recheck our limbs conditions + target.recalculate_limbs_status() + /datum/species/proc/breathe(mob/living/carbon/human/H) if((NO_BREATHE in species_traits) || (BREATHLESS in H.mutations)) diff --git a/code/modules/mob/living/carbon/human/species/monkey.dm b/code/modules/mob/living/carbon/human/species/monkey.dm index 5766a3adfb2..698d26ed842 100644 --- a/code/modules/mob/living/carbon/human/species/monkey.dm +++ b/code/modules/mob/living/carbon/human/species/monkey.dm @@ -81,6 +81,11 @@ H.meatleft = initial(H.meatleft) +/datum/species/monkey/handle_dna(mob/living/carbon/human/H, remove) + . = ..() + H.force_gene_block(GLOB.monkeyblock, !remove) + + /datum/species/monkey/can_understand(mob/other) return istype(other, /mob/living/simple_animal/hostile/gorilla) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index cad61534227..ffc34e79246 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -470,7 +470,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) if(gender == FEMALE) g = "f" // DNA2 - Drawing underlays. - for(var/datum/dna/gene/gene in GLOB.dna_genes) + for(var/datum/dna/gene/gene as anything in GLOB.dna_genes) if(!gene.block) continue if(gene.is_active(src)) @@ -730,6 +730,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) update_misc_effects() + /mob/living/carbon/human/update_inv_ears() remove_overlay(EARS_LAYER) if(client && hud_used) @@ -739,34 +740,43 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) inv?.update_icon() if(l_ear || r_ear) + var/mutable_appearance/standing = new + standing.appearance_flags = KEEP_TOGETHER + standing.layer = -EARS_LAYER + if(l_ear) - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - l_ear.screen_loc = ui_l_ear //...draw the item in the inventory screen - client.screen += l_ear //Either way, add the item to the HUD + if(client && hud_used?.hud_shown) + if(hud_used.inventory_shown) + l_ear.screen_loc = ui_l_ear + client.screen += l_ear var/t_type = l_ear.item_state if(!t_type) t_type = l_ear.icon_state + if(l_ear.sprite_sheets && l_ear.sprite_sheets[dna.species.name]) - overlays_standing[EARS_LAYER] = mutable_appearance(l_ear.sprite_sheets[dna.species.name], "[t_type]", layer = -EARS_LAYER) + standing.overlays += mutable_appearance(l_ear.sprite_sheets[dna.species.name], "[t_type]") else - overlays_standing[EARS_LAYER] = mutable_appearance(l_ear.onmob_sheets[ITEM_SLOT_EAR_LEFT_STRING], "[t_type]", layer = -EARS_LAYER) + standing.overlays += mutable_appearance(l_ear.onmob_sheets[ITEM_SLOT_EAR_LEFT_STRING], "[t_type]") if(r_ear) - if(client && hud_used && hud_used.hud_shown) - if(hud_used.inventory_shown) //if the inventory is open ... - r_ear.screen_loc = ui_r_ear //...draw the item in the inventory screen - client.screen += r_ear //Either way, add the item to the HUD + if(client && hud_used?.hud_shown) + if(hud_used.inventory_shown) + r_ear.screen_loc = ui_r_ear + client.screen += r_ear var/t_type = r_ear.item_state if(!t_type) t_type = r_ear.icon_state + if(r_ear.sprite_sheets && r_ear.sprite_sheets[dna.species.name]) - overlays_standing[EARS_LAYER] = mutable_appearance(r_ear.sprite_sheets[dna.species.name], "[t_type]", layer = -EARS_LAYER) + standing.overlays += mutable_appearance(r_ear.sprite_sheets[dna.species.name], "[t_type]") else - overlays_standing[EARS_LAYER] = mutable_appearance(r_ear.onmob_sheets[ITEM_SLOT_EAR_RIGHT_STRING], "[t_type]", layer = -EARS_LAYER) - apply_overlay(EARS_LAYER) + standing.overlays += mutable_appearance(r_ear.onmob_sheets[ITEM_SLOT_EAR_RIGHT_STRING], "[t_type]") + + overlays_standing[EARS_LAYER] = standing + apply_overlay(EARS_LAYER) + /mob/living/carbon/human/update_inv_shoes() remove_overlay(SHOES_LAYER) @@ -850,7 +860,7 @@ GLOBAL_LIST_EMPTY(damage_icon_parts) inv?.update_icon() if(belt) - if(hud_used?.hud_shown && belt) + if(client && hud_used?.hud_shown) client.screen += belt belt.screen_loc = ui_belt diff --git a/code/modules/mob/living/carbon/inventory.dm b/code/modules/mob/living/carbon/inventory.dm index 5b9b840666c..8685bd8db8c 100644 --- a/code/modules/mob/living/carbon/inventory.dm +++ b/code/modules/mob/living/carbon/inventory.dm @@ -351,7 +351,7 @@ if(I.item_flags & NOPICKUP) return FALSE - if(!(mobility_flags & MOBILITY_PICKUP) && !(I.flags & ABSTRACT)) + if(!(mobility_flags & MOBILITY_PICKUP) && !(I.item_flags & ABSTRACT)) return FALSE if(hand_id == ITEM_SLOT_HAND_LEFT && !has_left_hand()) @@ -496,6 +496,14 @@ return items +/mob/living/carbon/get_equipped_slots(include_pockets = FALSE, include_hands = FALSE) + . = ..() + if(wear_suit) + . |= ITEM_SLOT_CLOTH_OUTER + if(head) + . |= ITEM_SLOT_HEAD + + /mob/living/carbon/update_equipment_speed_mods() . = ..() update_limbless_slowdown() // in case we get crutches diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 18b76208413..8374fef3854 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -110,11 +110,13 @@ Drowsy(effect * blocked) if(JITTER) Jitter(effect * blocked) + if(KNOCKDOWN) + Knockdown(effect * blocked) updatehealth("apply effect") return TRUE -/mob/living/proc/apply_effects(stun = 0, weaken = 0, paralyze = 0, irradiate = 0, slur = 0,stutter = 0, eyeblur = 0, drowsy = 0, blocked = 0, stamina = 0, jitter = 0) +/mob/living/proc/apply_effects(blocked = 0, stun = 0, weaken = 0, paralyze = 0, irradiate = 0, slur = 0,stutter = 0, eyeblur = 0, drowsy = 0, stamina = 0, jitter = 0, knockdown = 0) if(blocked >= 100) return FALSE if(stun) @@ -137,6 +139,8 @@ apply_damage(stamina, STAMINA, null, blocked) if(jitter) apply_effect(jitter, JITTER, blocked) + if(knockdown) + apply_effect(knockdown, KNOCKDOWN, blocked) return TRUE diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 2ce405aa32a..387b102de35 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -27,6 +27,8 @@ if(mobility_flags & MOBILITY_REST) verbs += /mob/living/proc/toggle_resting + if(!density) // we want undense mobs to stay undense when they stop resting + ADD_TRAIT(src, TRAIT_UNDENSE, INNATE_TRAIT) GLOB.mob_living_list += src @@ -1110,9 +1112,6 @@ to_chat(src, "You're too exhausted to keep going...") Weaken(10 SECONDS) -/mob/living/proc/get_visible_name() - return name - /mob/living/proc/is_facehugged() return FALSE @@ -1175,7 +1174,7 @@ ///Proc to modify the value of usable_legs and hook behavior associated to this event. -/mob/living/proc/set_usable_legs(new_value) +/mob/living/proc/set_usable_legs(new_value, special = ORGAN_MANIPULATION_DEFAULT) if(usable_legs == new_value) return if(new_value < 0) // Sanity check @@ -1185,6 +1184,9 @@ . = usable_legs usable_legs = new_value + if(special != ORGAN_MANIPULATION_DEFAULT) + return . + if(new_value > .) // Gained leg usage. REMOVE_TRAIT(src, TRAIT_FLOORED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) @@ -1206,12 +1208,15 @@ ///Proc to modify the value of usable_hands and hook behavior associated to this event. -/mob/living/proc/set_usable_hands(new_value) +/mob/living/proc/set_usable_hands(new_value, special = ORGAN_MANIPULATION_DEFAULT) if(usable_hands == new_value) return . = usable_hands usable_hands = new_value + if(special != ORGAN_MANIPULATION_DEFAULT) + return . + if(new_value > .) // Gained hand usage. REMOVE_TRAIT(src, TRAIT_IMMOBILIZED, LACKING_LOCOMOTION_APPENDAGES_TRAIT) else if(!(movement_type & (FLYING|FLOATING)) && !usable_hands && !usable_legs) //Lost a hand, not flying, no hands left, no legs. diff --git a/code/modules/mob/living/living_say.dm b/code/modules/mob/living/living_say.dm index 0eb607e19a0..9cb06cce5fd 100644 --- a/code/modules/mob/living/living_say.dm +++ b/code/modules/mob/living/living_say.dm @@ -415,18 +415,6 @@ GLOBAL_LIST_EMPTY(channel_to_radio_key) O.hear_talk(M, message_pieces, verbage) -/obj/effect/speech_bubble - var/mob/parent - - -/mob/living/proc/GetVoice() - return name - - -/mob/living/proc/GetTTSVoice() - return tts_seed - - /mob/living/whisper(message as text) message = trim_strip_html_properly(message, 512) diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 1afd642e762..98c2e243f5e 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1368,7 +1368,7 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( //This communication is imperfect because the holopad "filters" voices and is only designed to connect to the master only. var/rendered = "Relayed Speech: [name_used] [message]" if(client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) - create_chat_message(M, message_clean, TRUE, FALSE) + create_chat_message(M, message_clean, list("radio")) show_message(rendered, 2) /mob/living/silicon/ai/proc/malfhacked(obj/machinery/power/apc/apc) diff --git a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm index f42eb2c3697..1280f1516fd 100644 --- a/code/modules/mob/living/silicon/ai/freelook/cameranet.dm +++ b/code/modules/mob/living/silicon/ai/freelook/cameranet.dm @@ -4,7 +4,7 @@ #define CHUNK_SIZE 16 // Only chunk sizes that are to the power of 2. E.g: 2, 4, 8, 16, etc.. /// Takes a position, transforms it into a chunk bounded position. Indexes at 1 so it'll land on actual turfs always -#define GET_CHUNK_COORD(v) (FLOOR(v, CHUNK_SIZE) + 1) +#define GET_CHUNK_COORD(v) (max((FLOOR(v, CHUNK_SIZE)), 1)) GLOBAL_DATUM_INIT(cameranet, /datum/cameranet, new()) /datum/cameranet diff --git a/code/modules/mob/living/silicon/silicon.dm b/code/modules/mob/living/silicon/silicon.dm index 7e74f02cba6..2b3aeae4257 100644 --- a/code/modules/mob/living/silicon/silicon.dm +++ b/code/modules/mob/living/silicon/silicon.dm @@ -193,11 +193,12 @@ return TRUE -/mob/living/silicon/handle_ventcrawl(obj/machinery/atmospherics/ventcrawl_target) +/mob/living/silicon/move_into_vent(obj/machinery/atmospherics/ventcrawl_target, message = TRUE) . = ..() - if(. == VENTCRAWL_IN_SUCCESS && inventory_head) - drop_hat() - visible_message("[name] опрокинул шляпу при залезании в вентиляцию!", "Помеха корпуса была утеряна.") + if(. && inventory_head) + drop_hat(drop_on_turf = TRUE) + if(message) + ventcrawl_target.visible_message("[name] опрокинул шляпу при залезании в вентиляцию!") /mob/living/silicon/robot/welder_act(mob/user, obj/item/I) diff --git a/code/modules/mob/living/silicon/silicon_hat.dm b/code/modules/mob/living/silicon/silicon_hat.dm index 94abb2e102f..9a137255af8 100644 --- a/code/modules/mob/living/silicon/silicon_hat.dm +++ b/code/modules/mob/living/silicon/silicon_hat.dm @@ -235,9 +235,13 @@ return TRUE -/mob/living/silicon/proc/drop_hat() + +/mob/living/silicon/proc/drop_hat(drop_on_turf = FALSE) if(inventory_head) - drop_item_ground(inventory_head) + if(drop_on_turf) + transfer_item_to_loc(inventory_head, get_turf(src)) + else + drop_item_ground(inventory_head) null_hat() regenerate_icons() diff --git a/code/modules/mob/living/silicon/silicon_say.dm b/code/modules/mob/living/silicon/silicon_say.dm index 675581f848f..9ab2217e618 100644 --- a/code/modules/mob/living/silicon/silicon_say.dm +++ b/code/modules/mob/living/silicon/silicon_say.dm @@ -79,7 +79,7 @@ var/message_tts = combine_message_tts(message_pieces, src) if((client?.prefs.toggles2 & PREFTOGGLE_2_RUNECHAT) && can_hear()) - create_chat_message(H, message_clean, TRUE, FALSE) + create_chat_message(H, message_clean, list("radio")) INVOKE_ASYNC(GLOBAL_PROC, /proc/tts_cast, H, src, message_tts, tts_seed, FALSE, SOUND_EFFECT_NONE) log_debug("holopad_talk(): [message_clean]") for(var/mob/M in hearers(T.loc))//The location is the object, default distance. diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm index 3d816c05759..c6a3185c47d 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm @@ -37,7 +37,9 @@ Difficulty: Medium retreat_distance = 5 minimum_distance = 5 pixel_x = -32 + base_pixel_x = -32 pixel_y = -16 + base_pixel_y = -16 maptext_height = 96 maptext_width = 96 ranged_cooldown_time = 20 @@ -56,10 +58,9 @@ Difficulty: Medium stat_attack = UNCONSCIOUS // Overriden from /tg/ - otherwise Legion starts chasing its minions - /mob/living/simple_animal/hostile/megafauna/legion/Initialize(mapload) . = ..() - transform *= 2 + update_transform(2) ADD_TRAIT(src, TRAIT_NO_FLOATING_ANIM, INNATE_TRAIT) AddElement(/datum/element/simple_flying) @@ -67,17 +68,18 @@ Difficulty: Medium /mob/living/simple_animal/hostile/megafauna/legion/enrage() health = 1250 maxHealth = 1250 - transform /= 1.5 + update_transform(0.66) loot = list(/datum/nothing) crusher_loot = list(/datum/nothing) - var/mob/living/simple_animal/hostile/megafauna/legion/legiontwo = new /mob/living/simple_animal/hostile/megafauna/legion(get_turf(src)) - legiontwo.transform /= 1.5 + var/mob/living/simple_animal/hostile/megafauna/legion/legiontwo = new(get_turf(src)) + legiontwo.update_transform(0.66) legiontwo.loot = list(/datum/nothing) legiontwo.crusher_loot = list(/datum/nothing) legiontwo.health = 1250 legiontwo.maxHealth = 1250 legiontwo.enraged = TRUE + /mob/living/simple_animal/hostile/megafauna/legion/unrage() . = ..() for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_list) @@ -86,7 +88,9 @@ Difficulty: Medium other.crusher_loot = list(/obj/item/storm_staff, /obj/item/crusher_trophy/empowered_legion_skull) other.maxHealth = 2500 other.health = 2500 - qdel(src) //Suprise, it's the one on lavaland that regrows to full. + if(!QDELETED(src)) + qdel(src) //Suprise, it's the one on lavaland that regrows to full. + /mob/living/simple_animal/hostile/megafauna/legion/death(gibbed) for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_list) @@ -95,15 +99,8 @@ Difficulty: Medium other.crusher_loot = list(/obj/item/storm_staff, /obj/item/crusher_trophy/empowered_legion_skull) return ..() UnlockBlastDoors("11119") - ..() + return ..() -/mob/living/simple_animal/hostile/megafauna/legion/adjustHealth(damage, updating_health) - . = ..() - if(!GLOB.necropolis_gate) - return - if(GLOB.necropolis_gate.legion_triggered) - return - GLOB.necropolis_gate.toggle_the_gate(src, TRUE) /mob/living/simple_animal/hostile/megafauna/legion/AttackingTarget() . = ..() @@ -209,24 +206,33 @@ Difficulty: Medium var/armor = M.run_armor_check(limb_to_hit, LASER) M.apply_damage(70 - ((health / maxHealth) * 20), BURN, limb_to_hit, armor) + /mob/living/simple_animal/hostile/megafauna/legion/Process_Spacemove(movement_dir = NONE) return TRUE + /mob/living/simple_animal/hostile/megafauna/legion/adjustHealth(amount, updating_health = TRUE) . = ..() - if(QDELETED(src)) - return - if(.) - update_transform((enraged ? 0.33 : 1) + (health / maxHealth)) - if(amount > 0 && (enraged || prob(33))) - var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A - if(enraged) - A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced(loc) - else - A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(loc) - A.GiveTarget(target) - A.friends = friends - A.faction = faction + + if(GLOB.necropolis_gate && !GLOB.necropolis_gate.legion_triggered) + GLOB.necropolis_gate.toggle_the_gate(src, TRUE) + + if(!. || QDELETED(src)) + return . + + // we shrink sprite until scaling reaches value of 0.5, no megafauna midgets plz + update_transform((0.5 + (health / maxHealth)) / current_size) + + if(amount > 0 && (enraged || prob(33))) + var/mob/living/simple_animal/hostile/asteroid/hivelordbrood/A + if(enraged) + A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion/advanced(loc) + else + A = new /mob/living/simple_animal/hostile/asteroid/hivelordbrood/legion(loc) + A.GiveTarget(target) + A.friends = friends + A.faction = faction + /obj/item/gps/internal/legion icon_state = null diff --git a/code/modules/mob/living/ventcrawling.dm b/code/modules/mob/living/ventcrawling.dm index 4b9476d89cb..4e7980f1115 100644 --- a/code/modules/mob/living/ventcrawling.dm +++ b/code/modules/mob/living/ventcrawling.dm @@ -46,7 +46,7 @@ if(HAS_TRAIT(src, TRAIT_VENTCRAWLER_ITEM_BASED)) var/item_allowed = FALSE - for(var/obj/item/item as anything in get_equipped_items(include_pockets = TRUE, include_hands = TRUE)) + for(var/obj/item/item as anything in get_equipped_items(include_pockets = TRUE)) if(item.used_for_ventcrawling(src, provide_feedback)) item_allowed = TRUE break @@ -64,20 +64,19 @@ //Handle the exit here if(HAS_TRAIT(src, TRAIT_MOVE_VENTCRAWLING) && is_ventcrawling(src) && (movement_type & VENTCRAWLING)) if(!can_ventcrawl(ventcrawl_target)) - return + return FALSE to_chat(src, span_notice("Вы начинаете вылезать из вентиляции...")) if(!do_after(src, 1 SECONDS, target = ventcrawl_target)) - return + return FALSE if(has_client && isnull(client)) - return + return FALSE if(!can_ventcrawl(ventcrawl_target)) - return - stop_ventcrawling() - return VENTCRAWL_OUT_SUCCESS + return FALSE + return stop_ventcrawling(ventcrawl_target) //Entrance here if(!can_ventcrawl(ventcrawl_target, entering = TRUE)) - return + return FALSE var/crawl_overlay = image('icons/effects/vent_indicator.dmi', "arrow", ABOVE_MOB_LAYER, dir = get_dir(src.loc, ventcrawl_target.loc)) //ventcrawl_target.flick_overlay_static(image('icons/effects/vent_indicator.dmi', "arrow", ABOVE_MOB_LAYER, dir = get_dir(src.loc, ventcrawl_target.loc)), 2 SECONDS) @@ -88,15 +87,14 @@ ) if(!do_after(src, 4.5 SECONDS, target = ventcrawl_target)) ventcrawl_target?.cut_overlay(crawl_overlay) - return + return FALSE ventcrawl_target?.cut_overlay(crawl_overlay) if(has_client && isnull(client)) - return + return FALSE if(!can_ventcrawl(ventcrawl_target, entering = TRUE)) - return + return FALSE ventcrawl_target.flick_overlay_static(image('icons/effects/vent_indicator.dmi', "insert", ABOVE_MOB_LAYER), 1 SECONDS) - move_into_vent(ventcrawl_target) - return VENTCRAWL_IN_SUCCESS + return move_into_vent(ventcrawl_target) /** @@ -104,8 +102,13 @@ * * Arguments: * * ventcrawl_target - The vent into which we are moving the mob + * * message - if TRUE shows visible message to everyone + * + * Returns `TRUE` on success. */ /mob/living/proc/move_into_vent(obj/machinery/atmospherics/ventcrawl_target, message = TRUE) + SHOULD_CALL_PARENT(TRUE) + if(message) visible_message( span_notice("[name] залез[genderize_ru(gender, "", "ла", "ло", "ли")] в вентиляцию!"), @@ -114,15 +117,21 @@ abstract_move(ventcrawl_target) ADD_TRAIT(src, TRAIT_MOVE_VENTCRAWLING, VENTCRAWLING_TRAIT) update_pipe_vision() + return TRUE /** * Moves living mob to the turf contents and cleanse ventcrawling stuff * * Arguments: + * * ventcrawl_target - The vent from which we are moved from * * message - if TRUE shows visible message to everyone + * + * Returns `TRUE` on success. */ -/mob/living/proc/stop_ventcrawling(message = TRUE) +/mob/living/proc/stop_ventcrawling(obj/machinery/atmospherics/ventcrawl_target, message = TRUE) + SHOULD_CALL_PARENT(TRUE) + if(!is_ventcrawling(src)) return FALSE var/turf/new_turf = get_turf(src) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 1e294e97c86..1056ea848be 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -85,7 +85,7 @@ var/timeofdeath = 0 //Living - var/bodytemperature = 310.055 //98.7 F + var/bodytemperature = BODYTEMP_NORMAL //98.7 F var/nutrition = NUTRITION_LEVEL_FED + 50 //Carbon var/satiety = 0 //Carbon var/hunger_drain = HUNGER_FACTOR // how quickly the mob gets hungry; largely utilized by species. diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index ab530520c70..25c1df24232 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -117,7 +117,7 @@ mob.setDir(direct) if((direct & (direct - 1)) && mob.loc == n) //moved diagonally successfully - current_move_delay *= 1.41 //Will prevent mob diagonal moves from smoothing accurately, sadly + current_move_delay *= SQRT_2 //Will prevent mob diagonal moves from smoothing accurately, sadly move_delay += current_move_delay diff --git a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm index 73fdb56403e..b043622b10b 100644 --- a/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories/sprite_accessories.dm @@ -324,10 +324,49 @@ SPECIES_DRASK = 'icons/mob/clothing/species/drask/underwear.dmi' ) +/datum/sprite_accessory/undershirt/shirt_colorized/turtleneck + name = "Turtleneck" + icon_state = "turtleneck" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/underwear.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/underwear.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/underwear.dmi' + ) + +/datum/sprite_accessory/undershirt/shirt_colorized/sweater + name = "Sweater" + icon_state = "sweater" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/underwear.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/underwear.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/underwear.dmi' + ) + /datum/sprite_accessory/undershirt/shirt_colorized/female name = "Female Colorized Shirt" icon_state = "female_shirt" gender = FEMALE + +/datum/sprite_accessory/undershirt/shirt_colorized/female/female_cuttedshirt + name = "Female Colorized Cutted Shirt" + icon_state = "female_cuttedshirt" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/underwear.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/underwear.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/underwear.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/underwear.dmi' + ) + +/datum/sprite_accessory/undershirt/shirt_colorized/female/female_longslevshirt + name = "Female Colorized Long Sleeve Shirt" + icon_state = "female_longslevshirt" + sprite_sheets = list( + SPECIES_VOX = 'icons/mob/clothing/species/vox/underwear.dmi', + SPECIES_GREY = 'icons/mob/clothing/species/grey/underwear.dmi', + SPECIES_UNATHI = 'icons/mob/clothing/species/unathi/underwear.dmi', + SPECIES_DRASK = 'icons/mob/clothing/species/drask/underwear.dmi' + ) + //end plain color shirts //graphic shirts diff --git a/code/modules/point/point.dm b/code/modules/point/point.dm index d499ee34107..bb5ddf0704c 100644 --- a/code/modules/point/point.dm +++ b/code/modules/point/point.dm @@ -64,6 +64,7 @@ var/mutable_appearance/point_visual = mutable_appearance( 'icons/mob/screen_gen.dmi', "arrow", + thought_bubble.layer + 0.01 ) point_visual.pixel_y = 7 diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index 449fbfdd0d2..3b907bc4963 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -78,6 +78,7 @@ var/drowsy = 0 var/stamina = 0 var/jitter = 0 + var/knockdown = 0 /// Number of times an object can pass through an object. -1 is infinite var/forcedodge = 0 @@ -212,7 +213,7 @@ if(L.mind == objective.target) objective.take_damage(damage, damage_type) - var/were_affects_applied = L.apply_effects(stun, weaken, paralyze, irradiate, slur, stutter, eyeblur, drowsy, blocked, stamina, jitter) + var/were_affects_applied = L.apply_effects(blocked, stun, weaken, paralyze, irradiate, slur, stutter, eyeblur, drowsy, stamina, jitter, knockdown) if(!log_override && firer && original) add_attack_logs(firer, L, "Shot[organ_hit_text][blocked ? " blocking [blocked]%" : null]. [fire_log_text]") diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm index 052c937f85f..72452c210d6 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol.dm @@ -284,7 +284,7 @@ /datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M) M.AdjustDrowsy(-14 SECONDS) M.AdjustSleeping(-4 SECONDS) - if(M.bodytemperature > 310) + if(M.bodytemperature > BODYTEMP_NORMAL) M.adjust_bodytemperature(-(5 * TEMPERATURE_DAMAGE_COEFFICIENT)) M.Jitter(10 SECONDS) return ..() @@ -528,8 +528,8 @@ taste_description = "FIRE" /datum/reagent/consumable/ethanol/toxins_special/on_mob_life(mob/living/M) - if(M.bodytemperature < 330) - M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT) //310 is the normal bodytemp. 310.055 + if(M.bodytemperature < (BODYTEMP_NORMAL + 20)) + M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT) return ..() /datum/reagent/consumable/ethanol/beepsky_smash @@ -693,8 +693,8 @@ taste_description = "poor life choices" /datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/M) - if(M.bodytemperature < 330) - M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT) //310 is the normal bodytemp. 310.055 + if(M.bodytemperature < (BODYTEMP_NORMAL + 20)) + M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT) return ..() /datum/reagent/consumable/ethanol/barefoot @@ -798,8 +798,8 @@ taste_description = "comforting warmth" /datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M) - if(M.bodytemperature < 360) - M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT) //310 is the normal bodytemp. 310.055 + if(M.bodytemperature < (BODYTEMP_NORMAL + 50)) + M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT) return ..() /datum/reagent/consumable/ethanol/devilskiss @@ -852,8 +852,8 @@ taste_description = "cold beer" /datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M) - if(M.bodytemperature > 270) - M.adjust_bodytemperature(-(20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310 is the normal bodytemp. 310.055 + if(M.bodytemperature > (BODYTEMP_NORMAL - 40)) + M.adjust_bodytemperature(-(20 * TEMPERATURE_DAMAGE_COEFFICIENT)) return ..() /datum/reagent/consumable/ethanol/grog diff --git a/code/modules/reagents/chemistry/reagents/drink_base.dm b/code/modules/reagents/chemistry/reagents/drink_base.dm index 806673450a9..3da589f8a58 100644 --- a/code/modules/reagents/chemistry/reagents/drink_base.dm +++ b/code/modules/reagents/chemistry/reagents/drink_base.dm @@ -21,9 +21,9 @@ if(adj_sleepy) M.AdjustSleeping(adj_sleepy) if(adj_temp_hot) - if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 + if(M.bodytemperature < BODYTEMP_NORMAL) M.adjust_bodytemperature(adj_temp_hot * TEMPERATURE_DAMAGE_COEFFICIENT) if(adj_temp_cool) - if(M.bodytemperature > 310)//310 is the normal bodytemp. 310.055 + if(M.bodytemperature > BODYTEMP_NORMAL) M.adjust_bodytemperature(-(adj_temp_cool * TEMPERATURE_DAMAGE_COEFFICIENT)) return ..() | update_flags diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index 6c13feb2ba2..99216496770 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -443,7 +443,7 @@ taste_description = "chocolate" /datum/reagent/consumable/hot_coco/on_mob_life(mob/living/M) - if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 + if(M.bodytemperature < BODYTEMP_NORMAL) M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT) return ..() @@ -544,7 +544,7 @@ taste_description = "cheap ramen and memories" /datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/M) - if(M.bodytemperature < 310)//310 is the normal bodytemp. 310.055 + if(M.bodytemperature < BODYTEMP_NORMAL) M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT) return ..() diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index 500afca57de..fb453bd0d71 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -1080,12 +1080,16 @@ addiction_threshold = 10 overdose_threshold = 50 taste_description = "warmth and stability" + var/temperature_effect = 40 /datum/reagent/medicine/teporone/on_mob_life(mob/living/M) - if(M.bodytemperature > 310) - M.adjust_bodytemperature(-(40 * TEMPERATURE_DAMAGE_COEFFICIENT)) - else if(M.bodytemperature < 311) - M.adjust_bodytemperature(40 * TEMPERATURE_DAMAGE_COEFFICIENT) + var/normal_temperature = M?.dna?.species.body_temperature + if(!normal_temperature) + normal_temperature = BODYTEMP_NORMAL + var/difference = M.bodytemperature - normal_temperature + if(abs(difference) > temperature_effect) + var/current_effect = difference > 0 ? -temperature_effect : temperature_effect + M.adjust_bodytemperature(current_effect * TEMPERATURE_DAMAGE_COEFFICIENT) return ..() /datum/reagent/medicine/haloperidol @@ -1328,7 +1332,7 @@ update_flags |= M.adjustToxLoss(2.5, FALSE) return list(0, update_flags) -/datum/reagent/medicine/syndiezine +/datum/reagent/medicine/syndiezine name = "Syndiezine" id = "syndiezine" description = "Попытка синдиката вывести синтетический аналог реагента кровь земли. Слабо лечит раны, но быстро избавляет от усталости, вызывает галлюцинации." @@ -1492,7 +1496,10 @@ /datum/reagent/medicine/pure_plasma/on_mob_life(mob/living/carbon/M) var/update_flags = STATUS_UPDATE_NONE if(isplasmaman(M)) - if(M.bodytemperature < 310) + var/normal_temperature = M?.dna?.species.body_temperature + if(!normal_temperature) + normal_temperature = BODYTEMP_NORMAL + if(M.bodytemperature < normal_temperature) M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT) update_flags |= M.adjustBruteLoss(-0.25, FALSE) update_flags |= M.adjustFireLoss(-0.25, FALSE) diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm index 1daf9d9a336..f85afdbe876 100644 --- a/code/modules/reagents/chemistry/reagents/misc.dm +++ b/code/modules/reagents/chemistry/reagents/misc.dm @@ -309,7 +309,7 @@ if(ishuman(M)) var/mob/living/carbon/human/H = M if(!(NO_BLOOD in H.dna.species.species_traits) && !H.dna.species.exotic_blood) - H.dna.species.blood_color = "#[num2hex(rand(0, 255))][num2hex(rand(0, 255))][num2hex(rand(0, 255))]" + H.dna.species.blood_color = "#[num2hex(rand(0, 255), 2)][num2hex(rand(0, 255), 2)][num2hex(rand(0, 255), 2)]" return ..() /datum/reagent/colorful_reagent/reaction_mob(mob/living/simple_animal/M, method=REAGENT_TOUCH, volume) @@ -519,29 +519,30 @@ id = "growthserum" description = "A commercial chemical designed to help older men in the bedroom." //not really it just makes you a giant color = "#ff0000"//strong red. rgb 255, 0, 0 - var/current_size = 1 + var/current_size = RESIZE_DEFAULT_SIZE taste_description = "enhancement" /datum/reagent/growthserum/on_mob_life(mob/living/carbon/H) var/newsize = current_size switch(volume) if(0 to 19) - newsize = 1.1 + newsize = 1.1 * RESIZE_DEFAULT_SIZE if(20 to 49) - newsize = 1.2 + newsize = 1.2 * RESIZE_DEFAULT_SIZE if(50 to 99) - newsize = 1.25 + newsize = 1.25 * RESIZE_DEFAULT_SIZE if(100 to 199) - newsize = 1.3 + newsize = 1.3 * RESIZE_DEFAULT_SIZE if(200 to INFINITY) - newsize = 1.5 + newsize = 1.5 * RESIZE_DEFAULT_SIZE - current_size = newsize H.update_transform(newsize/current_size) + current_size = newsize return ..() /datum/reagent/growthserum/on_mob_delete(mob/living/M) - M.update_transform(1/current_size) + M.update_transform(RESIZE_DEFAULT_SIZE/current_size) + current_size = RESIZE_DEFAULT_SIZE ..() /datum/reagent/pax diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index 3ad2da9de89..d80cc2d58a0 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -279,35 +279,38 @@ color = "#7DFF00" taste_description = "slime" + /datum/reagent/stable_mutagen/on_new(data) ..() START_PROCESSING(SSprocessing, src) + /datum/reagent/stable_mutagen/Destroy() STOP_PROCESSING(SSprocessing, src) return ..() -/datum/reagent/stable_mutagen/on_mob_life(mob/living/M) - if(!ishuman(M) || !M.dna) - return - if(isnucleation(M)) - return ..() - M.apply_effect(1, IRRADIATE, negate_armor = 1) - if(current_cycle == 10 && islist(data)) - if(istype(data["dna"], /datum/dna)) - var/mob/living/carbon/human/H = M - var/datum/dna/D = data["dna"] - if(!D.species.is_small) - H.change_dna(D, TRUE, TRUE) - H.special_post_clone_handling() +/datum/reagent/stable_mutagen/on_mob_life(mob/living/carbon/human/target) + if(isnucleation(target)) + return ..() + target.apply_effect(1, IRRADIATE, negate_armor = TRUE) + if(current_cycle != 10 || !ishuman(target) || !target.dna || !islist(data) || !istype(data["dna"], /datum/dna)) + return ..() + var/datum/dna/reagent_dna = data["dna"] + if(!reagent_dna.species.is_small) + target.change_dna(reagent_dna, TRUE, TRUE) + target.special_post_clone_handling() return ..() + /datum/reagent/stable_mutagen/process() - if(..()) - var/datum/reagent/blood/B = locate() in holder.reagent_list - if(B && islist(B.data) && !data) - data = B.data.Copy() + . = ..() + if(data) + return . + var/datum/reagent/blood/blood = locate() in holder.reagent_list + if(blood && islist(blood.data)) + data = blood.data.Copy() + /datum/reagent/uranium name ="Uranium" diff --git a/code/modules/shuttle/shuttle_smash.dm b/code/modules/shuttle/shuttle_smash.dm index e34d92c12d1..0de18a15b4d 100644 --- a/code/modules/shuttle/shuttle_smash.dm +++ b/code/modules/shuttle/shuttle_smash.dm @@ -62,15 +62,26 @@ if(!skip_ungibable_search) drop_ungibbable_items(stationary_turf) for(var/mob/living/victim in contents) - victim.shuttle_crush_react(stationary_turf, mobile_dir, skip_ungibable_search) + victim.shuttle_crush_react(stationary_turf, mobile_dir) gib() +/mob/living/silicon/shuttle_crush_react(turf/stationary_turf, mobile_dir, skip_ungibable_search = TRUE) + . = ..() // we are skipping ungibable search, since silicons have no valuables to drop and this only cause bugs with brain removal + + +/mob/living/silicon/robot/shuttle_crush_react(turf/stationary_turf, mobile_dir, skip_ungibable_search = TRUE) + if(module) + var/obj/item/gripper/our_gripper = locate() in module.modules + our_gripper?.drop_ungibbable_items(stationary_turf) + return ..() + + /mob/living/silicon/ai/shuttle_crush_react(turf/stationary_turf, mobile_dir, skip_ungibable_search = FALSE) return FALSE -/mob/living/carbon/brain/shuttle_crush_react(turf/stationary_turf, mobile_dir) +/mob/living/carbon/brain/shuttle_crush_react(turf/stationary_turf, mobile_dir, skip_ungibable_search = FALSE) return FALSE @@ -111,7 +122,7 @@ var/atom/movable/user = master?.loc master?.disrupt() if(ismovable(user)) - user.shuttle_crush_react(stationary_turf, mobile_dir, skip_ungibable_search) + user.shuttle_crush_react(stationary_turf, mobile_dir) /obj/effect/shuttle_crush_react(turf/stationary_turf, mobile_dir, skip_ungibable_search = FALSE) diff --git a/code/modules/surgery/helpers.dm b/code/modules/surgery/helpers.dm index 7c25800f6e5..b73dee479d4 100644 --- a/code/modules/surgery/helpers.dm +++ b/code/modules/surgery/helpers.dm @@ -55,7 +55,7 @@ * * parent - bodypart in which our src object is placed. * * target - future owner of the limb. */ -/atom/movable/proc/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target) +/atom/movable/proc/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) return FALSE /// Check to see if a surgical operation proposed on ourselves is valid or not. We are the target of the surgery diff --git a/code/modules/surgery/organs/augments_legs.dm b/code/modules/surgery/organs/augments_legs.dm index e74d2dcdc95..544f8932e7a 100644 --- a/code/modules/surgery/organs/augments_legs.dm +++ b/code/modules/surgery/organs/augments_legs.dm @@ -131,10 +131,15 @@ /datum/action/bhop/Trigger(left_click = TRUE) if(!IsAvailable()) return + if(recharging_time > world.time) to_chat(owner, span_warning("The boot's internal propulsion needs to recharge still!")) return + if(!owner.has_gravity()) + to_chat(owner, span_warning("You can't jump without gravity!")) + return + if(owner.throwing) to_chat(owner, span_warning("You can't jump in the middle of another jump!")) return diff --git a/code/modules/surgery/organs/organ.dm b/code/modules/surgery/organs/organ.dm index 996b3918b30..62cc91da012 100644 --- a/code/modules/surgery/organs/organ.dm +++ b/code/modules/surgery/organs/organ.dm @@ -347,7 +347,7 @@ return src -/obj/item/organ/proc/replaced(mob/living/carbon/human/target) +/obj/item/organ/proc/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) return // Nothing uses this, it is always overridden diff --git a/code/modules/surgery/organs/organ_external.dm b/code/modules/surgery/organs/organ_external.dm index b74e3648e49..f3906d976e5 100644 --- a/code/modules/surgery/organs/organ_external.dm +++ b/code/modules/surgery/organs/organ_external.dm @@ -112,7 +112,7 @@ icobase = dna.species.icobase deform = dna.species.deform if(ishuman(holder)) - replaced(holder) + replaced(holder, ORGAN_MANIPULATION_NOEFFECT) sync_colour_to_human(holder) properly_attached = TRUE @@ -162,12 +162,12 @@ QDEL_NULL(hidden) if(owner && !owner.has_embedded_objects()) - owner.clear_alert("embeddedobject") + owner.clear_alert(ALERT_EMBEDDED) return ..() -/obj/item/organ/external/replaced(mob/living/carbon/human/target) +/obj/item/organ/external/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) owner = target forceMove(owner) @@ -175,7 +175,7 @@ SEND_SIGNAL(owner, COMSIG_CARBON_GAIN_ORGAN, src) if(LAZYLEN(embedded_objects)) - owner.throw_alert("embeddedobject", /atom/movable/screen/alert/embeddedobject) + owner.throw_alert(ALERT_EMBEDDED, /atom/movable/screen/alert/embeddedobject) if(!ishuman(owner)) return @@ -187,7 +187,7 @@ owner.bodyparts |= src for(var/atom/movable/thing in src) - thing.attempt_become_organ(src, owner) + thing.attempt_become_organ(src, owner, special) if(parent_organ_zone) parent = owner.bodyparts_by_name[parent_organ_zone] @@ -236,10 +236,10 @@ qdel(src) -/obj/item/organ/external/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target) +/obj/item/organ/external/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) if(parent_organ_zone != parent.limb_zone) return FALSE - replaced(target) + replaced(target, special) return TRUE @@ -1147,7 +1147,7 @@ Note that amputating the affected organ does in fact remove the infection from t thing.forceMove(drop_loc) .++ if(clear_alert && owner && !owner.has_embedded_objects()) - owner.clear_alert("embeddedobject") + owner.clear_alert(ALERT_EMBEDDED) return . @@ -1157,7 +1157,7 @@ Note that amputating the affected organ does in fact remove the infection from t LAZYREMOVE(embedded_objects, thing) thing.forceMove(drop_loc ? drop_loc : drop_location()) if(clear_alert && owner && !owner.has_embedded_objects()) - owner.clear_alert("embeddedobject") + owner.clear_alert(ALERT_EMBEDDED) return TRUE @@ -1165,7 +1165,7 @@ Note that amputating the affected organ does in fact remove the infection from t LAZYOR(embedded_objects, thing) thing.forceMove(src) if(throw_alert) - owner?.throw_alert("embeddedobject", /atom/movable/screen/alert/embeddedobject) + owner?.throw_alert(ALERT_EMBEDDED, /atom/movable/screen/alert/embeddedobject) #undef LIMB_SHARP_THRESH_INT_DMG diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 10a75cf573d..705d1613660 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -110,7 +110,7 @@ receive_damage(7, 1) -/obj/item/organ/internal/replaced(mob/living/carbon/human/target) +/obj/item/organ/internal/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) insert(target) @@ -144,10 +144,10 @@ return S -/obj/item/organ/internal/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target) +/obj/item/organ/internal/attempt_become_organ(obj/item/organ/external/parent, mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) if(parent_organ_zone != parent.limb_zone) return FALSE - insert(target) + insert(target, special) return TRUE diff --git a/code/modules/surgery/organs/subtypes/kidan.dm b/code/modules/surgery/organs/subtypes/kidan.dm index d257a7ec0e7..bc4bce662ad 100644 --- a/code/modules/surgery/organs/subtypes/kidan.dm +++ b/code/modules/surgery/organs/subtypes/kidan.dm @@ -163,7 +163,7 @@ . = ..() -/obj/item/organ/external/head/kidan/replaced(mob/living/carbon/human/target) +/obj/item/organ/external/head/kidan/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) . = ..() if(iskidan(target)) target.adjustBrainLoss(30) diff --git a/code/modules/surgery/organs/subtypes/standard.dm b/code/modules/surgery/organs/subtypes/standard.dm index 11370ae3f46..fe7dd1ba995 100644 --- a/code/modules/surgery/organs/subtypes/standard.dm +++ b/code/modules/surgery/organs/subtypes/standard.dm @@ -86,7 +86,7 @@ convertable_children = list(/obj/item/organ/external/foot) -/obj/item/organ/external/leg/replaced(mob/living/carbon/human/target) +/obj/item/organ/external/leg/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) . = ..() owner.update_fractures_slowdown() @@ -162,11 +162,11 @@ amputation_point = "left ankle" -/obj/item/organ/external/foot/replaced(mob/living/carbon/human/target) +/obj/item/organ/external/foot/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) . = ..() owner.set_num_legs(owner.num_legs + 1) if(is_usable()) - owner.set_usable_legs(owner.usable_legs + 1) + owner.set_usable_legs(owner.usable_legs + 1, special) owner.update_fractures_slowdown() @@ -174,7 +174,7 @@ . = ..() user.set_num_legs(user.num_legs - 1) if(is_usable()) - user.set_usable_legs(user.usable_legs - 1) + user.set_usable_legs(user.usable_legs - 1, special) user.update_fractures_slowdown() if(special == ORGAN_MANIPULATION_DEFAULT) user.drop_item_ground(user.shoes, force = TRUE) @@ -283,18 +283,18 @@ can_grasp = TRUE -/obj/item/organ/external/hand/replaced(mob/living/carbon/human/target) +/obj/item/organ/external/hand/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) . = ..() owner.set_num_hands(owner.num_hands + 1) if(is_usable()) - owner.set_usable_hands(owner.usable_hands + 1) + owner.set_usable_hands(owner.usable_hands + 1, special) /obj/item/organ/external/hand/remove(mob/living/carbon/human/user, special = ORGAN_MANIPULATION_DEFAULT, ignore_children = FALSE) . = ..() user.set_num_hands(user.num_hands - 1) if(is_usable()) - user.set_usable_hands(user.usable_hands - 1) + user.set_usable_hands(user.usable_hands - 1, special) if(special == ORGAN_MANIPULATION_DEFAULT) user.drop_item_ground(user.gloves, force = TRUE) user.drop_item_ground(user.l_hand, force = TRUE) @@ -409,7 +409,7 @@ . = ..() -/obj/item/organ/external/head/replaced(mob/living/carbon/human/target) +/obj/item/organ/external/head/replaced(mob/living/carbon/human/target, special = ORGAN_MANIPULATION_DEFAULT) name = limb_zone . = ..() diff --git a/code/modules/vehicle/vehicle.dm b/code/modules/vehicle/vehicle.dm index eb459a39d97..5c65a97fb72 100644 --- a/code/modules/vehicle/vehicle.dm +++ b/code/modules/vehicle/vehicle.dm @@ -156,7 +156,7 @@ Move(get_step(src, direction), direction, last_vehicle_move) if(direction & (direction - 1)) //moved diagonally - last_vehicle_move *= 1.41 + last_vehicle_move *= SQRT_2 last_vehicle_move += world.time if(has_buckled_mobs()) diff --git a/code/modules/vote/vote_presets.dm b/code/modules/vote/vote_presets.dm index 397247c98e9..4834614366a 100644 --- a/code/modules/vote/vote_presets.dm +++ b/code/modules/vote/vote_presets.dm @@ -19,20 +19,29 @@ vote_type_text = "map" /datum/vote/map/New() + if(!SSmapping.map_datum) + CRASH("Map Vote triggered before the `map_datum` is defined!") ..() no_dead_vote = FALSE /datum/vote/map/generate_choices() - for(var/x in subtypesof(/datum/map)) - var/datum/map/M = x - if(initial(M.admin_only)) + var/list/map_pool = subtypesof(/datum/map) + + if(CONFIG_GET(string/map_vote_mode) == "nodoubles") + map_pool -= SSmapping.map_datum.type + + for(var/datum/map/possible_map as anything in map_pool) + if(initial(possible_map.admin_only)) continue - choices.Add("[initial(M.station_name)] ([initial(M.name)])") + choices.Add("[initial(possible_map.station_name)] ([initial(possible_map.name)])") /datum/vote/map/announce() ..() - for(var/mob/M in GLOB.player_list) - M.throw_alert("Map Vote", /atom/movable/screen/alert/notify_mapvote, timeout_override = CONFIG_GET(number/vote_period)) + for(var/mob/voter in GLOB.player_list) + voter.throw_alert("Map Vote", /atom/movable/screen/alert/notify_mapvote, timeout_override = CONFIG_GET(number/vote_period)) + if(!voter.client?.prefs || voter.client?.prefs?.toggles2 & PREFTOGGLE_2_DISABLE_VOTE_POPUPS) + continue + voter.immediate_vote() /datum/vote/map/handle_result(result) // Find target map. diff --git a/code/modules/vote/vote_verb.dm b/code/modules/vote/vote_verb.dm index 7fa708df2d7..c59f505c513 100644 --- a/code/modules/vote/vote_verb.dm +++ b/code/modules/vote/vote_verb.dm @@ -7,6 +7,12 @@ else to_chat(usr, "There is no active vote") +/mob/proc/immediate_vote() + if(SSvote.active_vote) + SSvote.active_vote.ui_interact(src) + else + to_chat(src, "There is no active vote") + /client/proc/start_vote() set category = "Admin" set name = "Start Vote" diff --git a/config/example/config.txt b/config/example/config.txt index 7e33e7b3401..fa0ed007e35 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -171,11 +171,27 @@ MINPLAYERS ABDUCTION 15 MINPLAYERS DEVIL 2 MINPLAYERS DEVILAGENTS 25 -## List of minor antags in ANTAG-PARADISE gamemode. Only listed here antags will be spawned as main antags -#ANTAG_PARADISE_MAIN_ANTAGS TRAITOR -#ANTAG_PARADISE_MAIN_ANTAGS THIEF -#ANTAG_PARADISE_MAIN_ANTAGS VAMPIRE -#ANTAG_PARADISE_MAIN_ANTAGS CHANGELING +## List of minor antags in ANTAG-PARADISE gamemode. Antags from this config will be picked for primary role (ANTAG_SINGLE), using correspoding weights. +#ANTAG_PARADISE_SINGLE_ANTAGS TRAITOR 60 +#ANTAG_PARADISE_SINGLE_ANTAGS THIEF 0 +#ANTAG_PARADISE_SINGLE_ANTAGS VAMPIRE 20 +#ANTAG_PARADISE_SINGLE_ANTAGS CHANGELING 0 + +## List of minor antags in ANTAG-PARADISE gamemode. Antags from this config will be picked for secondary role (ANTAG_DOUBLE), using correspoding weights. +#ANTAG_PARADISE_DOUBLE_ANTAGS TRAITOR 60 +#ANTAG_PARADISE_DOUBLE_ANTAGS THIEF 0 +#ANTAG_PARADISE_DOUBLE_ANTAGS VAMPIRE 20 +#ANTAG_PARADISE_DOUBLE_ANTAGS CHANGELING 20 + +## List of minor antags in ANTAG-PARADISE gamemode. Antags from this config will be picked for final role (ANTAG_TRIPPLE), using correspoding weights. +#ANTAG_PARADISE_TRIPPLE_ANTAGS TRAITOR 60 +#ANTAG_PARADISE_TRIPPLE_ANTAGS THIEF 0 +#ANTAG_PARADISE_TRIPPLE_ANTAGS VAMPIRE 20 +#ANTAG_PARADISE_TRIPPLE_ANTAGS CHANGELING 20 + +## Whitelist for minor antags in ANTAG-PARADISE gamemode. Only antags from below will be choosen for random mode subtype (ANTAG_RANDOM). +#ANTAG_PARADISE_RANDOM_MODE_WHITELIST TRAITOR +#ANTAG_PARADISE_RANDOM_MODE_WHITELIST VAMPIRE ## Chances for ANTAG-PARADISE gamemode subtypes. #ANTAG_PARADISE_MODE_SUBTYPES ANTAG_SINGLE 10 @@ -634,8 +650,14 @@ TOPIC_FILTERING_WHITELIST 127.0.0.1 ## none - select same map ## random - select random map ## rotate - select next map in list +## vote - players will decide what next map will be MAP_ROTATE none +## Server map voting mode: +## all - all maps can be selected +## nodoubles - current map can't be selected as next +MAP_VOTE_MODE all + ## Default server map DEFAULT_MAP /datum/map/cyberiad diff --git a/goon/browserassets/css/browserOutput-dark.css b/goon/browserassets/css/browserOutput-dark.css index 1fc0d8ec93e..790851ca09b 100644 --- a/goon/browserassets/css/browserOutput-dark.css +++ b/goon/browserassets/css/browserOutput-dark.css @@ -312,7 +312,6 @@ em {font-style: normal;font-weight: bold;} .alert {color: #d82020;} h1.alert, h2.alert {color: #a4bad6;} .ghostalert {color: #cc00c6;font-style: italic; font-weight: bold;} -.emote {font-style: italic;} .selecteddna {color: #a4bad6; background-color: #001B1B} .attack {color: #be2020;} @@ -466,6 +465,10 @@ h1.alert, h2.alert {color: #a4bad6;} .adminticketalt {color: #ccb847; font-weight: bold} +/* Empty spans */ +.emote { +} + /* Syndicate codewords */ span.body .codephrases {color: #5555FF;} span.body .coderesponses {color: #FF3333;} diff --git a/goon/browserassets/css/browserOutput.css b/goon/browserassets/css/browserOutput.css index 897423cb6cb..08e2397479c 100644 --- a/goon/browserassets/css/browserOutput.css +++ b/goon/browserassets/css/browserOutput.css @@ -303,7 +303,6 @@ em {font-style: normal; font-weight: bold;} .alert {color: #ff0000;} h1.alert, h2.alert {color: #000000;} .ghostalert {color: #5c00e6; font-style: italic; font-weight: bold;} -.emote { font-style: italic;} .selecteddna {color: #FFFFFF; background-color: #001B1B} .attack {color: #ff0000;} @@ -452,6 +451,10 @@ h1.alert, h2.alert {color: #000000;} .adminticketalt {color: #014c8a; font-weight: bold} +/* Empty spans */ +.emote { +} + /* Syndicate codewords */ span.body .codephrases {color: #0000FF;} span.body .coderesponses {color: #FF0000;} diff --git a/html/changelogs/archive/2024-05.yml b/html/changelogs/archive/2024-05.yml index 90e8e279e65..463e77846e4 100644 --- a/html/changelogs/archive/2024-05.yml +++ b/html/changelogs/archive/2024-05.yml @@ -179,3 +179,9 @@ - bugfix: Fixes lavaland NaN air (I HOPE) (#5116) Zwei: - unknown: Crawling Implementation (#5044) +'2024-05-31': + MstrKabach: + - qol: Correct bundles name from game and wiki (#5046) + Zwei: + - bugfix: Crawling Fixes N1 (#5120) + - bugfix: Crawling Fixes N2 (#5121) diff --git a/html/changelogs/archive/2024-06.yml b/html/changelogs/archive/2024-06.yml new file mode 100644 index 00000000000..e01cca71bf1 --- /dev/null +++ b/html/changelogs/archive/2024-06.yml @@ -0,0 +1,88 @@ +'2024-06-01': + Baldek0: + - bugfix: Translation error of term "department" (#5117) + Daeberdir: + - tweak: Better armor for military gas masks. (#5118) + MstrKabach: + - add: nucleation emergency box (#5119) + PiotrTheTchaikowsky: + - tweak: Toolbox throw damage up (Prictice PR for stydying) (#5097) + Zwei: + - bugfix: Crawling Fixes N3 (#5123) + - bugfix: Buttons Icons Fixes (#5122) + - bugfix: Crawling Fixes N4 (#5134) +'2024-06-02': + Honker9999999: + - add: nunchucks (#5073) + NightDawnFox: + - bugfix: added missed knockdown in apply_effect() (#5142) + Vladisvell: + - qol: Added more info to discord round end notification admin webhook (#5089) + Zwei: + - bugfix: Projectiles Skip Mobs Not Capable Of Resting (#5139) + - bugfix: Correct Abstract Flag Check (#5140) +'2024-06-03': + Arceniu: + - qol: Folded masks in boxes (#5087) + BeebBeebBoob: + - bugfix: Multi-z Light (#5130) + Daeberdir: + - bugfix: Bold names for all command role titles. (#5108) + - tweak: '''Current Map Excluded'' map vote. (#5151)' + LiquidPotroh: + - bugfix: teporone stabilizing and species (#5112) + NightDawnFox: + - balance: no more jumps in space (and without gravity) (#5136) + Valtor: + - bugfix: airlock access deny sound with no power (#5093) + Vladisvell: + - bugfix: Fixed reagent crafting not spending reagents issue (#5124) + - bugfix: Kudzu vines no longer grow on transition or map borders (#5029) + - tweak: Diagonal movement adjustments (#5052) + Zwei: + - bugfix: No More Screams On Species Change (#5146) + - bugfix: Admin Move And Point Layer Fix (#5148) + - bugfix: Correct Ears Overlay Updates (#5051) + - bugfix: DNA and Embedded Fixes (#5095) + - bugfix: Ventcrawling With Clothing Fixed (#5101) + - bugfix: Changeling Swap Fix (#5106) + - bugfix: Antag Paradise Typo Fix (#5113) + - tweak: Antag Paradise Changeling Weight Adjustment (#5114) + - bugfix: Shuttle Smash Skips Silicon Search (#5115) + - bugfix: Kudzu Spawn Respects Level Boundaries (#5152) +'2024-06-04': + BoshyG: + - imageadd: Vox sunglasses hud FIX (#5131) + LiquidPotroh: + - add: inquisitor's hardsuit in necropolis chest (#5126) + MrVivor: + - add: new clothes by PT (#5090) + NightDawnFox: + - tweak: new text objective for magic survivalists (#5138) + kukur: + - bugfix: IV drip can now be used again to collect or inject reagents. (#5154) +'2024-06-06': + Den109G: + - bugfix: TeleKinesis no longer drops on ground (#5155) + ROdenFL: + - tweak: loadout veil stack (#5129) +'2024-06-10': + BeebBeebBoob: + - bugfix: AI fail to click on certain lines of map (#5178) + Den109G: + - bugfix: Emotes check stat before show runechat (#5156) + Zwei: + - bugfix: Cards Shuffle Fix (#5165) + - bugfix: Legion Transform Fix (#5173) + - bugfix: Plasmaman Vampire Hunger Fix (#5174) + - refactor: Runechat Tweaks (#5060) + - bugfix: Minor Fixes Collection (#5153) +'2024-06-12': + ROdenFL: + - bugfix: shadowling can`t cast their spell (#5189) + Vladisvell: + - bugfix: Bunch of bugfixes (#5184) + - bugfix: Now you can unequip donation-tier gear if you don't have said tier. (#5187) + Zwei: + - bugfix: Prefs Runtime Fix (#5181) + - bugfix: Proper Layers For Closet Overlays (#5171) diff --git a/icons/effects/alphacolors.dmi b/icons/effects/alphacolors.dmi index c01d261fe31..d43f8cabb01 100644 Binary files a/icons/effects/alphacolors.dmi and b/icons/effects/alphacolors.dmi differ diff --git a/icons/mob/clothing/feet.dmi b/icons/mob/clothing/feet.dmi index 7dbccce84c6..6ad38455ad3 100644 Binary files a/icons/mob/clothing/feet.dmi and b/icons/mob/clothing/feet.dmi differ diff --git a/icons/mob/clothing/hands.dmi b/icons/mob/clothing/hands.dmi index 132e74e25a3..df039e879e3 100644 Binary files a/icons/mob/clothing/hands.dmi and b/icons/mob/clothing/hands.dmi differ diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi index 48c65a28206..c66526e5ee2 100644 Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ diff --git a/icons/mob/clothing/species/drask/gloves.dmi b/icons/mob/clothing/species/drask/gloves.dmi index 4a6930e3c64..63995ce3d97 100644 Binary files a/icons/mob/clothing/species/drask/gloves.dmi and b/icons/mob/clothing/species/drask/gloves.dmi differ diff --git a/icons/mob/clothing/species/drask/head.dmi b/icons/mob/clothing/species/drask/head.dmi index 6d02bb20fe6..455f4555b3f 100644 Binary files a/icons/mob/clothing/species/drask/head.dmi and b/icons/mob/clothing/species/drask/head.dmi differ diff --git a/icons/mob/clothing/species/drask/shoes.dmi b/icons/mob/clothing/species/drask/shoes.dmi index 849b3013d76..287b8b3b905 100644 Binary files a/icons/mob/clothing/species/drask/shoes.dmi and b/icons/mob/clothing/species/drask/shoes.dmi differ diff --git a/icons/mob/clothing/species/drask/suit.dmi b/icons/mob/clothing/species/drask/suit.dmi index 3c7a064e95b..77e2d453d1b 100644 Binary files a/icons/mob/clothing/species/drask/suit.dmi and b/icons/mob/clothing/species/drask/suit.dmi differ diff --git a/icons/mob/clothing/species/drask/underwear.dmi b/icons/mob/clothing/species/drask/underwear.dmi index 649dceba64a..0fb3cde68b2 100644 Binary files a/icons/mob/clothing/species/drask/underwear.dmi and b/icons/mob/clothing/species/drask/underwear.dmi differ diff --git a/icons/mob/clothing/species/drask/uniform.dmi b/icons/mob/clothing/species/drask/uniform.dmi index c7227d5b56c..ee96f3ddb16 100644 Binary files a/icons/mob/clothing/species/drask/uniform.dmi and b/icons/mob/clothing/species/drask/uniform.dmi differ diff --git a/icons/mob/clothing/species/grey/gloves.dmi b/icons/mob/clothing/species/grey/gloves.dmi index ddb699d84aa..f6577daf162 100644 Binary files a/icons/mob/clothing/species/grey/gloves.dmi and b/icons/mob/clothing/species/grey/gloves.dmi differ diff --git a/icons/mob/clothing/species/grey/head.dmi b/icons/mob/clothing/species/grey/head.dmi index 466e1cd726d..1d6e8e513b2 100644 Binary files a/icons/mob/clothing/species/grey/head.dmi and b/icons/mob/clothing/species/grey/head.dmi differ diff --git a/icons/mob/clothing/species/grey/helmet.dmi b/icons/mob/clothing/species/grey/helmet.dmi index 4cfa7147fa2..2f424b8c2ba 100644 Binary files a/icons/mob/clothing/species/grey/helmet.dmi and b/icons/mob/clothing/species/grey/helmet.dmi differ diff --git a/icons/mob/clothing/species/grey/suit.dmi b/icons/mob/clothing/species/grey/suit.dmi index eee6a706a0c..d1a617b3cc0 100644 Binary files a/icons/mob/clothing/species/grey/suit.dmi and b/icons/mob/clothing/species/grey/suit.dmi differ diff --git a/icons/mob/clothing/species/grey/underwear.dmi b/icons/mob/clothing/species/grey/underwear.dmi index c18dd4d39e4..bb729ffc961 100644 Binary files a/icons/mob/clothing/species/grey/underwear.dmi and b/icons/mob/clothing/species/grey/underwear.dmi differ diff --git a/icons/mob/clothing/species/grey/uniform.dmi b/icons/mob/clothing/species/grey/uniform.dmi index 575c6a5f37f..d4babb93db3 100644 Binary files a/icons/mob/clothing/species/grey/uniform.dmi and b/icons/mob/clothing/species/grey/uniform.dmi differ diff --git a/icons/mob/clothing/species/monkey/gloves.dmi b/icons/mob/clothing/species/monkey/gloves.dmi index 42cd177b8fa..54c0a40a896 100644 Binary files a/icons/mob/clothing/species/monkey/gloves.dmi and b/icons/mob/clothing/species/monkey/gloves.dmi differ diff --git a/icons/mob/clothing/species/monkey/head.dmi b/icons/mob/clothing/species/monkey/head.dmi index 87bdd4fd8ac..dd26a4fd646 100644 Binary files a/icons/mob/clothing/species/monkey/head.dmi and b/icons/mob/clothing/species/monkey/head.dmi differ diff --git a/icons/mob/clothing/species/monkey/shoes.dmi b/icons/mob/clothing/species/monkey/shoes.dmi index b8e1905ae86..5e9f38cfb99 100644 Binary files a/icons/mob/clothing/species/monkey/shoes.dmi and b/icons/mob/clothing/species/monkey/shoes.dmi differ diff --git a/icons/mob/clothing/species/monkey/suit.dmi b/icons/mob/clothing/species/monkey/suit.dmi index aaca5691cc8..2382d152184 100644 Binary files a/icons/mob/clothing/species/monkey/suit.dmi and b/icons/mob/clothing/species/monkey/suit.dmi differ diff --git a/icons/mob/clothing/species/monkey/uniform.dmi b/icons/mob/clothing/species/monkey/uniform.dmi index 7107065e042..7487ecd516f 100644 Binary files a/icons/mob/clothing/species/monkey/uniform.dmi and b/icons/mob/clothing/species/monkey/uniform.dmi differ diff --git a/icons/mob/clothing/species/tajaran/head.dmi b/icons/mob/clothing/species/tajaran/head.dmi index 8fb90a451d2..66150cd620d 100644 Binary files a/icons/mob/clothing/species/tajaran/head.dmi and b/icons/mob/clothing/species/tajaran/head.dmi differ diff --git a/icons/mob/clothing/species/unathi/head.dmi b/icons/mob/clothing/species/unathi/head.dmi index bc7498ef90f..7cf210a72c8 100644 Binary files a/icons/mob/clothing/species/unathi/head.dmi and b/icons/mob/clothing/species/unathi/head.dmi differ diff --git a/icons/mob/clothing/species/unathi/shoes.dmi b/icons/mob/clothing/species/unathi/shoes.dmi index 39c52be63b5..a6fdd4c20f4 100644 Binary files a/icons/mob/clothing/species/unathi/shoes.dmi and b/icons/mob/clothing/species/unathi/shoes.dmi differ diff --git a/icons/mob/clothing/species/unathi/suit.dmi b/icons/mob/clothing/species/unathi/suit.dmi index cb50ddf61ae..755ffce30b0 100644 Binary files a/icons/mob/clothing/species/unathi/suit.dmi and b/icons/mob/clothing/species/unathi/suit.dmi differ diff --git a/icons/mob/clothing/species/unathi/underwear.dmi b/icons/mob/clothing/species/unathi/underwear.dmi index fbbf800a2de..ab9db46936e 100644 Binary files a/icons/mob/clothing/species/unathi/underwear.dmi and b/icons/mob/clothing/species/unathi/underwear.dmi differ diff --git a/icons/mob/clothing/species/unathi/uniform.dmi b/icons/mob/clothing/species/unathi/uniform.dmi index 024281400e3..6aee22d0f18 100644 Binary files a/icons/mob/clothing/species/unathi/uniform.dmi and b/icons/mob/clothing/species/unathi/uniform.dmi differ diff --git a/icons/mob/clothing/species/vox/eyes.dmi b/icons/mob/clothing/species/vox/eyes.dmi index cdebe30bcfd..20aefc08055 100644 Binary files a/icons/mob/clothing/species/vox/eyes.dmi and b/icons/mob/clothing/species/vox/eyes.dmi differ diff --git a/icons/mob/clothing/species/vox/feet.dmi b/icons/mob/clothing/species/vox/feet.dmi index 0318c855257..fcd0a1a30b9 100644 Binary files a/icons/mob/clothing/species/vox/feet.dmi and b/icons/mob/clothing/species/vox/feet.dmi differ diff --git a/icons/mob/clothing/species/vox/gloves.dmi b/icons/mob/clothing/species/vox/gloves.dmi index d49e1548724..288d487e8ec 100644 Binary files a/icons/mob/clothing/species/vox/gloves.dmi and b/icons/mob/clothing/species/vox/gloves.dmi differ diff --git a/icons/mob/clothing/species/vox/head.dmi b/icons/mob/clothing/species/vox/head.dmi index f84ac710642..4746197531b 100644 Binary files a/icons/mob/clothing/species/vox/head.dmi and b/icons/mob/clothing/species/vox/head.dmi differ diff --git a/icons/mob/clothing/species/vox/shoes.dmi b/icons/mob/clothing/species/vox/shoes.dmi index 2803ba9e60e..c5460f4b8f1 100644 Binary files a/icons/mob/clothing/species/vox/shoes.dmi and b/icons/mob/clothing/species/vox/shoes.dmi differ diff --git a/icons/mob/clothing/species/vox/suit.dmi b/icons/mob/clothing/species/vox/suit.dmi index a424b5eb8d4..faee91a9bb9 100644 Binary files a/icons/mob/clothing/species/vox/suit.dmi and b/icons/mob/clothing/species/vox/suit.dmi differ diff --git a/icons/mob/clothing/species/vox/underwear.dmi b/icons/mob/clothing/species/vox/underwear.dmi index 16d526015d7..4aa5b056698 100644 Binary files a/icons/mob/clothing/species/vox/underwear.dmi and b/icons/mob/clothing/species/vox/underwear.dmi differ diff --git a/icons/mob/clothing/species/vox/uniform.dmi b/icons/mob/clothing/species/vox/uniform.dmi index ca90761b03f..22e87303d39 100644 Binary files a/icons/mob/clothing/species/vox/uniform.dmi and b/icons/mob/clothing/species/vox/uniform.dmi differ diff --git a/icons/mob/clothing/species/vulpkanin/head.dmi b/icons/mob/clothing/species/vulpkanin/head.dmi index 0296d04a8e4..e8d8121cb24 100644 Binary files a/icons/mob/clothing/species/vulpkanin/head.dmi and b/icons/mob/clothing/species/vulpkanin/head.dmi differ diff --git a/icons/mob/clothing/suit.dmi b/icons/mob/clothing/suit.dmi index c2d9ddf3951..67aeca59d1f 100644 Binary files a/icons/mob/clothing/suit.dmi and b/icons/mob/clothing/suit.dmi differ diff --git a/icons/mob/clothing/underwear.dmi b/icons/mob/clothing/underwear.dmi index c46b91415cb..863f2982c1f 100644 Binary files a/icons/mob/clothing/underwear.dmi and b/icons/mob/clothing/underwear.dmi differ diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi index b0193db9341..6cc0a8b1ab0 100644 Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 3fe62321f32..17370badcbb 100644 Binary files a/icons/obj/clothing/gloves.dmi and b/icons/obj/clothing/gloves.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index 4f4bdf8dd70..c31df293e41 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/shoes.dmi b/icons/obj/clothing/shoes.dmi index 8b95eb21dfd..ea0c5eef85a 100644 Binary files a/icons/obj/clothing/shoes.dmi and b/icons/obj/clothing/shoes.dmi differ diff --git a/icons/obj/clothing/species/tajaran/hats.dmi b/icons/obj/clothing/species/tajaran/hats.dmi index e41451f71f8..db553bede02 100644 Binary files a/icons/obj/clothing/species/tajaran/hats.dmi and b/icons/obj/clothing/species/tajaran/hats.dmi differ diff --git a/icons/obj/clothing/species/tajaran/suits.dmi b/icons/obj/clothing/species/tajaran/suits.dmi index d60a0a6840f..c4954fd2b1b 100644 Binary files a/icons/obj/clothing/species/tajaran/suits.dmi and b/icons/obj/clothing/species/tajaran/suits.dmi differ diff --git a/icons/obj/clothing/species/unathi/suits.dmi b/icons/obj/clothing/species/unathi/suits.dmi index 30b590cc7ed..b4c59ff4c5a 100644 Binary files a/icons/obj/clothing/species/unathi/suits.dmi and b/icons/obj/clothing/species/unathi/suits.dmi differ diff --git a/icons/obj/clothing/species/vox/suits.dmi b/icons/obj/clothing/species/vox/suits.dmi index 4dc0ade4fb8..78114f27d5a 100644 Binary files a/icons/obj/clothing/species/vox/suits.dmi and b/icons/obj/clothing/species/vox/suits.dmi differ diff --git a/icons/obj/clothing/species/vulpkanin/hats.dmi b/icons/obj/clothing/species/vulpkanin/hats.dmi index 3e97b07e15b..a415f6c8a1c 100644 Binary files a/icons/obj/clothing/species/vulpkanin/hats.dmi and b/icons/obj/clothing/species/vulpkanin/hats.dmi differ diff --git a/icons/obj/clothing/species/vulpkanin/suits.dmi b/icons/obj/clothing/species/vulpkanin/suits.dmi index 30cb26b4c62..4da1de55772 100644 Binary files a/icons/obj/clothing/species/vulpkanin/suits.dmi and b/icons/obj/clothing/species/vulpkanin/suits.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 41289a88f20..3dd53a2356d 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi index 2a07bfad130..4e587a6c87e 100644 Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ diff --git a/icons/obj/decals.dmi b/icons/obj/decals.dmi index 4e2d910c86d..a648c47dfd6 100644 Binary files a/icons/obj/decals.dmi and b/icons/obj/decals.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index 91037b84125..63ccb5e2def 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/paradise.dme b/paradise.dme index 2370ba33490..fefe6beb128 100644 --- a/paradise.dme +++ b/paradise.dme @@ -18,6 +18,7 @@ #include "code\__DEFINES\__byond_version_compat.dm" #include "code\__DEFINES\_bitfields.dm" #include "code\__DEFINES\_globals.dm" +#include "code\__DEFINES\_helpers.dm" #include "code\__DEFINES\_protection.dm" #include "code\__DEFINES\_readme.dm" #include "code\__DEFINES\_spacemandmm.dm" @@ -117,6 +118,7 @@ #include "code\__DEFINES\status_effects.dm" #include "code\__DEFINES\subsystems.dm" #include "code\__DEFINES\surgery_defines.dm" +#include "code\__DEFINES\text.dm" #include "code\__DEFINES\tgs.dm" #include "code\__DEFINES\tgui.dm" #include "code\__DEFINES\tools.dm" diff --git a/tgui/packages/tgui/interfaces/common/CrewManifest.js b/tgui/packages/tgui/interfaces/common/CrewManifest.js index f8520d06bfb..d9210d4268a 100644 --- a/tgui/packages/tgui/interfaces/common/CrewManifest.js +++ b/tgui/packages/tgui/interfaces/common/CrewManifest.js @@ -47,9 +47,9 @@ const ManifestTable = group => { {group.map(person => ( + bold={HBC(person.real_rank)}> {decodeHtmlEntities(person.name)} {decodeHtmlEntities(person.rank)} {person.active} diff --git a/tgui/packages/tgui/public/tgui.bundle.js b/tgui/packages/tgui/public/tgui.bundle.js index baedaabdfae..4df6c9e5465 100644 --- a/tgui/packages/tgui/public/tgui.bundle.js +++ b/tgui/packages/tgui/public/tgui.bundle.js @@ -59,7 +59,7 @@ var a=/-o$/,c=function(e){var t=e.name,n=e.size,c=e.spin,l=e.className,s=e.style * @copyright 2020 Aleksej Komarov * @license MIT */ -var s=function(e){var t,n;function s(t){var n;n=e.call(this,t)||this;var i=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:i,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,i=n.props.onDrag;o&&i&&i(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,i=t.maxValue,a=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var s=Number.isFinite(o)?o%a:0;n.internalValue=(0,r.clamp)(n.internalValue+l*a/c,o-a,i+a),n.value=(0,r.clamp)(n.internalValue-n.internalValue%a+s,o,i),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,i=n.state,a=i.dragging,c=i.value,l=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var s=n.inputRef.current;s.value=l;try{s.focus(),s.select()}catch(d){}}},n}return n=e,(t=s).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,s.prototype.render=function(){var e=this,t=this.state,n=t.dragging,s=t.editing,d=t.value,u=t.suppressingFlicker,p=this.props,m=p.className,h=p.fluid,f=p.animated,C=p.value,g=p.unit,N=p.minValue,b=p.maxValue,V=p.height,v=p.width,x=p.lineHeight,y=p.fontSize,k=p.format,w=p.onChange,_=p.onDrag,B=C;(n||u)&&(B=d);var S=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:a.IS_IE8})},L=f&&!n&&!u&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:B,format:k,children:S})||S(k?k(B):B);return(0,o.createComponentVNode)(2,l.Box,{className:(0,i.classes)(["NumberInput",h&&"NumberInput--fluid",m]),minWidth:v,minHeight:V,lineHeight:x,fontSize:y,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((B-N)/(b-N)*100,0,100)+"%"}}),2),L,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:s?undefined:"none",height:V,"line-height":x,"font-size":y},onBlur:function(t){if(s){var n=(0,r.clamp)(t.target.value,N,b);e.setState({editing:!1,value:n}),e.suppressFlicker(),w&&w(t,n),_&&_(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,N,b);return e.setState({editing:!1,value:n}),e.suppressFlicker(),w&&w(t,n),void(_&&_(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},s}(o.Component);t.NumberInput=s,s.defaultHooks=i.pureComponentHooks,s.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";var o=n(66);e.exports=new o({explicit:[n(499),n(500),n(501)]})},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(0),r=n(2),i=n(523),a=function(e){var t=e.beakerLoaded,n=e.beakerContents,i=void 0===n?[]:n,a=e.buttons;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===i.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),i.map((function(e,t){return(0,o.createComponentVNode)(2,r.Box,{width:"100%",children:[(0,o.createComponentVNode)(2,r.Box,{color:"label",display:"inline",verticalAlign:"middle",children:[(n=e.volume,n+" unit"+(1===n?"":"s"))," of ",e.name]}),!!a&&(0,o.createComponentVNode)(2,r.Box,{float:"right",display:"inline",children:a(e,t)}),(0,o.createComponentVNode)(2,r.Box,{clear:"both"})]},e.name);var n}))]})};t.BeakerContents=a,a.propTypes={beakerLoaded:i.bool,beakerContents:i.array,buttons:i.arrayOf(i.element)}},function(e,t,n){"use strict";t.__esModule=!0,t.CrewManifest=void 0;var o=n(0),r=n(1),i=n(2),a=n(18),c=n(43).COLORS.department,l=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],s=function(e){if(-1!==l.indexOf(e))return!0},d=function(e){return e.length>0&&(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,color:"white",children:[(0,o.createComponentVNode)(2,i.Table.Cell,{width:"50%",children:"Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{width:"35%",children:"Rank"}),(0,o.createComponentVNode)(2,i.Table.Cell,{width:"15%",children:"Active"})]}),e.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{color:(t=e.rank,-1!==l.indexOf(t)?"green":"orange"),bold:s(e.rank),children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,a.decodeHtmlEntities)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,a.decodeHtmlEntities)(e.rank)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.active})]},e.name+e.rank);var t}))]})};t.CrewManifest=function(e,t){var n;(0,r.useBackend)(t).act;e.data?n=e.data:n=(0,r.useBackend)(t).data;var a=n.manifest,l=a.heads,s=a.pro,u=a.sec,p=a.eng,m=a.med,h=a.sci,f=a.ser,C=a.sup,g=a.misc;return(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.command,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:d(l)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.procedure,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Procedure"})}),level:2,children:d(s)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.security,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:d(u)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.engineering,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:d(p)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.medical,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:d(m)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.science,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:d(h)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.service,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:d(f)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.supply,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:d(C)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:d(g)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.TemporaryNotice=void 0;var o=n(0),r=n(1),i=n(2);t.TemporaryNotice=function(e,t){var n,a=(0,r.useBackend)(t),c=a.act,l=a.data.temp;if(l){var s=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.NoticeBox,Object.assign({},s,{children:[(0,o.createComponentVNode)(2,i.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,i.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,o.createComponentVNode)(2,i.Box,{clear:"both"})]})))}}},function(e,t,n){"use strict";var o=n(9),r=n(5),i=n(108);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(6),r=n(109),i=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=i},function(e,t,n){"use strict";var o=n(6),r=n(110),i=o.WeakMap;e.exports="function"==typeof i&&/native code/.test(r(i))},function(e,t,n){"use strict";var o=n(19),r=n(112),i=n(22),a=n(14);e.exports=function(e,t){for(var n=r(t),c=a.f,l=i.f,s=0;sl;)o(c,n=t[l++])&&(~i(s,n)||s.push(n));return s}},function(e,t,n){"use strict";var o=n(115);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(9),r=n(14),i=n(10),a=n(73);e.exports=o?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(39);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(28),r=n(55).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return r(e)}catch(t){return a.slice()}}(e):r(o(e))}},function(e,t,n){"use strict";var o=n(13);t.f=o},function(e,t,n){"use strict";var o=n(16),r=n(46),i=n(12),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=i(n.length),l=r(e,c),s=r(t,c),d=arguments.length>2?arguments[2]:undefined,u=a((d===undefined?c:r(d,c))-s,c-l),p=1;for(s0;)s in n?n[l]=n[s]:delete n[l],l+=p,s+=p;return n}},function(e,t,n){"use strict";var o=n(60),r=n(12),i=n(56);e.exports=function a(e,t,n,c,l,s,d,u){for(var p,m=l,h=0,f=!!d&&i(d,u,3);h0&&o(p))m=a(e,t,p,r(p.length),m,s-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}h++}return m}},function(e,t,n){"use strict";var o=n(10);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(a){var i=e["return"];throw i!==undefined&&o(i.call(e)),a}}},function(e,t,n){"use strict";var o=n(28),r=n(49),i=n(76),a=n(37),c=n(121),l=a.set,s=a.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=s(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,i,a=n(38),c=n(32),l=n(19),s=n(13),d=n(40),u=s("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(r=a(a(i)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),d||l(o,u)||c(o,u,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(28),r=n(33),i=n(12),a=n(41),c=n(27),l=Math.min,s=[].lastIndexOf,d=!!s&&1/[1].lastIndexOf(1,-0)<0,u=a("lastIndexOf"),p=c("indexOf",{ACCESSORS:!0,1:0}),m=d||!u||!p;e.exports=m?function(e){if(d)return s.apply(this,arguments)||0;var t=o(this),n=i(t.length),a=n-1;for(arguments.length>1&&(a=l(a,r(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:s},function(e,t,n){"use strict";var o=n(33),r=n(12);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(34),r=n(8),i=[].slice,a={},c=function(e,t,n){if(!(t in a)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),i(d.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),u&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=f(t),i=f(o);s(e,t,(function(e,t){h(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(8),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(6),r=n(63).trim,i=n(93),a=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==a(i+"08")||22!==a(i+"0x16");e.exports=l?function(e,t){var n=r(String(e));return a(n,t>>>0||(c.test(n)?16:10))}:a},function(e,t,n){"use strict";var o=n(9),r=n(73),i=n(28),a=n(83).f,c=function(e){return function(t){for(var n,c=i(t),l=r(c),s=l.length,d=0,u=[];s>d;)n=l[d++],o&&!a.call(c,n)||u.push(e?[n,c[n]]:c[n]);return u}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(6);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(85);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,i,a,c,l,s,d,u=n(6),p=n(22).f,m=n(35),h=n(127).set,f=n(173),C=u.MutationObserver||u.WebKitMutationObserver,g=u.process,N=u.Promise,b="process"==m(g),V=p(u,"queueMicrotask"),v=V&&V.value;v||(o=function(){var e,t;for(b&&(e=g.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?a():i=undefined,n}}i=undefined,e&&e.enter()},b?a=function(){g.nextTick(o)}:C&&!f?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),a=function(){l.data=c=!c}):N&&N.resolve?(s=N.resolve(undefined),d=s.then,a=function(){d.call(s,o)}):a=function(){h.call(u,o)}),e.exports=v||function(e){var t={fn:e,next:undefined};i&&(i.next=t),r||(r=t,a()),i=t}},function(e,t,n){"use strict";var o=n(10),r=n(8),i=n(176);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(34),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(4),r=n(96);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(85);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(376);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(16),r=n(12),i=n(119),a=n(118),c=n(56),l=n(11).aTypedArrayConstructor;e.exports=function(e){var t,n,s,d,u,p,m=o(e),h=arguments.length,f=h>1?arguments[1]:undefined,C=f!==undefined,g=i(m);if(g!=undefined&&!a(g))for(p=(u=g.call(m)).next,m=[];!(d=p.call(u)).done;)m.push(d.value);for(C&&h>2&&(f=c(f,arguments[2],2)),n=r(m.length),s=new(l(this))(n),t=0;n>t;t++)s[t]=C?f(m[t],t):m[t];return s}},function(e,t,n){"use strict";var o=n(77),r=n(59).getWeakData,i=n(10),a=n(8),c=n(62),l=n(79),s=n(21),d=n(19),u=n(37),p=u.set,m=u.getterFor,h=s.find,f=s.findIndex,C=0,g=function(e){return e.frozen||(e.frozen=new N)},N=function(){this.entries=[]},b=function(e,t){return h(e.entries,(function(e){return e[0]===t}))};N.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=f(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,s){var u=e((function(e,o){c(e,u,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[s],e,n)})),h=m(t),f=function(e,t,n){var o=h(e),a=r(i(t),!0);return!0===a?g(o).set(t,n):a[o.id]=n,e};return o(u.prototype,{"delete":function(e){var t=h(this);if(!a(e))return!1;var n=r(e);return!0===n?g(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=h(this);if(!a(e))return!1;var n=r(e);return!0===n?g(t).has(e):n&&d(n,t.id)}}),o(u.prototype,n?{get:function(e){var t=h(this);if(a(e)){var n=r(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return f(this,e,t)}}:{add:function(e){return f(this,e,!0)}}),u}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o=n(418),r=n(23);function i(e,t,n,o,r,i,a){try{var c=e[i](a),l=c.value}catch(s){return void n(s)}c.done?t(l):Promise.resolve(l).then(o,r)} +var s=function(e){var t,n;function s(t){var n;n=e.call(this,t)||this;var i=t.value;return n.inputRef=(0,o.createRef)(),n.state={value:i,dragging:!1,editing:!1,internalValue:null,origin:null,suppressingFlicker:!1},n.flickerTimer=null,n.suppressFlicker=function(){var e=n.props.suppressFlicker;e>0&&(n.setState({suppressingFlicker:!0}),clearTimeout(n.flickerTimer),n.flickerTimer=setTimeout((function(){return n.setState({suppressingFlicker:!1})}),e))},n.handleDragStart=function(e){var t=n.props.value;n.state.editing||(document.body.style["pointer-events"]="none",n.ref=e.target,n.setState({dragging:!1,origin:e.screenY,value:t,internalValue:t}),n.timer=setTimeout((function(){n.setState({dragging:!0})}),250),n.dragInterval=setInterval((function(){var t=n.state,o=t.dragging,r=t.value,i=n.props.onDrag;o&&i&&i(e,r)}),500),document.addEventListener("mousemove",n.handleDragMove),document.addEventListener("mouseup",n.handleDragEnd))},n.handleDragMove=function(e){var t=n.props,o=t.minValue,i=t.maxValue,a=t.step,c=t.stepPixelSize;n.setState((function(t){var n=Object.assign({},t),l=n.origin-e.screenY;if(t.dragging){var s=Number.isFinite(o)?o%a:0;n.internalValue=(0,r.clamp)(n.internalValue+l*a/c,o-a,i+a),n.value=(0,r.clamp)(n.internalValue-n.internalValue%a+s,o,i),n.origin=e.screenY}else Math.abs(l)>4&&(n.dragging=!0);return n}))},n.handleDragEnd=function(e){var t=n.props,o=t.onChange,r=t.onDrag,i=n.state,a=i.dragging,c=i.value,l=i.internalValue;if(document.body.style["pointer-events"]="auto",clearTimeout(n.timer),clearInterval(n.dragInterval),n.setState({dragging:!1,editing:!a,origin:null}),document.removeEventListener("mousemove",n.handleDragMove),document.removeEventListener("mouseup",n.handleDragEnd),a)n.suppressFlicker(),o&&o(e,c),r&&r(e,c);else if(n.inputRef){var s=n.inputRef.current;s.value=l;try{s.focus(),s.select()}catch(d){}}},n}return n=e,(t=s).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n,s.prototype.render=function(){var e=this,t=this.state,n=t.dragging,s=t.editing,d=t.value,u=t.suppressingFlicker,p=this.props,m=p.className,h=p.fluid,f=p.animated,C=p.value,g=p.unit,N=p.minValue,b=p.maxValue,V=p.height,v=p.width,x=p.lineHeight,y=p.fontSize,k=p.format,w=p.onChange,_=p.onDrag,B=C;(n||u)&&(B=d);var S=function(e){return(0,o.createVNode)(1,"div","NumberInput__content",e+(g?" "+g:""),0,{unselectable:a.IS_IE8})},L=f&&!n&&!u&&(0,o.createComponentVNode)(2,c.AnimatedNumber,{value:B,format:k,children:S})||S(k?k(B):B);return(0,o.createComponentVNode)(2,l.Box,{className:(0,i.classes)(["NumberInput",h&&"NumberInput--fluid",m]),minWidth:v,minHeight:V,lineHeight:x,fontSize:y,onMouseDown:this.handleDragStart,children:[(0,o.createVNode)(1,"div","NumberInput__barContainer",(0,o.createVNode)(1,"div","NumberInput__bar",null,1,{style:{height:(0,r.clamp)((B-N)/(b-N)*100,0,100)+"%"}}),2),L,(0,o.createVNode)(64,"input","NumberInput__input",null,1,{style:{display:s?undefined:"none",height:V,"line-height":x,"font-size":y},onBlur:function(t){if(s){var n=(0,r.clamp)(t.target.value,N,b);e.setState({editing:!1,value:n}),e.suppressFlicker(),w&&w(t,n),_&&_(t,n)}},onKeyDown:function(t){if(13===t.keyCode){var n=(0,r.clamp)(t.target.value,N,b);return e.setState({editing:!1,value:n}),e.suppressFlicker(),w&&w(t,n),void(_&&_(t,n))}27!==t.keyCode||e.setState({editing:!1})}},null,this.inputRef)]})},s}(o.Component);t.NumberInput=s,s.defaultHooks=i.pureComponentHooks,s.defaultProps={minValue:-Infinity,maxValue:+Infinity,step:1,stepPixelSize:1,suppressFlicker:50}},function(e,t,n){"use strict";var o=n(66);e.exports=new o({explicit:[n(499),n(500),n(501)]})},function(e,t,n){"use strict";t.__esModule=!0,t.BeakerContents=void 0;var o=n(0),r=n(2),i=n(523),a=function(e){var t=e.beakerLoaded,n=e.beakerContents,i=void 0===n?[]:n,a=e.buttons;return(0,o.createComponentVNode)(2,r.Box,{children:[!t&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"No beaker loaded."})||0===i.length&&(0,o.createComponentVNode)(2,r.Box,{color:"label",children:"Beaker is empty."}),i.map((function(e,t){return(0,o.createComponentVNode)(2,r.Box,{width:"100%",children:[(0,o.createComponentVNode)(2,r.Box,{color:"label",display:"inline",verticalAlign:"middle",children:[(n=e.volume,n+" unit"+(1===n?"":"s"))," of ",e.name]}),!!a&&(0,o.createComponentVNode)(2,r.Box,{float:"right",display:"inline",children:a(e,t)}),(0,o.createComponentVNode)(2,r.Box,{clear:"both"})]},e.name);var n}))]})};t.BeakerContents=a,a.propTypes={beakerLoaded:i.bool,beakerContents:i.array,buttons:i.arrayOf(i.element)}},function(e,t,n){"use strict";t.__esModule=!0,t.CrewManifest=void 0;var o=n(0),r=n(1),i=n(2),a=n(18),c=n(43).COLORS.department,l=["Captain","Head of Security","Chief Engineer","Chief Medical Officer","Research Director","Head of Personnel","Quartermaster"],s=function(e){if(-1!==l.indexOf(e))return!0},d=function(e){return e.length>0&&(0,o.createComponentVNode)(2,i.Table,{children:[(0,o.createComponentVNode)(2,i.Table.Row,{header:!0,color:"white",children:[(0,o.createComponentVNode)(2,i.Table.Cell,{width:"50%",children:"Name"}),(0,o.createComponentVNode)(2,i.Table.Cell,{width:"35%",children:"Rank"}),(0,o.createComponentVNode)(2,i.Table.Cell,{width:"15%",children:"Active"})]}),e.map((function(e){return(0,o.createComponentVNode)(2,i.Table.Row,{color:(t=e.real_rank,-1!==l.indexOf(t)?"green":"orange"),bold:s(e.real_rank),children:[(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,a.decodeHtmlEntities)(e.name)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:(0,a.decodeHtmlEntities)(e.rank)}),(0,o.createComponentVNode)(2,i.Table.Cell,{children:e.active})]},e.name+e.rank);var t}))]})};t.CrewManifest=function(e,t){var n;(0,r.useBackend)(t).act;e.data?n=e.data:n=(0,r.useBackend)(t).data;var a=n.manifest,l=a.heads,s=a.pro,u=a.sec,p=a.eng,m=a.med,h=a.sci,f=a.ser,C=a.sup,g=a.misc;return(0,o.createComponentVNode)(2,i.Box,{children:[(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.command,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Command"})}),level:2,children:d(l)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.procedure,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Procedure"})}),level:2,children:d(s)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.security,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Security"})}),level:2,children:d(u)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.engineering,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Engineering"})}),level:2,children:d(p)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.medical,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Medical"})}),level:2,children:d(m)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.science,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Science"})}),level:2,children:d(h)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.service,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Service"})}),level:2,children:d(f)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{backgroundColor:c.supply,m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Supply"})}),level:2,children:d(C)}),(0,o.createComponentVNode)(2,i.Section,{title:(0,o.createComponentVNode)(2,i.Box,{m:-1,pt:1,pb:1,children:(0,o.createComponentVNode)(2,i.Box,{ml:1,textAlign:"center",fontSize:1.4,children:"Misc"})}),level:2,children:d(g)})]})}},function(e,t,n){"use strict";t.__esModule=!0,t.TemporaryNotice=void 0;var o=n(0),r=n(1),i=n(2);t.TemporaryNotice=function(e,t){var n,a=(0,r.useBackend)(t),c=a.act,l=a.data.temp;if(l){var s=((n={})[l.style]=!0,n);return(0,o.normalizeProps)((0,o.createComponentVNode)(2,i.NoticeBox,Object.assign({},s,{children:[(0,o.createComponentVNode)(2,i.Box,{display:"inline-block",verticalAlign:"middle",children:l.text}),(0,o.createComponentVNode)(2,i.Button,{icon:"times-circle",float:"right",onClick:function(){return c("cleartemp")}}),(0,o.createComponentVNode)(2,i.Box,{clear:"both"})]})))}}},function(e,t,n){"use strict";var o=n(9),r=n(5),i=n(108);e.exports=!o&&!r((function(){return 7!=Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},function(e,t,n){"use strict";var o=n(6),r=n(109),i=o["__core-js_shared__"]||r("__core-js_shared__",{});e.exports=i},function(e,t,n){"use strict";var o=n(6),r=n(110),i=o.WeakMap;e.exports="function"==typeof i&&/native code/.test(r(i))},function(e,t,n){"use strict";var o=n(19),r=n(112),i=n(22),a=n(14);e.exports=function(e,t){for(var n=r(t),c=a.f,l=i.f,s=0;sl;)o(c,n=t[l++])&&(~i(s,n)||s.push(n));return s}},function(e,t,n){"use strict";var o=n(115);e.exports=o&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},function(e,t,n){"use strict";var o=n(9),r=n(14),i=n(10),a=n(73);e.exports=o?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),c=o.length,l=0;c>l;)r.f(e,n=o[l++],t[n]);return e}},function(e,t,n){"use strict";var o=n(39);e.exports=o("document","documentElement")},function(e,t,n){"use strict";var o=n(28),r=n(55).f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return a&&"[object Window]"==i.call(e)?function(e){try{return r(e)}catch(t){return a.slice()}}(e):r(o(e))}},function(e,t,n){"use strict";var o=n(13);t.f=o},function(e,t,n){"use strict";var o=n(16),r=n(46),i=n(12),a=Math.min;e.exports=[].copyWithin||function(e,t){var n=o(this),c=i(n.length),l=r(e,c),s=r(t,c),d=arguments.length>2?arguments[2]:undefined,u=a((d===undefined?c:r(d,c))-s,c-l),p=1;for(s0;)s in n?n[l]=n[s]:delete n[l],l+=p,s+=p;return n}},function(e,t,n){"use strict";var o=n(60),r=n(12),i=n(56);e.exports=function a(e,t,n,c,l,s,d,u){for(var p,m=l,h=0,f=!!d&&i(d,u,3);h0&&o(p))m=a(e,t,p,r(p.length),m,s-1)-1;else{if(m>=9007199254740991)throw TypeError("Exceed the acceptable array length");e[m]=p}m++}h++}return m}},function(e,t,n){"use strict";var o=n(10);e.exports=function(e,t,n,r){try{return r?t(o(n)[0],n[1]):t(n)}catch(a){var i=e["return"];throw i!==undefined&&o(i.call(e)),a}}},function(e,t,n){"use strict";var o=n(28),r=n(49),i=n(76),a=n(37),c=n(121),l=a.set,s=a.getterFor("Array Iterator");e.exports=c(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:o(e),index:0,kind:t})}),(function(){var e=s(this),t=e.target,n=e.kind,o=e.index++;return!t||o>=t.length?(e.target=undefined,{value:undefined,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:t[o],done:!1}:{value:[o,t[o]],done:!1}}),"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var o,r,i,a=n(38),c=n(32),l=n(19),s=n(13),d=n(40),u=s("iterator"),p=!1;[].keys&&("next"in(i=[].keys())?(r=a(a(i)))!==Object.prototype&&(o=r):p=!0),o==undefined&&(o={}),d||l(o,u)||c(o,u,(function(){return this})),e.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:p}},function(e,t,n){"use strict";var o=n(8);e.exports=function(e){if(!o(e)&&null!==e)throw TypeError("Can't set "+String(e)+" as a prototype");return e}},function(e,t,n){"use strict";var o=n(28),r=n(33),i=n(12),a=n(41),c=n(27),l=Math.min,s=[].lastIndexOf,d=!!s&&1/[1].lastIndexOf(1,-0)<0,u=a("lastIndexOf"),p=c("indexOf",{ACCESSORS:!0,1:0}),m=d||!u||!p;e.exports=m?function(e){if(d)return s.apply(this,arguments)||0;var t=o(this),n=i(t.length),a=n-1;for(arguments.length>1&&(a=l(a,r(arguments[1]))),a<0&&(a=n+a);a>=0;a--)if(a in t&&t[a]===e)return a||0;return-1}:s},function(e,t,n){"use strict";var o=n(33),r=n(12);e.exports=function(e){if(e===undefined)return 0;var t=o(e),n=r(t);if(t!==n)throw RangeError("Wrong length or index");return n}},function(e,t,n){"use strict";var o=n(34),r=n(8),i=[].slice,a={},c=function(e,t,n){if(!(t in a)){for(var o=[],r=0;r1?arguments[1]:undefined,3);t=t?t.next:n.first;)for(o(t.value,t.key,this);t&&t.removed;)t=t.previous},has:function(e){return!!g(this,e)}}),i(d.prototype,n?{get:function(e){var t=g(this,e);return t&&t.value},set:function(e,t){return C(this,0===e?0:e,t)}}:{add:function(e){return C(this,e=0===e?0:e,e)}}),u&&o(d.prototype,"size",{get:function(){return m(this).size}}),d},setStrong:function(e,t,n){var o=t+" Iterator",r=f(t),i=f(o);s(e,t,(function(e,t){h(this,{type:o,target:e,state:r(e),kind:t,last:undefined})}),(function(){for(var e=i(this),t=e.kind,n=e.last;n&&n.removed;)n=n.previous;return e.target&&(e.last=n=n?n.next:e.state.first)?"keys"==t?{value:n.key,done:!1}:"values"==t?{value:n.value,done:!1}:{value:[n.key,n.value],done:!1}:(e.target=undefined,{value:undefined,done:!0})}),n?"entries":"values",!n,!0),d(t)}}},function(e,t,n){"use strict";var o=Math.log;e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:o(1+e)}},function(e,t,n){"use strict";var o=n(8),r=Math.floor;e.exports=function(e){return!o(e)&&isFinite(e)&&r(e)===e}},function(e,t,n){"use strict";var o=n(6),r=n(63).trim,i=n(93),a=o.parseInt,c=/^[+-]?0[Xx]/,l=8!==a(i+"08")||22!==a(i+"0x16");e.exports=l?function(e,t){var n=r(String(e));return a(n,t>>>0||(c.test(n)?16:10))}:a},function(e,t,n){"use strict";var o=n(9),r=n(73),i=n(28),a=n(83).f,c=function(e){return function(t){for(var n,c=i(t),l=r(c),s=l.length,d=0,u=[];s>d;)n=l[d++],o&&!a.call(c,n)||u.push(e?[n,c[n]]:c[n]);return u}};e.exports={entries:c(!0),values:c(!1)}},function(e,t,n){"use strict";e.exports=Object.is||function(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}},function(e,t,n){"use strict";var o=n(6);e.exports=o.Promise},function(e,t,n){"use strict";var o=n(85);e.exports=/(iphone|ipod|ipad).*applewebkit/i.test(o)},function(e,t,n){"use strict";var o,r,i,a,c,l,s,d,u=n(6),p=n(22).f,m=n(35),h=n(127).set,f=n(173),C=u.MutationObserver||u.WebKitMutationObserver,g=u.process,N=u.Promise,b="process"==m(g),V=p(u,"queueMicrotask"),v=V&&V.value;v||(o=function(){var e,t;for(b&&(e=g.domain)&&e.exit();r;){t=r.fn,r=r.next;try{t()}catch(n){throw r?a():i=undefined,n}}i=undefined,e&&e.enter()},b?a=function(){g.nextTick(o)}:C&&!f?(c=!0,l=document.createTextNode(""),new C(o).observe(l,{characterData:!0}),a=function(){l.data=c=!c}):N&&N.resolve?(s=N.resolve(undefined),d=s.then,a=function(){d.call(s,o)}):a=function(){h.call(u,o)}),e.exports=v||function(e){var t={fn:e,next:undefined};i&&(i.next=t),r||(r=t,a()),i=t}},function(e,t,n){"use strict";var o=n(10),r=n(8),i=n(176);e.exports=function(e,t){if(o(e),r(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";var o=n(34),r=function(e){var t,n;this.promise=new e((function(e,o){if(t!==undefined||n!==undefined)throw TypeError("Bad Promise constructor");t=e,n=o})),this.resolve=o(t),this.reject=o(n)};e.exports.f=function(e){return new r(e)}},function(e,t,n){"use strict";var o=n(4),r=n(96);o({target:"RegExp",proto:!0,forced:/./.exec!==r},{exec:r})},function(e,t,n){"use strict";var o=n(85);e.exports=/Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(o)},function(e,t,n){"use strict";var o=n(376);e.exports=function(e,t){var n=o(e);if(n%t)throw RangeError("Wrong offset");return n}},function(e,t,n){"use strict";var o=n(16),r=n(12),i=n(119),a=n(118),c=n(56),l=n(11).aTypedArrayConstructor;e.exports=function(e){var t,n,s,d,u,p,m=o(e),h=arguments.length,f=h>1?arguments[1]:undefined,C=f!==undefined,g=i(m);if(g!=undefined&&!a(g))for(p=(u=g.call(m)).next,m=[];!(d=p.call(u)).done;)m.push(d.value);for(C&&h>2&&(f=c(f,arguments[2],2)),n=r(m.length),s=new(l(this))(n),t=0;n>t;t++)s[t]=C?f(m[t],t):m[t];return s}},function(e,t,n){"use strict";var o=n(77),r=n(59).getWeakData,i=n(10),a=n(8),c=n(62),l=n(79),s=n(21),d=n(19),u=n(37),p=u.set,m=u.getterFor,h=s.find,f=s.findIndex,C=0,g=function(e){return e.frozen||(e.frozen=new N)},N=function(){this.entries=[]},b=function(e,t){return h(e.entries,(function(e){return e[0]===t}))};N.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.entries.push([e,t])},"delete":function(e){var t=f(this.entries,(function(t){return t[0]===e}));return~t&&this.entries.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,s){var u=e((function(e,o){c(e,u,t),p(e,{type:t,id:C++,frozen:undefined}),o!=undefined&&l(o,e[s],e,n)})),h=m(t),f=function(e,t,n){var o=h(e),a=r(i(t),!0);return!0===a?g(o).set(t,n):a[o.id]=n,e};return o(u.prototype,{"delete":function(e){var t=h(this);if(!a(e))return!1;var n=r(e);return!0===n?g(t)["delete"](e):n&&d(n,t.id)&&delete n[t.id]},has:function(e){var t=h(this);if(!a(e))return!1;var n=r(e);return!0===n?g(t).has(e):n&&d(n,t.id)}}),o(u.prototype,n?{get:function(e){var t=h(this);if(a(e)){var n=r(e);return!0===n?g(t).get(e):n?n[t.id]:undefined}},set:function(e,t){return f(this,e,t)}}:{add:function(e){return f(this,e,!0)}}),u}}},function(e,t,n){"use strict";t.__esModule=!0,t.setupHotReloading=t.sendLogEntry=void 0;t.sendLogEntry=function(e,t){};t.setupHotReloading=function(){0}},function(e,t,n){"use strict";t.__esModule=!0,t.resizeStartHandler=t.dragStartHandler=t.setupDrag=void 0;var o=n(418),r=n(23);function i(e,t,n,o,r,i,a){try{var c=e[i](a),l=c.value}catch(s){return void n(s)}c.done?t(l):Promise.resolve(l).then(o,r)} /** * @file * @copyright 2020 Aleksej Komarov