diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index ff2d9da84987..08f86f8ba483 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -2,6 +2,15 @@ "aa" = ( /turf/open/space/basic, /area/space) +"ab" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/north{ + network = list("nukie") + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "ac" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -28,6 +37,24 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"ah" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/obj/structure/sign/poster/contraband/energy_swords{ + pixel_x = -32 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"ai" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red, +/obj/item/toy/nuke{ + pixel_x = -5; + pixel_y = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "aj" = ( /obj/effect/turf_decal/siding/dark/corner{ dir = 4 @@ -66,6 +93,14 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/kitchen) +"ap" = ( +/obj/structure/sign/poster/contraband/energy_swords{ + pixel_y = 32 + }, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "aq" = ( /obj/effect/turf_decal/siding/green/end{ dir = 4 @@ -81,6 +116,10 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"as" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "au" = ( /obj/structure/table/reinforced, /obj/item/stack/sheet/iron/fifty, @@ -99,6 +138,12 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"av" = ( +/obj/machinery/light/cold/directional/south, +/obj/item/kirbyplants/random, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "aw" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -144,6 +189,12 @@ /obj/machinery/oven/range, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) +"aD" = ( +/obj/structure/flora/tree/dead/style_random, +/obj/structure/flora/grass/both/style_random, +/obj/structure/railing, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "aE" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -213,6 +264,9 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"aN" = ( +/turf/open/floor/carpet, +/area/centcom/wizard_station) "aO" = ( /obj/structure/window/plasma/spawner/directional/east, /obj/structure/window/plasma/spawner/directional/north, @@ -232,6 +286,9 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"aQ" = ( +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) "aR" = ( /obj/item/kirbyplants{ icon_state = "plant-22" @@ -250,6 +307,14 @@ /obj/machinery/light/floor/has_bulb, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"aT" = ( +/obj/vehicle/ridden/scooter/skateboard{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron, +/area/centcom/wizard_station) "aU" = ( /obj/effect/turf_decal/siding/blue{ dir = 9 @@ -297,6 +362,19 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation/ship) +"bc" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"bd" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "be" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -305,6 +383,30 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) +"bf" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("nukie") + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"bg" = ( +/obj/machinery/light/cold/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"bh" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/simple/general/visible{ + dir = 10 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "bi" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -367,6 +469,27 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"bs" = ( +/obj/structure/railing, +/turf/open/floor/catwalk_floor/iron_smooth{ + initial_gas_mix = "TEMP=2.7" + }, +/area/centcom/syndicate_mothership) +"bt" = ( +/obj/structure/sign/poster/contraband/gorlex_recruitment{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) +"bu" = ( +/obj/structure/dresser, +/obj/structure/noticeboard/directional/south, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "bv" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -393,6 +516,11 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"by" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "bA" = ( /obj/structure/table/reinforced, /obj/item/storage/medkit/regular{ @@ -414,6 +542,19 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"bB" = ( +/obj/structure/table/glass/plasmaglass, +/obj/item/storage/pill_bottle{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/storage/pill_bottle{ + pixel_x = -8; + pixel_y = 6 + }, +/obj/item/storage/pill_bottle, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "bC" = ( /obj/effect/turf_decal/loading_area{ dir = 8 @@ -421,6 +562,10 @@ /obj/structure/fake_stairs/wood/directional/east, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"bD" = ( +/obj/machinery/telecomms/allinone/nuclear, +/turf/open/floor/circuit/red/telecomms, +/area/centcom/central_command_areas/admin) "bE" = ( /obj/effect/turf_decal/trimline/green/corner{ dir = 4 @@ -437,6 +582,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin) +"bG" = ( +/obj/machinery/light/cold/directional/south, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "bH" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -451,6 +600,14 @@ /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"bJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/cold/directional/east, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) "bM" = ( /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/evacuation) @@ -468,6 +625,13 @@ /obj/effect/mapping_helpers/airlock/access/any/admin/captain, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"bP" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) "bQ" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/landmark/prisonwarp, @@ -476,6 +640,14 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/prison/cells) +"bR" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "bS" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/corner{ @@ -483,12 +655,25 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"bT" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/railing/corner{ + dir = 8 + }, +/turf/open/floor/plating/icemoon, +/area/centcom/syndicate_mothership/control) "bU" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/vending/boozeomat, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"bV" = ( +/obj/structure/fence/door/opened, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "bX" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/light/floor/has_bulb, @@ -580,6 +765,19 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) +"ck" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_x = -32 + }, +/obj/machinery/light/cold/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bombthreat) "cl" = ( /obj/structure/bed/roller, /obj/machinery/iv_drip, @@ -607,6 +805,12 @@ }, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin_hangout) +"cp" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "cq" = ( /obj/structure/railing/wood, /turf/open/floor/glass/reinforced, @@ -662,6 +866,22 @@ dir = 8 }, /area/centcom/central_command_areas/hall) +"cz" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/door/airlock/public/glass{ + name = "War Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/textured_large, +/area/centcom/syndicate_mothership/control) +"cA" = ( +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "cB" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -721,6 +941,14 @@ }, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) +"cL" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red{ + dir = 8 + }, +/obj/item/storage/fancy/donut_box, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "cM" = ( /obj/structure/chair/sofa/middle/brown{ dir = 4 @@ -733,6 +961,10 @@ /obj/effect/turf_decal/siding/dark/corner, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/prison/cells) +"cO" = ( +/obj/structure/statue/uranium/nuke, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "cP" = ( /obj/structure/window/reinforced/survival_pod/spawner/directional/north, /turf/open/floor/plating, @@ -794,10 +1026,19 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"cX" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "cY" = ( /obj/structure/fake_stairs/wood/directional/east, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"cZ" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/turf/open/floor/wood, +/area/centcom/wizard_station) "da" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 4 @@ -839,11 +1080,29 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"dg" = ( +/obj/machinery/atmospherics/components/trinary/mixer, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "dh" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"di" = ( +/turf/open/floor/iron/stairs/old, +/area/centcom/syndicate_mothership/control) +"dj" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/nukeop, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "dk" = ( /obj/structure/table/reinforced/plastitaniumglass{ name = "Andrea's Desk" @@ -855,6 +1114,52 @@ "dl" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/medical) +"dm" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Tinted Window"; + opacity = 1 + }, +/obj/structure/table/reinforced/plasmarglass, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -2; + pixel_y = 3 + }, +/obj/item/assembly/signaler{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/assembly/signaler{ + pixel_x = 2; + pixel_y = 5 + }, +/obj/item/assembly/timer{ + pixel_x = 12; + pixel_y = -9 + }, +/obj/item/assembly/timer{ + pixel_x = 15 + }, +/obj/item/assembly/prox_sensor{ + pixel_x = -6; + pixel_y = -4 + }, +/obj/item/assembly/signaler{ + pixel_x = 5; + pixel_y = 10 + }, +/obj/item/assembly/timer{ + pixel_x = 18; + pixel_y = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "dn" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -869,6 +1174,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"dp" = ( +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) "dq" = ( /obj/structure/railing/wood{ dir = 1 @@ -877,6 +1186,22 @@ /obj/structure/table/wood/fancy/black, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"dr" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/structure/table/glass/plasmaglass, +/obj/item/folder/white, +/obj/item/pen{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/machinery/light/cold/directional/west, +/obj/item/stack/spacecash/c200{ + pixel_y = 17 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "ds" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -936,6 +1261,13 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/borbop) +"dB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) "dC" = ( /obj/machinery/modular_computer/console/preset/id/centcom{ dir = 8 @@ -956,6 +1288,52 @@ /obj/structure/curtain/cloth/fancy, /turf/open/indestructible/event/plating, /area/centcom/central_command_areas/kitchen) +"dF" = ( +/obj/structure/table/reinforced, +/obj/item/syndicatedetonator{ + desc = "This gaudy button can be used to instantly detonate syndicate bombs that have been activated on the station. It is also fun to press." + }, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) +"dH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/tank_dispenser, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"dI" = ( +/obj/structure/closet/crate/freezer{ + name = "pantry crate" + }, +/obj/structure/sign/poster/contraband/moffuchis_pizza{ + pixel_y = -32 + }, +/obj/item/reagent_containers/condiment/rice{ + pixel_y = 12 + }, +/obj/item/reagent_containers/condiment/rice{ + pixel_y = 12 + }, +/obj/item/reagent_containers/condiment/saltshaker, +/obj/item/reagent_containers/condiment/peppermill, +/obj/item/food/grown/wheat, +/obj/item/food/grown/wheat, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/food/grown/soybeans, +/obj/item/food/grown/soybeans, +/obj/item/food/grown/vanillapod, +/obj/item/food/grown/vanillapod, +/obj/item/food/grown/herbs, +/obj/item/food/grown/herbs, +/obj/item/food/grown/cocoapod, +/obj/item/food/grown/cocoapod, +/obj/item/food/grown/aloe, +/obj/item/food/grown/coffee, +/obj/item/food/grown/coffee, +/turf/open/floor/plastic, +/area/centcom/syndicate_mothership/expansion_fridgerummage) "dJ" = ( /obj/structure/punching_bag, /obj/effect/turf_decal/siding/dark{ @@ -974,6 +1352,24 @@ /obj/machinery/door/airlock/highsecurity, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) +"dL" = ( +/obj/structure/chair/sofa/bench{ + dir = 4 + }, +/obj/machinery/light/cold/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"dN" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Game Room" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "dO" = ( /obj/structure/railing/wood{ dir = 4 @@ -1022,6 +1418,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"dX" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "dZ" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -1035,6 +1437,11 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/hall) +"eb" = ( +/obj/structure/sink/kitchen/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "ec" = ( /obj/structure/railing{ dir = 4; @@ -1066,6 +1473,24 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"ef" = ( +/obj/structure/fence/cut/medium, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"eg" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/rag, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"ei" = ( +/obj/machinery/griddle, +/obj/structure/sign/poster/contraband/syndiemoth{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "ej" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/siding/dark, @@ -1084,6 +1509,33 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"el" = ( +/obj/machinery/computer/atmos_control/noreconnect{ + atmos_chambers = list("nukiebase"="Burn Chamber"); + desc = "Used to monitor the Syndicate Ordnance Laboratory's burn chamber."; + dir = 1; + name = "Ordnance Chamber Monitor" + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/light/cold/directional/west{ + dir = 2 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"em" = ( +/obj/machinery/chem_mass_spec, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"en" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "eo" = ( /obj/structure/table/reinforced/titaniumglass, /obj/machinery/computer/security/wooden_tv, @@ -1100,6 +1552,10 @@ }, /turf/open/floor/carpet, /area/centcom/central_command_areas/hall) +"er" = ( +/obj/structure/filingcabinet/medical, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) "es" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/machinery/chem_dispenser/drinks/beer/fullupgrade{ @@ -1114,6 +1570,15 @@ /obj/structure/hedge, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"eu" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "ev" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -1124,11 +1589,24 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"ex" = ( +/obj/machinery/hydroponics/constructable, +/turf/open/floor/mineral/titanium/tiled, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "ey" = ( /obj/structure/flora/bush/leavy, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation/ship) +"ez" = ( +/obj/machinery/button/door/directional/south{ + desc = "Looks like the elevator is under maintenance.."; + name = "Elevator Button" + }, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "eA" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -1165,6 +1643,12 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"eH" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/engine/vacuum, +/area/centcom/syndicate_mothership/expansion_bombthreat) "eI" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/railing/wood, @@ -1173,6 +1657,11 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) +"eJ" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "eK" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -1180,6 +1669,26 @@ /obj/structure/hedge, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"eL" = ( +/obj/structure/destructible/cult/item_dispenser/altar{ + desc = "An altar dedicated to the Wizard Federation." + }, +/obj/item/knife/ritual, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"eM" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) +"eN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) +"eO" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "eP" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/curtain/cloth/fancy, @@ -1235,6 +1744,9 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) +"eZ" = ( +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bombthreat) "fa" = ( /obj/machinery/status_display/evac/directional/south, /obj/effect/turf_decal/tile/green{ @@ -1242,6 +1754,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"fc" = ( +/turf/open/floor/wood, +/area/centcom/wizard_station) +"fd" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "fe" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -1280,6 +1799,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/armory) +"fk" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "fl" = ( /obj/machinery/door/airlock/centcom{ dir = 4; @@ -1301,6 +1827,17 @@ dir = 8 }, /area/centcom/central_command_areas/hall) +"fo" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/space_cube{ + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "fp" = ( /obj/structure/fake_stairs/wood/directional/south, /obj/machinery/light/floor/has_bulb, @@ -1314,6 +1851,10 @@ /obj/structure/table/wood/fancy/black, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"fs" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "fu" = ( /obj/structure/hedge, /turf/open/floor/iron/dark, @@ -1332,6 +1873,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"fx" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "fy" = ( /obj/structure/signpost/salvation{ icon = 'icons/obj/structures.dmi'; @@ -1365,6 +1913,10 @@ /obj/machinery/stasis, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"fF" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/wood/large, +/area/centcom/central_command_areas/medical) "fH" = ( /obj/machinery/light/neon_lining{ dir = 1; @@ -1386,6 +1938,47 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"fK" = ( +/obj/structure/table/wood, +/obj/item/retractor, +/obj/machinery/light/directional/north, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"fL" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/door/puzzle/keycard/syndicate_chem, +/obj/structure/fans/tiny, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"fM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/trinary/filter{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"fN" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/smoke{ + pixel_y = 31 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"fP" = ( +/obj/structure/table/wood/fancy, +/obj/item/storage/photo_album, +/obj/machinery/light/directional/south, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "fQ" = ( /obj/effect/turf_decal/siding/dark, /obj/effect/turf_decal/siding/dark{ @@ -1445,6 +2038,17 @@ /obj/effect/landmark/ctf, /turf/open/space/basic, /area/space) +"ga" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"gb" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Cockpit" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "gc" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/vending/wardrobe/bar_wardrobe, @@ -1474,6 +2078,12 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"gh" = ( +/obj/structure/sign/poster/contraband/revolver{ + pixel_y = -32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "gi" = ( /obj/docking_port/stationary{ dir = 4; @@ -1514,10 +2124,27 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"gm" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/closet/syndicate/personal, +/obj/machinery/camera/autoname/directional/west{ + network = list("nukie") + }, +/obj/item/stack/spacecash/c20, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/textured_half, +/area/centcom/syndicate_mothership/control) "go" = ( /obj/structure/closet, /turf/open/floor/circuit/telecomms, /area/centcom/central_command_areas/admin) +"gp" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "gq" = ( /obj/structure/railing{ dir = 8; @@ -1580,6 +2207,14 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) +"gw" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 1 + }, +/obj/structure/table/optable, +/obj/machinery/light/cold/directional/north, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/centcom/syndicate_mothership/control) "gx" = ( /obj/structure/chair/sofa/corp/left{ dir = 1 @@ -1603,6 +2238,14 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/medical) +"gA" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "gB" = ( /obj/structure/table/reinforced/plastitaniumglass{ name = "Andrea's Desk" @@ -1610,6 +2253,12 @@ /obj/machinery/computer/security/wooden_tv, /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) +"gC" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 9 + }, +/turf/open/misc/ice/icemoon, +/area/centcom/syndicate_mothership/control) "gE" = ( /obj/machinery/light/floor/has_bulb, /obj/structure/flora/tree/jungle/style_3, @@ -1629,6 +2278,13 @@ /obj/item/stack/cannonball, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"gJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "gK" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/table/reinforced, @@ -1661,6 +2317,10 @@ "gL" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/botany) +"gM" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bombthreat) "gN" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/machinery/light/neon_lining{ @@ -1675,6 +2335,10 @@ "gO" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/briefing) +"gP" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "gQ" = ( /obj/structure/chair/comfy/carp{ dir = 4 @@ -1698,6 +2362,17 @@ /obj/structure/fake_stairs/wood/directional/west, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"gU" = ( +/turf/open/floor/plating/icemoon, +/area/centcom/syndicate_mothership/control) +"gV" = ( +/turf/closed/wall/mineral/diamond, +/area/centcom/syndicate_mothership/control) +"gW" = ( +/obj/structure/table/rolling, +/obj/item/reagent_containers/cup/glass/bottle/juice/tomatojuice, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "gX" = ( /obj/structure/table/reinforced, /obj/item/storage/lockbox/loyalty, @@ -1724,6 +2399,12 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"hb" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "hc" = ( /obj/structure/railing/wood{ dir = 1 @@ -1749,6 +2430,12 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"hf" = ( +/obj/structure/flora/rock/icy/style_random{ + pixel_x = -7 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "hg" = ( /obj/effect/turf_decal/trimline/green/line{ dir = 9 @@ -1777,6 +2464,10 @@ /obj/machinery/light/floor/has_bulb, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"hk" = ( +/obj/effect/decal/remains/xeno/larva, +/turf/open/floor/grass, +/area/centcom/wizard_station) "hm" = ( /obj/effect/turf_decal/siding/blue, /obj/effect/turf_decal/siding/blue/corner{ @@ -1785,6 +2476,17 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) +"hn" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/structure/chair/sofa/bench/right, +/obj/structure/sign/poster/contraband/donut_corp{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/stone, +/area/centcom/syndicate_mothership/control) "ho" = ( /obj/structure/table/wood, /obj/item/folder/red, @@ -1802,6 +2504,11 @@ }, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"hq" = ( +/obj/item/cardboard_cutout, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/centcom/wizard_station) "hr" = ( /obj/structure/table/wood/fancy/green{ name = "Head Intern Desk" @@ -1811,6 +2518,20 @@ /obj/structure/window/plasma/spawner/directional/east, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"ht" = ( +/obj/structure/table/reinforced, +/obj/machinery/camera/autoname/directional/east{ + network = list("nukie") + }, +/obj/structure/noticeboard/directional/east, +/obj/item/folder/red, +/obj/item/stack/spacecash/c20{ + pixel_y = 9 + }, +/obj/item/assembly/flash/handheld, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "hw" = ( /obj/structure/chair/office{ dir = 4 @@ -1849,6 +2570,12 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"hC" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "hD" = ( /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) @@ -1872,6 +2599,15 @@ /obj/machinery/computer/records/medical/laptop, /turf/open/floor/stone, /area/centcom/central_command_areas/admin) +"hG" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/rebels_unite{ + pixel_y = -32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "hH" = ( /turf/open/floor/holofloor/hyperspace, /area/space) @@ -1881,6 +2617,12 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"hJ" = ( +/obj/machinery/door/poddoor/incinerator_ordmix{ + id = "syn_ordmix_vent" + }, +/turf/open/floor/engine/vacuum, +/area/centcom/syndicate_mothership/expansion_bombthreat) "hK" = ( /obj/structure/table/wood/fancy/green{ name = "Head Intern Desk" @@ -1899,6 +2641,19 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"hO" = ( +/obj/structure/railing/corner, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"hP" = ( +/obj/structure/chair/office/light{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/filled/corner{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "hQ" = ( /obj/structure/railing/wood{ dir = 1 @@ -1918,6 +2673,22 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/mineral/titanium/white, /area/centcom/central_command_areas/admin) +"hS" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/mineral/titanium/tiled, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"hT" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Tinted Window"; + opacity = 1 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 10 + }, +/obj/effect/turf_decal/stripes/end, +/turf/open/floor/mineral/titanium/tiled, +/area/centcom/syndicate_mothership/control) "hX" = ( /obj/machinery/light/floor/has_bulb, /obj/item/kirbyplants{ @@ -1943,6 +2714,22 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) +"ia" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"ib" = ( +/obj/machinery/door/poddoor/shuttledock{ + checkdir = 1; + name = "Syndicate Blast Door"; + turftype = /turf/open/misc/asteroid/snow + }, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "ic" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/parquet, @@ -1968,6 +2755,14 @@ }, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"if" = ( +/obj/structure/flora/grass/both/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "ig" = ( /obj/structure/chair/office{ dir = 4 @@ -1980,6 +2775,10 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin) +"ih" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/smooth_half, +/area/centcom/syndicate_mothership/control) "ii" = ( /obj/effect/turf_decal/siding/green{ dir = 8 @@ -2035,6 +2834,11 @@ /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/circuit/telecomms, /area/centcom/central_command_areas/admin) +"ir" = ( +/obj/machinery/shower/directional/south, +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/freezer, +/area/centcom/syndicate_mothership/control) "is" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -2060,6 +2864,20 @@ "iu" = ( /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"iw" = ( +/obj/structure/table/glass/plasmaglass, +/obj/item/plunger{ + pixel_x = -9; + pixel_y = 15 + }, +/obj/item/construction/plumbing, +/obj/item/reagent_containers/dropper{ + pixel_x = 5; + pixel_y = 14 + }, +/obj/structure/noticeboard/directional/west, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "ix" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/light/floor/has_bulb, @@ -2068,9 +2886,19 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"iz" = ( +/obj/machinery/washing_machine, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "iA" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/admin_hangout) +"iB" = ( +/obj/machinery/power/shuttle_engine/propulsion, +/turf/open/floor/plating/airless, +/area/centcom/wizard_station) "iC" = ( /obj/structure/table/wood, /obj/machinery/chem_dispenser/drinks/beer{ @@ -2096,6 +2924,19 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin) +"iE" = ( +/obj/structure/table/wood, +/obj/item/pizzabox, +/obj/item/storage/crayons{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/storage/crayons{ + pixel_x = 2; + pixel_y = 5 + }, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "iF" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/supply) @@ -2121,6 +2962,20 @@ /obj/machinery/light/directional/north, /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation/ship) +"iJ" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"iK" = ( +/obj/structure/flora/tree/dead/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"iL" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "iN" = ( /obj/machinery/status_display/supply, /turf/closed/indestructible/riveted, @@ -2129,12 +2984,32 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"iP" = ( +/obj/structure/closet/cardboard, +/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{ + pixel_x = 32 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) +"iQ" = ( +/obj/structure/punching_bag, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "iR" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 1 }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"iS" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"iV" = ( +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership) "iW" = ( /obj/effect/turf_decal/siding/dark{ dir = 10 @@ -2151,6 +3026,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/centcom/central_command_areas/supply) +"iY" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "iZ" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 4 @@ -2178,6 +3062,12 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"je" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "jf" = ( /obj/machinery/light/floor/has_bulb, /obj/machinery/hydroponics/constructable/helper, @@ -2190,6 +3080,14 @@ /obj/machinery/vending/wardrobe/engi_wardrobe, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"ji" = ( +/obj/machinery/computer/camera_advanced, +/turf/open/floor/wood, +/area/centcom/wizard_station) +"jj" = ( +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "jk" = ( /obj/machinery/door/poddoor{ id = "XCCQMLoaddoor2"; @@ -2233,6 +3131,11 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"jo" = ( +/obj/item/soap/homemade, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) "jp" = ( /obj/effect/turf_decal/bot, /obj/effect/spawner/random/food_or_drink/pizzaparty, @@ -2243,6 +3146,10 @@ /obj/structure/closet/crate/freezer, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"jq" = ( +/obj/item/food/meat/slab/corgi, +/turf/open/floor/grass, +/area/centcom/wizard_station) "jr" = ( /obj/machinery/door/airlock/external/ruin{ name = "Supply Shuttle" @@ -2265,6 +3172,11 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"ju" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/figure/wizard, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "jv" = ( /obj/effect/turf_decal/trimline/green/line{ dir = 5 @@ -2272,16 +3184,77 @@ /obj/machinery/vending/hydroseeds, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) +"jw" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"jx" = ( +/obj/effect/landmark/start/nukeop_leader, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"jy" = ( +/obj/machinery/door/airlock/hatch{ + name = "Tool Closet" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/titanium/yellow, +/area/centcom/syndicate_mothership/control) +"jz" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Study" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "jA" = ( /obj/structure/fans/tiny/invisible, /turf/open/floor/holofloor/hyperspace, /area/space) +"jB" = ( +/obj/structure/sign/plaques/kiddie/badger{ + desc = "A list of names is engraved on this plaque. 'May their heroic sacrifices inspire your bravery' is carved at the bottom."; + name = "\improper Operative Remembrance Plaque"; + pixel_y = 27 + }, +/obj/structure/bed/dogbed/cayenne, +/mob/living/basic/carp/pet/cayenne, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) "jC" = ( /obj/structure/chair/comfy/shuttle/tactical{ dir = 1 }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation/ship) +"jF" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/poddoor/shutters/indestructible{ + name = "Subterrainian Cargo Lift" + }, +/turf/open/floor/iron/dark/textured_half, +/area/centcom/syndicate_mothership/control) +"jG" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/computer/pandemic, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"jH" = ( +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership) "jI" = ( /obj/machinery/door/poddoor{ id = "XCCQMLoaddoor"; @@ -2327,6 +3300,20 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"jM" = ( +/obj/machinery/vending/medical, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/medical) +"jN" = ( +/obj/structure/flora/tree/dead/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"jO" = ( +/obj/structure/table/reinforced, +/obj/item/flashlight/lamp, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) "jP" = ( /obj/structure/hedge, /turf/open/floor/carpet, @@ -2356,6 +3343,18 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"jT" = ( +/obj/structure/sink/directional/west, +/obj/structure/mirror/directional/east, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"jV" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "jW" = ( /obj/machinery/computer/records/medical, /turf/open/floor/carpet/royalblue, @@ -2385,6 +3384,25 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"kc" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/smooth_half, +/area/centcom/syndicate_mothership/control) +"kd" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/obj/structure/sign/poster/contraband/gorlex_recruitment{ + pixel_y = 32 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"ke" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "kf" = ( /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, @@ -2422,6 +3440,9 @@ }, /turf/open/floor/carpet, /area/centcom/central_command_areas/admin) +"km" = ( +/turf/closed/wall/mineral/wood, +/area/centcom/syndicate_mothership/control) "kn" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/machinery/microwave, @@ -2468,6 +3489,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured_large, /area/centcom/central_command_areas/evacuation/ship) +"ku" = ( +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "kv" = ( /obj/machinery/door/airlock/centcom{ name = "Waffles' Den" @@ -2481,6 +3505,42 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) +"kz" = ( +/obj/machinery/door/airlock/maintenance/external{ + name = "Bunk Room 1" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron, +/area/centcom/syndicate_mothership/control) +"kA" = ( +/turf/closed/indestructible/iron, +/area/centcom/syndicate_mothership/control) +"kB" = ( +/obj/machinery/vending/boozeomat, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) +"kD" = ( +/obj/structure/table/rolling, +/obj/item/reagent_containers/condiment/soymilk, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"kE" = ( +/obj/structure/table/wood, +/obj/item/pai_card, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) +"kF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) +"kH" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "kI" = ( /obj/effect/turf_decal/siding/dark{ dir = 8 @@ -2492,6 +3552,23 @@ dir = 4 }, /area/centcom/central_command_areas/hall) +"kK" = ( +/turf/closed/indestructible/fakedoor{ + name = "BUNKER 4337" + }, +/area/centcom/syndicate_mothership) +"kL" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 9 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/bodycontainer/morgue{ + dir = 2 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/centcom/syndicate_mothership/control) "kM" = ( /obj/structure/railing/wood, /obj/structure/table/reinforced, @@ -2510,16 +3587,54 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) -"kQ" = ( -/obj/structure/railing/wood{ - dir = 1 - }, -/turf/open/floor/iron/dark/herringbone, -/area/centcom/central_command_areas/medical) "kS" = ( /obj/effect/turf_decal/siding/dark, /turf/open/floor/carpet, /area/centcom/central_command_areas/hall) +"kT" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/closet/crate/freezer{ + name = "fruits and veggies freezer" + }, +/obj/item/food/grown/potato, +/obj/item/food/grown/potato, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato, +/obj/item/food/grown/pineapple, +/obj/item/food/grown/pineapple, +/obj/item/food/grown/cherries, +/obj/item/food/grown/cherries, +/obj/item/food/grown/citrus/orange, +/obj/item/food/grown/citrus/orange, +/obj/item/food/grown/bell_pepper, +/obj/item/food/grown/bell_pepper, +/obj/item/food/grown/chili, +/obj/item/food/grown/chili, +/obj/item/food/grown/parsnip, +/obj/item/food/grown/parsnip, +/obj/item/food/grown/redbeet, +/obj/item/food/grown/redbeet, +/obj/item/food/grown/watermelon, +/obj/item/food/grown/watermelon, +/obj/item/food/grown/peas, +/obj/item/food/grown/peas, +/obj/item/food/grown/onion, +/obj/item/food/grown/onion, +/obj/item/food/grown/eggplant, +/obj/item/food/grown/eggplant, +/obj/item/food/grown/banana, +/obj/item/food/grown/banana, +/obj/item/food/grown/apple, +/obj/item/food/grown/apple, +/turf/open/floor/plastic, +/area/centcom/syndicate_mothership/expansion_fridgerummage) +"kU" = ( +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"kV" = ( +/obj/item/food/meat/slab/xeno, +/turf/open/floor/grass, +/area/centcom/wizard_station) "kW" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/table/wood/fancy/royalblack, @@ -2529,6 +3644,47 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"kY" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating{ + dir = 8 + }, +/obj/machinery/door/airlock/titanium{ + name = "Experiments Wing Decontamination" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) +"kZ" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"lb" = ( +/obj/structure/railing, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) +"le" = ( +/obj/effect/turf_decal/box, +/obj/structure/punching_bag, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "lg" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/chair/comfy/shuttle/tactical{ @@ -2557,6 +3713,12 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"lj" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "lk" = ( /obj/structure/chair/sofa/corp/left{ dir = 4; @@ -2588,10 +3750,16 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) -"ls" = ( -/obj/machinery/telecomms/allinone/nuclear, -/turf/open/floor/circuit/red/telecomms, -/area/centcom/central_command_areas/admin) +"lt" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "lu" = ( /obj/structure/railing/wood{ dir = 1 @@ -2600,6 +3768,30 @@ /obj/structure/flora/bush/flowers_yw/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) +"lw" = ( +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"lx" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Tinted Window"; + opacity = 1 + }, +/obj/effect/turf_decal/siding/thinplating{ + dir = 6 + }, +/obj/structure/table/reinforced/plasmarglass, +/obj/item/reagent_containers/cup/bottle/epinephrine, +/obj/item/reagent_containers/cup/bottle/multiver{ + pixel_x = 6 + }, +/obj/item/reagent_containers/syringe{ + pixel_y = 15 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/centcom/syndicate_mothership/control) "ly" = ( /obj/machinery/status_display/evac/directional/west, /obj/machinery/light/directional/west, @@ -2608,6 +3800,10 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation) +"lz" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "lA" = ( /obj/structure/railing/wood, /obj/structure/railing/wood{ @@ -2615,6 +3811,19 @@ }, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/ghost_spawn) +"lB" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/glass_large{ + name = "Disembarkents" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "lC" = ( /obj/effect/turf_decal/siding/dark/corner, /obj/effect/turf_decal/siding/dark{ @@ -2649,6 +3858,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin) +"lG" = ( +/obj/structure/showcase/machinery/rng, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "lH" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -2676,11 +3889,30 @@ /obj/effect/mapping_helpers/airlock/access/any/admin/general, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"lM" = ( +/obj/structure/toilet{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) +"lN" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"lP" = ( +/obj/machinery/light/cold/directional/south, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "lQ" = ( /obj/machinery/computer/records/medical/laptop, /obj/structure/table/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"lR" = ( +/obj/structure/chair/stool/directional/west, +/obj/effect/landmark/start/nukeop, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "lS" = ( /obj/structure/fans/tiny/invisible, /turf/open/floor/holofloor/hyperspace, @@ -2691,10 +3923,33 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) +"lU" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"lW" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "lX" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/borbop) +"lY" = ( +/obj/structure/table/reinforced, +/obj/item/paper/fluff/stations/centcom/disk_memo{ + pixel_x = -6; + pixel_y = -7 + }, +/obj/item/taperecorder{ + pixel_y = 15 + }, +/obj/item/stack/spacecash/c50, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) "lZ" = ( /obj/effect/turf_decal/siding/blue{ dir = 8 @@ -2753,15 +4008,14 @@ /turf/open/floor/iron, /area/centcom/central_command_areas/supply) "mj" = ( -/obj/effect/turf_decal/siding/dark{ - dir = 4 - }, -/obj/effect/turf_decal/siding/dark{ - dir = 8 +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 }, -/obj/machinery/vending/dinnerware, -/turf/open/floor/iron/white/herringbone, -/area/centcom/central_command_areas/kitchen) +/obj/structure/bed, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/blue/fourcorners, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "mk" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -2781,6 +4035,13 @@ /obj/structure/closet/crate/mail/full, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"mn" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "mp" = ( /obj/structure/chair/wood{ dir = 4 @@ -2806,12 +4067,6 @@ }, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) -"ms" = ( -/obj/effect/turf_decal/trimline/green/line{ - dir = 6 - }, -/turf/closed/indestructible/riveted, -/area/centcom/central_command_areas/botany) "mt" = ( /obj/structure/table/reinforced, /obj/machinery/microwave{ @@ -2823,17 +4078,65 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"mu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "mv" = ( /obj/machinery/door/poddoor/shutters/indestructible/preopen{ dir = 4 }, /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/admin) +"mx" = ( +/obj/machinery/power/shuttle_engine/heater{ + resistance_flags = 3 + }, +/obj/structure/window/reinforced/spawner/directional/north{ + color = "#008000"; + resistance_flags = 3 + }, +/turf/open/lava/airless, +/area/centcom/wizard_station) "my" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/crate/medical, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"mz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/glass/plasmaglass, +/obj/item/reagent_containers/syringe{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -2; + pixel_y = 13 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 1; + pixel_y = 14 + }, +/obj/machinery/light/cold/directional/north, +/obj/item/reagent_containers/dropper{ + pixel_x = -4; + pixel_y = -6 + }, +/obj/item/storage/box/monkeycubes{ + pixel_x = -6; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/bottle/formaldehyde{ + pixel_x = 8; + pixel_y = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "mA" = ( /obj/machinery/computer/records/medical{ dir = 1 @@ -2855,6 +4158,17 @@ "mD" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/ferry) +"mE" = ( +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"mF" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "mG" = ( /obj/machinery/computer/cargo{ dir = 4 @@ -2890,6 +4204,29 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"mK" = ( +/obj/machinery/light/cold/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"mL" = ( +/obj/machinery/light/small/red/directional/west, +/obj/structure/sign/poster/contraband/soviet_propaganda{ + pixel_x = -32 + }, +/obj/item/stack/sheet/cardboard/fifty, +/turf/open/floor/mineral/titanium/yellow, +/area/centcom/syndicate_mothership/control) +"mM" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) +"mO" = ( +/obj/machinery/light/cold/directional/north, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "mP" = ( /obj/structure/hedge, /turf/open/floor/wood/large, @@ -2904,6 +4241,16 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"mS" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/camera/autoname/directional/east{ + network = list("nukie") + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"mT" = ( +/turf/open/floor/circuit/red/off, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "mU" = ( /obj/structure/flora/tree/palm, /obj/item/toy/plush/beeplushie{ @@ -2936,6 +4283,15 @@ /obj/effect/turf_decal/tile/dark_blue/diagonal_centre, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/botany) +"mY" = ( +/obj/structure/table/wood, +/obj/item/gun/magic/wand{ + desc = "Used in emergencies to reignite magma engines."; + max_charges = 0; + name = "wand of emergency engine ignition" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "mZ" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -2984,6 +4340,11 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"ne" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end, +/obj/machinery/vending/hydronutrients, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "nf" = ( /obj/effect/turf_decal/siding/dark/corner{ dir = 4 @@ -3039,6 +4400,13 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"no" = ( +/obj/machinery/camera/autoname/directional/east{ + network = list("nukie") + }, +/obj/structure/closet/crate/cardboard/mothic, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "np" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/corner{ @@ -3061,6 +4429,14 @@ dir = 1 }, /area/centcom/central_command_areas/hall) +"nu" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/tree/pine/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "nw" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/wood/fancy/royalblue, @@ -3072,6 +4448,12 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"nz" = ( +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 6 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "nB" = ( /obj/structure/filingcabinet/filingcabinet, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -3087,6 +4469,17 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"nD" = ( +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"nE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) "nF" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -3103,12 +4496,33 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"nH" = ( +/obj/structure/urinal/directional/north, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) "nI" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, /obj/machinery/light/directional/north, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"nK" = ( +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) +"nL" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red/corner{ + dir = 4 + }, +/obj/item/stack/spacecash/c1{ + pixel_y = 12 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"nM" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "nN" = ( /obj/structure/railing/wood{ dir = 8 @@ -3136,6 +4550,18 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"nS" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) +"nT" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) "nU" = ( /obj/machinery/vending/boozeomat, /turf/open/floor/carpet/executive, @@ -3153,6 +4579,50 @@ dir = 8 }, /area/centcom/central_command_areas/hall) +"nY" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red{ + dir = 1 + }, +/obj/machinery/recharger, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"nZ" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/fluff/tram_rail, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) +"oa" = ( +/obj/machinery/light/cold/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"oc" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/door/window/left/directional/east, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 1; + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "od" = ( /obj/structure/railing/wood{ dir = 1 @@ -3179,6 +4649,13 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/dark/textured_large, /area/centcom/central_command_areas/evacuation/ship) +"og" = ( +/obj/structure/railing, +/turf/open/floor/iron/stairs/old{ + dir = 8; + initial_gas_mix = "TEMP=2.7" + }, +/area/centcom/syndicate_mothership) "oh" = ( /obj/machinery/shower/directional/south, /obj/structure/drain, @@ -3218,6 +4695,13 @@ /obj/structure/fake_stairs/wood/directional/north, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"op" = ( +/obj/structure/window/reinforced/spawner/directional/north{ + color = "#008000"; + resistance_flags = 3 + }, +/turf/open/lava, +/area/centcom/wizard_station) "oq" = ( /obj/structure/railing/wood, /obj/structure/fake_stairs/wood/directional/west, @@ -3266,6 +4750,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"ow" = ( +/obj/structure/table/wood/fancy, +/obj/item/storage/dice{ + icon_state = "magicdicebag" + }, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "oy" = ( /obj/machinery/vending/wardrobe/curator_wardrobe, /obj/effect/turf_decal/siding/dark, @@ -3276,11 +4767,22 @@ dir = 1 }, /area/centcom/central_command_areas/hall) +"oz" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "oA" = ( /obj/structure/closet/crate/bin, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"oD" = ( +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership/control) "oE" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/siding/wood{ @@ -3295,6 +4797,47 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"oH" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/structure/table/glass/plasmaglass, +/obj/item/folder/white{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = -2; + pixel_y = 13 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 1; + pixel_y = 14 + }, +/obj/item/reagent_containers/syringe{ + pixel_x = 4; + pixel_y = 15 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/item/reagent_containers/cup/bottle/radium{ + pixel_x = -8; + pixel_y = 9 + }, +/obj/item/stack/sheet/mineral/plasma, +/obj/item/stack/sheet/mineral/plasma, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"oI" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/wizrobe/magusred, +/obj/item/clothing/head/wizard/magus, +/obj/item/staff, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "oJ" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, @@ -3335,6 +4878,33 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"oP" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/structure/showcase/machinery/tv{ + desc = "Static fills the screen. If you can find the VCR, you might be able to watch those old Heist Movies again."; + name = "\improper Static Filled Tube(TM) Television" + }, +/obj/structure/sign/poster/contraband/rip_badger{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"oQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/cold/directional/south, +/obj/structure/chair/greyscale{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"oS" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "oT" = ( /obj/structure/table/wood, /obj/machinery/fax, @@ -3353,10 +4923,29 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"oV" = ( +/obj/structure/sign/poster/contraband/free_drone{ + pixel_y = 32 + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "oW" = ( /obj/structure/flora/bush/fullgrass/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) +"oX" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/machinery/door/airlock/hatch{ + name = "Gangway" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "oY" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -3372,6 +4961,22 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"pa" = ( +/obj/item/kirbyplants/random, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) +"pb" = ( +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/grass, +/area/centcom/wizard_station) +"pc" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "pd" = ( /obj/item/clipboard, /obj/item/stamp/denied{ @@ -3389,10 +4994,31 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"pf" = ( +/obj/structure/chair/sofa/left/brown{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "pg" = ( /obj/structure/flora/bush/large/style_3, /turf/open/floor/grass, /area/centcom/central_command_areas/botany) +"ph" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/structure/lattice/catwalk, +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/fluff/tram_rail, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "pi" = ( /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) @@ -3433,6 +5059,20 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"pm" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"pn" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/door/window/right/directional/east, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "po" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -3453,6 +5093,26 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"pr" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/bottle/beer{ + pixel_x = 5; + pixel_y = -2 + }, +/obj/item/toy/cards/deck/syndicate{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/effect/spawner/random/aimodule/syndicate, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) +"ps" = ( +/obj/machinery/air_sensor{ + chamber_id = "nukiebase"; + name = "syndicate ordnance gas sensor" + }, +/turf/open/floor/engine/vacuum, +/area/centcom/syndicate_mothership/expansion_bombthreat) "pt" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/machinery/fax, @@ -3475,9 +5135,6 @@ "pw" = ( /obj/effect/turf_decal/trimline/blue, /obj/machinery/light/floor/has_bulb, -/obj/structure/railing/wood{ - dir = 1 - }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/medical) "px" = ( @@ -3531,6 +5188,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/ert) +"pE" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/obj/effect/turf_decal/siding/thinplating_new/dark/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "pG" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/hall) @@ -3562,6 +5226,49 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/evacuation) +"pO" = ( +/obj/structure/table/glass/plasmaglass, +/obj/item/pen{ + pixel_x = 9; + pixel_y = 18 + }, +/obj/structure/sign/poster/contraband/syndiemoth{ + pixel_x = -32 + }, +/obj/item/storage/box/beakers{ + pixel_x = -4; + pixel_y = 17 + }, +/obj/item/storage/box/syringes{ + pixel_x = 4; + pixel_y = 17 + }, +/obj/item/assembly/igniter{ + pixel_x = 7; + pixel_y = 6 + }, +/obj/item/assembly/igniter{ + pixel_x = 7; + pixel_y = 1 + }, +/obj/item/assembly/igniter{ + pixel_x = 7; + pixel_y = -3 + }, +/obj/item/assembly/timer{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/item/assembly/timer{ + pixel_x = -6; + pixel_y = -1 + }, +/obj/item/assembly/timer{ + pixel_x = -6; + pixel_y = -5 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "pQ" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -3602,6 +5309,12 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/ert) +"pY" = ( +/obj/structure/frame/computer{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "pZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -3614,6 +5327,13 @@ /obj/structure/table/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"qb" = ( +/obj/item/stack/spacecash/c20, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"qc" = ( +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "qe" = ( /obj/structure/table/reinforced/titaniumglass, /obj/machinery/fax{ @@ -3628,6 +5348,14 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"qg" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/tree/dead/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "qh" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/siding/wood{ @@ -3652,6 +5380,20 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"qj" = ( +/obj/structure/flora/grass/both/style_random, +/obj/structure/flora/tree/dead/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"qk" = ( +/obj/machinery/shuttle_manipulator, +/turf/open/floor/circuit/red, +/area/centcom/syndicate_mothership/control) +"ql" = ( +/obj/structure/flora/grass/both/style_random, +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "qm" = ( /obj/structure/table/reinforced/titaniumglass, /obj/machinery/computer/records/security/laptop, @@ -3693,6 +5435,18 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"qr" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"qs" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/corner, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "qu" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/wood/fancy/royalblue, @@ -3717,16 +5471,32 @@ /obj/structure/window/plasma/spawner/directional/east, /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) -"qz" = ( -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/item/storage/backpack/duffelbag/med/surgery, -/obj/structure/table/reinforced, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/medical) -"qD" = ( -/obj/structure/table/reinforced, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/botany) +"qy" = ( +/obj/structure/flora/rock/icy/style_random{ + pixel_x = -7 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"qA" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"qC" = ( +/obj/machinery/door/window/survival_pod{ + dir = 8; + name = "Toilet Door"; + opacity = 1 + }, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north{ + name = "Frosted Window"; + opacity = 1 + }, +/obj/structure/toilet/greyscale{ + dir = 8 + }, +/obj/machinery/light/small/directional/east, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "qE" = ( /obj/effect/turf_decal/siding/blue{ dir = 4 @@ -3783,10 +5553,21 @@ /obj/structure/sign/nanotrasen, /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/ferry) +"qS" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/trinary/filter/flipped, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "qT" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/carpet, /area/centcom/central_command_areas/kitchen) +"qU" = ( +/obj/structure/fence, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "qV" = ( /obj/machinery/chem_master/condimaster{ desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; @@ -3798,6 +5579,13 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"qW" = ( +/turf/open/floor/engine/vacuum, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"qX" = ( +/obj/structure/chair/wood/wings, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "qY" = ( /obj/effect/turf_decal/siding/dark{ dir = 10 @@ -3836,11 +5624,24 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/ert) +"rc" = ( +/obj/structure/dresser, +/obj/structure/noticeboard/directional/north, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "rd" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) +"re" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "rf" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood/corner{ @@ -3881,6 +5682,9 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"rk" = ( +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "rl" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/railing/wood{ @@ -3906,6 +5710,11 @@ /obj/structure/window/reinforced/tinted/frosted, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/admin) +"rp" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/shower/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "rq" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -3918,16 +5727,81 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"rs" = ( +/obj/structure/rack, +/obj/item/restraints/handcuffs/cable/pink, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"rt" = ( +/obj/machinery/computer/shuttle, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"ru" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) +"rv" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/hatch{ + name = "Workout Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) +"rx" = ( +/obj/structure/table/reinforced, +/obj/item/knife/combat/survival{ + pixel_x = 7; + pixel_y = 17 + }, +/obj/item/reagent_containers/cup/glass/bottle/rum{ + pixel_x = -5; + pixel_y = 17 + }, +/obj/structure/sign/poster/contraband/red_rum{ + pixel_x = 32 + }, +/obj/machinery/recharger, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"ry" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 10 + }, +/turf/open/misc/ice/icemoon, +/area/centcom/syndicate_mothership/control) "rz" = ( /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/evacuation/ship) +"rA" = ( +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "rB" = ( /obj/structure/table/reinforced, /obj/item/storage/fancy/donut_box, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"rC" = ( +/obj/effect/turf_decal/trimline/red, +/obj/effect/turf_decal/box/corners, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "rD" = ( /obj/structure/table/wood, /obj/machinery/light/floor/has_bulb, @@ -3950,6 +5824,15 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) +"rJ" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/components/tank/nitrogen, +/turf/open/space/basic, +/area/space/nearstation) +"rK" = ( +/obj/structure/sign/poster/contraband/cc64k_ad, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) "rL" = ( /obj/effect/turf_decal/siding/green{ dir = 10 @@ -3966,10 +5849,24 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"rN" = ( +/obj/machinery/door/window/survival_pod{ + name = "Frosted Door"; + opacity = 1 + }, +/turf/open/floor/iron/freezer, +/area/centcom/syndicate_mothership/control) +"rO" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/closet/syndicate/personal, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/textured_half, +/area/centcom/syndicate_mothership/control) "rP" = ( /obj/effect/turf_decal/siding/blue{ dir = 1 }, +/obj/structure/railing/wood, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/medical) "rQ" = ( @@ -4000,6 +5897,20 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"rS" = ( +/obj/machinery/vending/cola, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"rT" = ( +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) +"rU" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "rW" = ( /obj/structure/railing{ dir = 8; @@ -4068,10 +5979,38 @@ /obj/item/storage/belt/utility/full/engi, /turf/open/floor/circuit/green, /area/centcom/central_command_areas/admin) +"sf" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"sg" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "sh" = ( /obj/item/kirbyplants/random, /turf/open/floor/mineral/titanium/white, /area/centcom/central_command_areas/admin) +"si" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light/cold/directional/west, +/obj/item/seeds/cannabis{ + pixel_y = 8 + }, +/obj/item/cultivator{ + pixel_x = -6; + pixel_y = 11 + }, +/turf/open/floor/mineral/titanium/tiled, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "sj" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood{ @@ -4086,6 +6025,10 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"sk" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/rock/snow, +/area/centcom/syndicate_mothership) "sm" = ( /obj/machinery/light/directional/south, /turf/open/floor/iron/dark/herringbone, @@ -4167,6 +6110,21 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"sy" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 10 + }, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) +"sz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/closet/emcloset, +/obj/item/stack/spacecash/c100, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "sA" = ( /obj/effect/turf_decal/siding/dark, /obj/effect/turf_decal/siding/dark{ @@ -4187,6 +6145,15 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/dark/textured_large, /area/centcom/central_command_areas/evacuation/ship) +"sD" = ( +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "sE" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -4216,6 +6183,13 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/hall) +"sL" = ( +/obj/effect/decal/cleanable/blood/splatter, +/mob/living/basic/creature{ + name = "Experiment 35b" + }, +/turf/open/floor/grass, +/area/centcom/wizard_station) "sM" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -4226,6 +6200,11 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"sN" = ( +/obj/machinery/light/cold/directional/west, +/obj/structure/closet/crate/cardboard, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "sP" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/dark{ @@ -4239,6 +6218,11 @@ dir = 4 }, /area/centcom/central_command_areas/hall) +"sQ" = ( +/turf/closed/indestructible/fakeglass{ + color = "#008000" + }, +/area/centcom/wizard_station) "sS" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -4254,6 +6238,22 @@ /obj/structure/fans/tiny, /turf/open/floor/iron, /area/centcom/central_command_areas/evacuation) +"sW" = ( +/obj/structure/table/wood, +/obj/item/bikehorn/golden{ + pixel_x = -8; + pixel_y = 8 + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"sZ" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/obj/structure/flora/tree/dead/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "ta" = ( /obj/machinery/light/floor/has_bulb, /turf/closed/indestructible/fakeglass, @@ -4265,6 +6265,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"tc" = ( +/obj/machinery/light/cold/directional/east, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) "td" = ( /obj/structure/sign/departments/drop, /turf/closed/indestructible/riveted, @@ -4296,11 +6300,38 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) +"tg" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/structure/chair/sofa/bench/left, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/stone, +/area/centcom/syndicate_mothership/control) +"th" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/sign/poster/contraband/gorlex_recruitment{ + pixel_y = -32 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"ti" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump/on, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "tk" = ( /obj/effect/turf_decal/trimline/blue, /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) +"tl" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/centcom/wizard_station) "tm" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 8 @@ -4449,6 +6480,21 @@ }, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) +"tE" = ( +/obj/structure/sign/poster/contraband/masked_men{ + pixel_x = 32 + }, +/obj/machinery/chem_dispenser/fullupgrade, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"tG" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/catwalk_floor/iron_smooth{ + initial_gas_mix = "TEMP=2.7" + }, +/area/centcom/syndicate_mothership) "tH" = ( /obj/effect/turf_decal/siding/dark{ dir = 10 @@ -4475,6 +6521,53 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"tM" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/structure/railing/corner, +/turf/open/floor/plating/icemoon, +/area/centcom/syndicate_mothership/control) +"tN" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"tO" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/fluff/tram_rail, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) +"tP" = ( +/obj/structure/fence, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"tQ" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/hidden{ + dir = 4 + }, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"tV" = ( +/obj/machinery/atmospherics/pipe/smart/simple/general/visible, +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership/expansion_bombthreat) "tW" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -4497,6 +6590,24 @@ /obj/structure/fake_stairs/wood/directional/west, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"tZ" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Tinted Window"; + opacity = 1 + }, +/obj/structure/table/reinforced/plasmarglass, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/item/transfer_valve{ + pixel_x = 5 + }, +/obj/item/transfer_valve, +/obj/item/transfer_valve{ + pixel_x = -5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "ua" = ( /obj/structure/curtain/cloth/fancy, /turf/closed/indestructible/fakeglass, @@ -4557,6 +6668,17 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"un" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Tinted Window"; + opacity = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) "uq" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/chair/stool/bar/directional/south, @@ -4660,6 +6782,9 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) +"uG" = ( +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "uH" = ( /obj/effect/turf_decal/stripes/line, /turf/closed/indestructible/riveted, @@ -4677,6 +6802,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) +"uM" = ( +/obj/structure/sign/poster/contraband/free_key, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) "uN" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/siding/wood{ @@ -4705,6 +6834,13 @@ "uQ" = ( /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/hall) +"uR" = ( +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/fluff/tram_rail, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "uS" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/trimline/green/line, @@ -4724,6 +6860,21 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) +"uV" = ( +/obj/effect/decal/remains/xeno, +/turf/open/floor/grass, +/area/centcom/wizard_station) +"uW" = ( +/obj/structure/table/wood, +/obj/item/clothing/suit/wizrobe/magusblue, +/obj/item/clothing/head/wizard/magus, +/obj/item/staff, +/obj/structure/mirror/magic{ + pixel_y = 28 + }, +/obj/machinery/light/directional/north, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "uZ" = ( /obj/effect/turf_decal/siding/dark{ dir = 9 @@ -4737,6 +6888,23 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"vb" = ( +/obj/effect/turf_decal/siding/purple, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"vc" = ( +/obj/item/food/meat/slab/human/mutant/lizard, +/turf/open/floor/grass, +/area/centcom/wizard_station) +"vd" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "ve" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -4763,6 +6931,10 @@ /obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"vi" = ( +/obj/machinery/vending/clothing, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "vj" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -4800,6 +6972,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) +"vn" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/mechanical/old, +/obj/structure/sign/poster/contraband/pwr_game{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium/yellow, +/area/centcom/syndicate_mothership/control) "vp" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, @@ -4827,6 +7007,16 @@ "vt" = ( /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/kitchen) +"vu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"vv" = ( +/obj/structure/showcase/wizard, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "vw" = ( /obj/effect/landmark/prisonwarp, /turf/open/floor/iron/dark/herringbone, @@ -4834,6 +7024,13 @@ "vx" = ( /turf/open/floor/carpet/neon/simple/cyan, /area/centcom/central_command_areas/admin) +"vy" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark/end, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "vz" = ( /obj/machinery/door/poddoor/shutters/cc/xcc, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -4925,6 +7122,30 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"vL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"vM" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/table/glass/plasmaglass, +/obj/structure/reagent_dispensers/wall/virusfood/directional/north, +/obj/item/clothing/gloves/latex, +/obj/item/healthanalyzer{ + pixel_y = 3 + }, +/obj/item/plant_analyzer, +/obj/item/clothing/glasses/science, +/obj/item/reagent_containers/spray/chemsprayer/bioterror{ + pixel_x = -6; + pixel_y = 10 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "vN" = ( /obj/structure/railing/wood, /obj/structure/table/reinforced, @@ -4948,6 +7169,13 @@ /obj/structure/flora/bush/large/style_3, /turf/open/floor/grass, /area/centcom/central_command_areas/medical) +"vQ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) "vR" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -4957,17 +7185,30 @@ "vS" = ( /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) -"vT" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/chem_heater/debug, -/turf/open/floor/wood/large, -/area/centcom/central_command_areas/medical) +"vU" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Frosted Window"; + opacity = 1 + }, +/obj/item/soap/syndie, +/obj/structure/sign/poster/contraband/got_wood{ + pixel_x = 32 + }, +/turf/open/floor/iron/freezer, +/area/centcom/syndicate_mothership/control) "vW" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"vX" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"vY" = ( +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "wa" = ( /obj/effect/turf_decal/siding/dark{ dir = 6 @@ -4999,11 +7240,53 @@ "wf" = ( /turf/open/floor/carpet, /area/centcom/central_command_areas/hall) +"wg" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/turf/open/floor/circuit/red/off, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "wh" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/green, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"wi" = ( +/obj/structure/table/glass/plasmaglass, +/obj/item/screwdriver{ + pixel_x = 1; + pixel_y = 23 + }, +/obj/item/clothing/glasses/science{ + pixel_x = -5; + pixel_y = 11 + }, +/obj/machinery/reagentgrinder{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/structure/noticeboard/directional/east, +/obj/item/grenade/chem_grenade{ + pixel_x = -4 + }, +/obj/item/grenade/chem_grenade{ + pixel_x = -4 + }, +/obj/item/grenade/chem_grenade{ + pixel_x = -4 + }, +/obj/item/grenade/chem_grenade{ + pixel_x = -4 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"wj" = ( +/obj/machinery/camera/autoname/directional/north{ + network = list("nukie") + }, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "wk" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/stripes/line{ @@ -5021,6 +7304,15 @@ /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/borbop) +"wn" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/knife/kitchen, +/obj/structure/sign/poster/contraband/self_ai_liberation{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "wo" = ( /obj/structure/table/reinforced/plastitaniumglass{ name = "Andrea's Desk" @@ -5043,6 +7335,11 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"ws" = ( +/obj/structure/closet/cardboard/metal, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "wt" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -5211,6 +7508,9 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) +"wU" = ( +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership) "wV" = ( /obj/machinery/computer/security/wooden_tv, /turf/open/floor/circuit/telecomms, @@ -5316,6 +7616,19 @@ /obj/machinery/light/directional/north, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"xm" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 6 + }, +/turf/open/misc/ice/icemoon, +/area/centcom/syndicate_mothership/control) +"xn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "xo" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -5335,6 +7648,25 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"xr" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"xt" = ( +/obj/docking_port/stationary{ + area_type = /area/centcom/syndicate_mothership/control; + dir = 2; + dwidth = 3; + height = 7; + name = "escape pod loader"; + roundstart_template = /datum/map_template/shuttle/assault_pod/default; + width = 7 + }, +/turf/open/floor/plating/icemoon, +/area/centcom/syndicate_mothership/control) "xu" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/effect/turf_decal/siding/wood{ @@ -5355,10 +7687,20 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/prison/cells) +"xw" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "xz" = ( /obj/machinery/door/airlock/centcom, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/botany) +"xA" = ( +/obj/structure/fence/cut/large{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "xB" = ( /obj/effect/turf_decal/siding/dark{ dir = 6 @@ -5389,6 +7731,9 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"xE" = ( +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "xF" = ( /obj/structure/chair/office{ dir = 8 @@ -5416,6 +7761,12 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"xJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/engine, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "xK" = ( /obj/effect/turf_decal/siding/dark{ dir = 10 @@ -5425,6 +7776,12 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"xL" = ( +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) +"xM" = ( +/turf/open/floor/grass, +/area/centcom/wizard_station) "xN" = ( /obj/effect/turf_decal/siding/dark{ dir = 6 @@ -5437,6 +7794,12 @@ dir = 6 }, /area/centcom/central_command_areas/hall) +"xO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "xP" = ( /obj/structure/table/wood, /obj/item/flashlight/lamp/bananalamp, @@ -5472,24 +7835,52 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"xU" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/control) "xV" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"xW" = ( +/obj/structure/bookcase/random/reference/wizard, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "yb" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"yc" = ( +/obj/structure/flora/tree/dead/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "yd" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/filingcabinet/chestdrawer, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"ye" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/hatch{ + name = "Security Checkpoint" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "yf" = ( /obj/effect/turf_decal/trimline/green/line{ dir = 6 @@ -5590,6 +7981,11 @@ /obj/machinery/vending/cigarette, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"yv" = ( +/turf/closed/indestructible/fakedoor{ + name = "Tac-Com" + }, +/area/centcom/syndicate_mothership/control) "yw" = ( /obj/structure/table/wood, /obj/item/modular_computer/laptop/preset/civilian{ @@ -5597,6 +7993,25 @@ }, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"yx" = ( +/obj/machinery/door/airlock/maintenance/external{ + name = "Bunk Room 2" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/iron, +/area/centcom/syndicate_mothership/control) +"yy" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/railing{ + dir = 6 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) "yz" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/bush/fullgrass/style_random, @@ -5613,9 +8028,16 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) +"yB" = ( +/obj/machinery/light/cold/directional/east, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) "yC" = ( /turf/open/floor/circuit/telecomms, /area/centcom/central_command_areas/admin) +"yD" = ( +/turf/closed/indestructible/rock/snow, +/area/centcom/syndicate_mothership) "yE" = ( /obj/structure/railing/wrestling{ dir = 4 @@ -5625,6 +8047,12 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/hall) +"yF" = ( +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/turf/open/floor/wood, +/area/centcom/wizard_station) "yG" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ @@ -5693,6 +8121,13 @@ /obj/item/gun/energy/ionrifle/carbine, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"yT" = ( +/obj/machinery/light/small/directional/south, +/obj/item/watertank{ + pixel_x = -10 + }, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "yU" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, @@ -5714,12 +8149,24 @@ }, /turf/open/space, /area/space) +"yW" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/centcom/syndicate_mothership/control) "yX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, /turf/open/floor/iron/white/textured, /area/centcom/central_command_areas/evacuation/ship) +"yY" = ( +/obj/machinery/vending/cigarette/syndicate, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"yZ" = ( +/obj/structure/chair/stool/directional/west, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "za" = ( /obj/machinery/power/terminal{ dir = 1 @@ -5728,11 +8175,46 @@ /obj/effect/decal/cleanable/oil, /turf/open/floor/iron/smooth_large, /area/centcom/central_command_areas/evacuation/ship) +"zb" = ( +/obj/machinery/vending/dinnerware, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"zc" = ( +/obj/structure/flora/tree/dead/style_random, +/obj/structure/flora/grass/both/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"zd" = ( +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) +"ze" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Observation Room" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "zf" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/tree/jungle/style_5, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) +"zg" = ( +/obj/structure/chair/sofa/bench/left{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/punch_shit{ + pixel_y = -32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "zh" = ( /obj/machinery/firealarm/directional/south, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -5748,6 +8230,18 @@ "zk" = ( /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/medical) +"zl" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/turf/open/space/basic, +/area/space/nearstation) +"zm" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8 + }, +/obj/structure/lattice, +/turf/open/space/basic, +/area/space/nearstation) "zn" = ( /obj/machinery/light/directional/north, /obj/structure/table/reinforced, @@ -5815,6 +8309,10 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"zw" = ( +/obj/machinery/light/cold/directional/west, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) "zx" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 8 @@ -5856,6 +8354,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"zB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"zC" = ( +/obj/structure/table/wood/fancy, +/obj/item/camera/spooky, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "zD" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -5900,6 +8411,15 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/medical) +"zL" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "zM" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -6044,6 +8564,15 @@ dir = 8 }, /area/centcom/central_command_areas/evacuation/ship) +"Ag" = ( +/obj/structure/chair/stool/directional/south, +/obj/structure/sign/map/right{ + desc = "A framed picture of the station. Clockwise from security in red at the top, you see engineering in yellow, science in purple, escape in checkered red-and-white, medbay in green, arrivals in checkered red-and-blue, and then cargo in brown."; + icon_state = "map-right-MS"; + pixel_y = 32 + }, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "Ah" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/machinery/light/neon_lining{ @@ -6055,6 +8584,14 @@ }, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"Ai" = ( +/obj/structure/sign/poster/contraband/lamarr{ + pixel_y = -32 + }, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) "Aj" = ( /obj/structure/railing/wood{ dir = 8 @@ -6085,10 +8622,36 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"Aq" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/window{ + id = "FBBZ1"; + name = "Security Shutters" + }, +/obj/structure/fans/tiny, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Ar" = ( /obj/structure/fake_stairs/wood/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"At" = ( +/obj/structure/sign/poster/contraband/bountyhunters{ + pixel_x = -32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) +"Au" = ( +/turf/open/floor/plastic, +/area/centcom/syndicate_mothership/expansion_fridgerummage) "Av" = ( /obj/effect/turf_decal/siding/green, /turf/open/floor/iron/dark/herringbone, @@ -6100,6 +8663,17 @@ /obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin) +"Ax" = ( +/obj/structure/table/reinforced/plasmarglass, +/obj/item/pen{ + pixel_x = 6; + pixel_y = 5 + }, +/obj/item/folder/red{ + pixel_x = -5 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "Ay" = ( /obj/structure/railing/wood, /obj/structure/table/reinforced, @@ -6207,6 +8781,11 @@ /obj/machinery/vending/autodrobe/all_access, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"AK" = ( +/obj/effect/turf_decal/trimline/red, +/obj/effect/turf_decal/trimline/red, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "AL" = ( /obj/structure/chair/office{ dir = 1 @@ -6236,6 +8815,16 @@ /obj/machinery/nuclearbomb/beer, /turf/open/floor/mineral/titanium/white, /area/centcom/central_command_areas/admin) +"AQ" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "AR" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/dice/d20, @@ -6252,6 +8841,16 @@ /obj/machinery/light/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"AU" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/railing{ + dir = 8 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "AV" = ( /obj/structure/hedge, /obj/structure/railing/wood{ @@ -6262,6 +8861,15 @@ /obj/structure/railing/wood, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"AW" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/centcom/syndicate_mothership/expansion_bombthreat) "AX" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -6270,10 +8878,27 @@ dir = 8 }, /area/centcom/central_command_areas/hall) +"AZ" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Ba" = ( /obj/structure/flora/bush/flowers_pp/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) +"Bc" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"Bd" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Be" = ( /obj/item/clothing/head/soft/fishing_hat, /obj/structure/table/wood, @@ -6362,6 +8987,12 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"Bl" = ( +/obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Bm" = ( /obj/structure/reagent_dispensers/fueltank, /obj/item/weldingtool/experimental, @@ -6370,10 +9001,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"Bp" = ( +/obj/structure/fence/door, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Bq" = ( -/obj/machinery/vending/medical, -/turf/closed/indestructible/riveted, -/area/centcom/central_command_areas/medical) +/obj/effect/landmark/start/wizard, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Br" = ( /obj/structure/railing/wood{ dir = 8 @@ -6389,6 +9024,26 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/evacuation) +"Bu" = ( +/obj/machinery/vending/drugs, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/medical) +"Bv" = ( +/obj/structure/chair/stool/bar/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/light/small/directional/north, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"Bx" = ( +/obj/structure/table/wood, +/obj/item/food/syndicake{ + pixel_y = 3 + }, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "By" = ( /obj/machinery/light/directional/south, /obj/structure/filingcabinet/chestdrawer, @@ -6425,10 +9080,28 @@ /obj/machinery/vending/cigarette, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"BD" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "BE" = ( /obj/structure/fake_stairs/wood/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"BG" = ( +/obj/structure/fence{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"BH" = ( +/turf/open/floor/mineral/titanium/yellow, +/area/centcom/syndicate_mothership/control) "BI" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -6455,9 +9128,95 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"BL" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/fishmeat, +/obj/item/food/fishmeat, +/obj/item/food/fishmeat, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato, +/obj/item/reagent_containers/condiment/enzyme{ + layer = 5 + }, +/obj/item/storage/fancy/egg_box, +/obj/item/storage/fancy/egg_box, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/flour{ + pixel_x = -5; + pixel_y = 9 + }, +/obj/item/reagent_containers/condiment/flour{ + pixel_x = -5; + pixel_y = 9 + }, +/turf/open/floor/plastic, +/area/centcom/syndicate_mothership/expansion_fridgerummage) +"BO" = ( +/obj/structure/bed{ + dir = 4 + }, +/obj/item/bedsheet/syndie{ + dir = 4 + }, +/turf/open/floor/iron/smooth_half, +/area/centcom/syndicate_mothership/control) +"BQ" = ( +/obj/structure/chair/stool/bar/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "BR" = ( /turf/open/floor/grass, /area/centcom/central_command_areas/evacuation/ship) +"BS" = ( +/mob/living/simple_animal/bot/medbot/mysterious{ + desc = "If you don't accidentally blow yourself up from time to time you're not really a wizard anyway."; + faction = list("neutral","silicon","creature"); + name = "Nobody's Perfect" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"BT" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Storage" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"BU" = ( +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_y = 32 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) +"BV" = ( +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"BW" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) +"BX" = ( +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "BY" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -6484,6 +9243,19 @@ /obj/structure/chair/comfy/shuttle, /turf/open/floor/circuit/green, /area/centcom/central_command_areas/admin) +"Cd" = ( +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership/control) +"Ce" = ( +/obj/structure/table/wood, +/obj/item/dice/d20, +/obj/item/dice, +/turf/open/floor/carpet, +/area/centcom/wizard_station) +"Cf" = ( +/obj/structure/destructible/cult/item_dispenser/forge/engine, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Cg" = ( /obj/effect/turf_decal/siding/dark{ dir = 6 @@ -6511,6 +9283,16 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) +"Ck" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/portable_atmospherics/canister, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"Cl" = ( +/turf/open/space/transit, +/area/space) "Cm" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/table/reinforced, @@ -6523,11 +9305,26 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/four) +"Cp" = ( +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Cq" = ( /obj/structure/chair/comfy/carp, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Cr" = ( +/obj/effect/turf_decal/box/corners{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Cs" = ( /obj/effect/turf_decal/siding/dark, /turf/open/floor/iron/dark, @@ -6544,6 +9341,22 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"Cv" = ( +/obj/machinery/light/cold/directional/south, +/turf/open/floor/iron/smooth_half{ + dir = 1 + }, +/area/centcom/syndicate_mothership/control) +"Cw" = ( +/obj/effect/turf_decal/siding/red, +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/obj/item/stack/spacecash/c10{ + pixel_x = -19; + pixel_y = 10 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Cx" = ( /obj/machinery/door/airlock/centcom, /turf/open/floor/iron/dark, @@ -6567,6 +9380,17 @@ /obj/effect/turf_decal/trimline/green, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) +"CB" = ( +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"CC" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "CF" = ( /obj/machinery/suit_storage_unit/industrial, /obj/structure/window/reinforced/survival_pod/spawner/directional/east, @@ -6585,6 +9409,32 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/textured, /area/centcom/central_command_areas/evacuation/ship) +"CI" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"CJ" = ( +/obj/structure/barricade/sandbags, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"CK" = ( +/obj/effect/turf_decal/stripes/full, +/turf/open/floor/mineral/titanium/yellow, +/area/centcom/syndicate_mothership/control) +"CL" = ( +/obj/docking_port/stationary{ + area_type = /area/centcom/syndicate_mothership; + dheight = 1; + dir = 4; + dwidth = 12; + height = 17; + name = "syndicate recon outpost"; + roundstart_template = /datum/map_template/shuttle/infiltrator/basic; + shuttle_id = "syndicate_away"; + width = 23 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "CM" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -6606,6 +9456,10 @@ /obj/structure/fireaxecabinet/directional/north, /turf/open/misc/grass, /area/centcom/central_command_areas/admin) +"CP" = ( +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "CQ" = ( /obj/structure/injured_spawner, /turf/open/floor/iron/dark, @@ -6657,6 +9511,22 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"CX" = ( +/obj/structure/chair/stool/directional/south, +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = 32 + }, +/obj/effect/landmark/start/nukeop, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) +"CY" = ( +/obj/structure/chair/greyscale{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Da" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/bodycontainer/morgue, @@ -6674,6 +9544,29 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) +"Dc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Dd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) +"De" = ( +/obj/item/cautery/alien, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/centcom/wizard_station) +"Df" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Dg" = ( /obj/structure/hedge, /obj/structure/railing/wood, @@ -6696,12 +9589,29 @@ /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"Dk" = ( +/obj/structure/chair/sofa/right/brown{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/revolver{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Dl" = ( /obj/structure/chair/sofa/corp/left{ dir = 8 }, /turf/open/floor/mineral/titanium/white, /area/centcom/central_command_areas/admin) +"Dm" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/red/corner, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Dn" = ( /obj/structure/flora/tree/palm, /obj/machinery/light/directional/north, @@ -6714,11 +9624,21 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) -"Dr" = ( +"Dp" = ( /obj/structure/table/reinforced, -/obj/item/storage/backpack/duffelbag/med/surgery, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/medical) +/obj/effect/turf_decal/siding/red{ + dir = 4 + }, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"Dq" = ( +/obj/structure/railing{ + dir = 5 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "Dt" = ( /obj/machinery/modular_computer/console/preset/id/centcom, /obj/effect/turf_decal/siding/dark{ @@ -6726,6 +9646,12 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"Dv" = ( +/obj/item/clothing/suit/wizrobe/black, +/obj/item/clothing/head/wizard/black, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/centcom/wizard_station) "Dw" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -6736,6 +9662,21 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin) +"Dy" = ( +/obj/structure/flora/grass/both/style_random, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"Dz" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/barricade/sandbags, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "DA" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 8 @@ -6774,6 +9715,34 @@ }, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin_hangout) +"DH" = ( +/obj/machinery/igniter/incinerator_ordmix{ + id = "syn_ordmix_igniter" + }, +/turf/open/floor/engine/vacuum, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"DI" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) +"DJ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"DK" = ( +/obj/structure/sign/poster/contraband/c20r{ + pixel_y = -32 + }, +/obj/structure/cable, +/turf/open/floor/iron/smooth, +/area/centcom/syndicate_mothership/control) "DL" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -6785,6 +9754,21 @@ }, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"DN" = ( +/obj/structure/table/glass/plasmaglass, +/obj/item/stack/sheet/mineral/plasma{ + pixel_y = 15 + }, +/obj/item/grenade/chem_grenade, +/obj/item/stack/cable_coil, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/machinery/light/cold/directional/west, +/obj/item/stack/cable_coil, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "DO" = ( /obj/item/kirbyplants{ icon_state = "plant-22"; @@ -6824,6 +9808,12 @@ }, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/ghost_spawn) +"DS" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "DU" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -6868,11 +9858,24 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"Ee" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "Ef" = ( /obj/structure/table/wood, /obj/machinery/computer/security/wooden_tv, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/admin) +"Eg" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Break Room" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Eh" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -6882,6 +9885,20 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"Ei" = ( +/obj/machinery/door/airlock/titanium{ + name = "Restroom" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"Ek" = ( +/obj/item/toy/figure/syndie, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "El" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -6939,6 +9956,17 @@ /obj/machinery/vending/cola/black, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"Es" = ( +/obj/item/toy/plush/lizard_plushie/green{ + name = "Spots-The-Operative" + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"Eu" = ( +/obj/effect/decal/cleanable/blood/splatter, +/obj/effect/decal/cleanable/blood/gibs/body, +/turf/open/floor/grass, +/area/centcom/wizard_station) "Ev" = ( /obj/structure/chair/sofa/corp/right, /obj/effect/turf_decal/tile/dark/opposingcorners, @@ -7013,6 +10041,19 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) +"EF" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/public/glass{ + name = "Cafeteria" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "EG" = ( /obj/effect/turf_decal/siding/green{ dir = 4 @@ -7085,6 +10126,14 @@ /obj/structure/chair/sofa/corp/left, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"ER" = ( +/obj/effect/turf_decal/tile/dark/diagonal_edge, +/obj/structure/table/reinforced, +/obj/item/knife, +/obj/item/knife, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/white/diagonal, +/area/centcom/central_command_areas/kitchen) "ES" = ( /obj/effect/turf_decal/siding/green, /obj/effect/turf_decal/siding/green/corner{ @@ -7124,6 +10173,12 @@ }, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/evacuation/ship) +"EW" = ( +/obj/structure/railing/wood, +/obj/structure/table/reinforced, +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/medical) "EZ" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -7148,6 +10203,19 @@ }, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"Fc" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 6 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) +"Fd" = ( +/obj/structure/weightmachine/weightlifter, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Fe" = ( /obj/machinery/light/directional/west, /obj/effect/turf_decal/siding/wood{ @@ -7181,6 +10249,12 @@ /obj/effect/landmark/basketball/game_area, /turf/open/space/basic, /area/space) +"Fl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Fm" = ( /obj/structure/table/reinforced/plastitaniumglass{ name = "Andrea's Desk" @@ -7203,6 +10277,27 @@ /obj/machinery/light/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"Fr" = ( +/obj/machinery/camera/autoname/directional/north{ + network = list("nukie") + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) +"Fs" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) +"Ft" = ( +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "Fv" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/reinforced, @@ -7212,9 +10307,22 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/kitchen) +"Fw" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/puzzle/keycard/syndicate_fridge, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/expansion_fridgerummage) "Fy" = ( /turf/open/chasm, /area/centcom/central_command_areas/admin) +"Fz" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership) "FA" = ( /obj/structure/flora/bush/large/style_3, /turf/open/floor/grass, @@ -7229,6 +10337,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"FC" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/processor/slime, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "FD" = ( /obj/structure/railing/wood{ dir = 1 @@ -7416,6 +10531,12 @@ /obj/machinery/light/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin) +"Gf" = ( +/obj/structure/table/wood, +/obj/item/stack/medical/bruise_pack, +/obj/item/stack/medical/ointment, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Gh" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -7447,6 +10568,23 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/centcom/central_command_areas/evacuation/ship) +"Gj" = ( +/obj/structure/sink/kitchen/directional/west, +/obj/item/reagent_containers/cup/bucket, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) +"Gk" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/purple, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Gl" = ( +/obj/structure/flora/grass/both/style_random, +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "Gm" = ( /obj/structure/railing/wood{ dir = 1 @@ -7467,12 +10605,24 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin_hangout) +"Go" = ( +/obj/machinery/computer/camera_advanced{ + dir = 4 + }, +/turf/open/floor/wood, +/area/centcom/wizard_station) "Gp" = ( /obj/structure/chair/wood{ dir = 8 }, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/borbop) +"Gr" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 4 + }, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "Gt" = ( /obj/machinery/door/airlock/centcom{ name = "Trapp's Office" @@ -7498,6 +10648,35 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) +"Gw" = ( +/obj/structure/railing{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"Gx" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) +"Gy" = ( +/obj/item/gun/energy/ionrifle, +/obj/structure/rack, +/obj/machinery/camera/autoname/directional/west{ + network = list("nukie") + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) "Gz" = ( /obj/machinery/computer/auxiliary_base/directional/north, /obj/structure/table/reinforced, @@ -7510,6 +10689,18 @@ "GA" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/ferry) +"GB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/fun_police{ + pixel_x = -32 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bombthreat) "GC" = ( /obj/effect/turf_decal/siding/dark{ dir = 8 @@ -7519,6 +10710,22 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) +"GE" = ( +/obj/structure/chair/stool/directional/north, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"GF" = ( +/obj/structure/table/wood, +/obj/item/food/nachos{ + pixel_x = 7; + pixel_y = -14 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"GG" = ( +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_fridgerummage) "GI" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/vending/autodrobe/all_access, @@ -7584,9 +10791,6 @@ /turf/open/floor/carpet/executive, /area/centcom/central_command_areas/admin) "GR" = ( -/obj/structure/railing/wood{ - dir = 4 - }, /obj/effect/turf_decal/siding/wood{ dir = 5 }, @@ -7603,6 +10807,18 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"GT" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/machinery/light/directional/west, +/obj/item/reagent_containers/cup/glass/shaker, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"GV" = ( +/obj/structure/mop_bucket, +/obj/item/mop, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "GW" = ( /turf/open/floor/carpet, /area/centcom/central_command_areas/admin_hangout) @@ -7628,6 +10844,18 @@ /obj/effect/mapping_helpers/airlock/access/any/admin/captain, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"Ha" = ( +/obj/machinery/door/airlock/external/ruin, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "Hb" = ( /obj/machinery/power/port_gen/pacman, /obj/structure/cable, @@ -7651,6 +10879,34 @@ /obj/item/toy/plush/lizard_plushie, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) +"Hf" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/east, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"Hg" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/purple, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Hh" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Sky Bridge" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/textured_large, +/area/centcom/syndicate_mothership/control) "Hi" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/light/directional/east, @@ -7683,6 +10939,10 @@ /obj/structure/sign/warning/yes_smoking/circle/directional/north, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Hn" = ( +/obj/structure/table/reinforced, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/botany) "Ho" = ( /obj/effect/turf_decal/siding/dark{ dir = 9 @@ -7707,6 +10967,12 @@ }, /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"Hs" = ( +/obj/effect/turf_decal/weather/snow/corner{ + dir = 1 + }, +/turf/open/misc/ice/icemoon, +/area/centcom/syndicate_mothership/control) "Ht" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -7729,11 +10995,19 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin) +"Hx" = ( +/obj/structure/fence/cut/large, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Hy" = ( /obj/structure/window/plasma/spawner/directional/north, /obj/structure/window/plasma/spawner/directional/east, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"Hz" = ( +/obj/structure/table/wood, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "HA" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -7750,6 +11024,10 @@ }, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/borbop) +"HC" = ( +/obj/machinery/chem_master, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "HD" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/dark{ @@ -7760,6 +11038,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"HF" = ( +/obj/structure/flora/rock/icy/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "HG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 @@ -7767,6 +11049,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/catwalk_floor, /area/centcom/central_command_areas/evacuation/ship) +"HH" = ( +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "HI" = ( /obj/effect/turf_decal/siding/blue, /obj/effect/turf_decal/siding/blue/corner{ @@ -7815,6 +11103,16 @@ }, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin_hangout) +"HO" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) "HP" = ( /obj/structure/hedge, /obj/structure/railing/wood, @@ -7851,6 +11149,14 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/borbop) +"HV" = ( +/obj/structure/barricade/sandbags, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "HW" = ( /obj/effect/turf_decal/siding/blue/corner, /turf/open/floor/iron/dark/herringbone, @@ -7904,6 +11210,19 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/admin) +"If" = ( +/obj/structure/chair/stool/directional/north, +/obj/effect/landmark/start/nukeop, +/obj/structure/sign/poster/contraband/donk_co{ + pixel_y = -32 + }, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) +"Ig" = ( +/obj/structure/dresser, +/obj/item/storage/backpack/satchel, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "Ih" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/supply) @@ -7933,6 +11252,11 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Im" = ( +/obj/item/coin/antagtoken, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/centcom/wizard_station) "In" = ( /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/circuit/telecomms, @@ -7953,6 +11277,9 @@ /obj/structure/chair/stool/bar/directional/east, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/evacuation/ship) +"Iq" = ( +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Ir" = ( /obj/machinery/computer/emergency_shuttle{ dir = 1 @@ -7972,6 +11299,11 @@ "It" = ( /turf/open/indestructible/event/plating, /area/centcom/tdome/arena/actual) +"Iu" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Iv" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -7981,11 +11313,20 @@ }, /turf/open/floor/stone, /area/centcom/central_command_areas/evacuation/ship) +"Iw" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/space/basic, +/area/space/nearstation) "Iy" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/table/reinforced, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/borbop) +"Iz" = ( +/obj/structure/flora/rock/pile/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "IA" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, @@ -7995,6 +11336,11 @@ /obj/structure/window/plasma/spawner/directional/east, /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) +"IC" = ( +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "ID" = ( /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin) @@ -8073,6 +11419,24 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"IP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"IQ" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "IR" = ( /obj/structure/table/wood/fancy/royalblack, /obj/effect/turf_decal/siding/wood, @@ -8082,6 +11446,13 @@ /obj/machinery/door/poddoor/shutters/indestructible/preopen, /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/admin) +"IT" = ( +/obj/effect/turf_decal/stripes/box, +/obj/machinery/portable_atmospherics/pump/lil_pump{ + desc = "A betrayer to pump-kind." + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bombthreat) "IU" = ( /turf/open/floor/mineral/titanium/white, /area/centcom/central_command_areas/admin) @@ -8106,17 +11477,46 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"IY" = ( +/obj/effect/baseturf_helper/asteroid/snow, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) "IZ" = ( /obj/structure/chair/wood, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/borbop) +"Ja" = ( +/obj/structure/chair/wood/wings{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "Jb" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/prison/cells) +"Jc" = ( +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "Jd" = ( /obj/structure/fake_stairs/wood/directional/north, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"Je" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 5 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"Jf" = ( +/obj/structure/sign/poster/contraband/syndiemoth{ + pixel_x = 32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Jg" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/reinforced, @@ -8181,6 +11581,17 @@ /obj/machinery/computer/security/wooden_tv, /turf/open/floor/carpet, /area/centcom/central_command_areas/admin_hangout) +"Jt" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/closet/syndicate/personal, +/obj/structure/sign/poster/contraband/lusty_xenomorph{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "Ju" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, @@ -8208,6 +11619,23 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"Jx" = ( +/obj/structure/railing{ + dir = 6 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"Jy" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/door/puzzle/keycard/syndicate_bio, +/obj/structure/fans/tiny, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Jz" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, @@ -8237,6 +11665,14 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"JD" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Engine Room" + }, +/obj/structure/barricade/wooden, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "JE" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 4 @@ -8301,6 +11737,26 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation) +"JO" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/analyzer{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/item/pipe_dispenser{ + desc = "A device used to rapidly pipe things. This one has a curious abundance of warning labels."; + name = "Syndicate Rapid Pipe Dispenser (RPD)"; + pixel_y = -3 + }, +/obj/item/flamethrower/full, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"JP" = ( +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "JQ" = ( /obj/structure/table/reinforced/titaniumglass, /obj/item/paper_bin, @@ -8317,6 +11773,15 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"JS" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/both/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "JT" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/siding/wood{ @@ -8364,6 +11829,10 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"JZ" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Ka" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -8413,6 +11882,12 @@ /obj/structure/table/reinforced, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/briefing) +"Kf" = ( +/obj/effect/turf_decal/siding/red{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Kg" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/wood/corner{ @@ -8464,6 +11939,13 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"Kn" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Ko" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -8514,6 +11996,13 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) +"Kv" = ( +/obj/item/clothing/shoes/sneakers/marisa, +/obj/item/clothing/suit/wizrobe/marisa, +/obj/item/clothing/head/wizard/marisa, +/obj/item/staff/broom, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Kw" = ( /obj/structure/chair/office{ dir = 1 @@ -8533,6 +12022,13 @@ }, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) +"Kz" = ( +/obj/structure/fluff/tram_rail, +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "KB" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -8542,6 +12038,50 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin) +"KC" = ( +/obj/structure/table/wood/fancy, +/obj/item/skub{ + pixel_y = 16 + }, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) +"KD" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) +"KE" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/obj/structure/table/glass/plasmaglass, +/obj/machinery/reagentgrinder{ + pixel_x = -5; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -7; + pixel_y = -8 + }, +/obj/item/reagent_containers/cup/beaker/cryoxadone{ + pixel_x = 9; + pixel_y = -7 + }, +/obj/structure/sign/poster/contraband/lizard{ + pixel_x = -32 + }, +/obj/structure/sign/poster/contraband/kudzu{ + pixel_y = 32 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 10; + pixel_y = 5 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "KF" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -8576,6 +12116,13 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/smooth_large, /area/centcom/central_command_areas/evacuation/ship) +"KL" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/structure/closet/firecloset, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "KM" = ( /obj/effect/turf_decal/siding/dark, /obj/effect/turf_decal/siding/dark/corner{ @@ -8620,6 +12167,15 @@ "KQ" = ( /turf/open/floor/plating, /area/centcom/central_command_areas/evacuation/ship) +"KR" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/tree/dead/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "KS" = ( /obj/docking_port/stationary{ dir = 4; @@ -8649,6 +12205,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_large, /area/centcom/central_command_areas/evacuation/ship) +"KW" = ( +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "KX" = ( /obj/structure/railing{ dir = 6; @@ -8716,6 +12280,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/evacuation/ship) +"Le" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red/corner{ + dir = 8 + }, +/obj/item/folder/red, +/obj/item/pen/red, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Lf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 @@ -8800,6 +12373,16 @@ /obj/effect/turf_decal/tile/orange/diagonal_edge, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"Lr" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/obj/machinery/camera/autoname/directional/east{ + network = list("nukie") + }, +/obj/machinery/chem_dispenser/mutagensaltpeter, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Ls" = ( /obj/machinery/biogenerator/admin, /obj/effect/turf_decal/siding/wood{ @@ -9036,6 +12619,18 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"LZ" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/closet/syndicate/personal, +/obj/structure/sign/poster/contraband/gorlex_recruitment{ + pixel_y = 32 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/red/full, +/turf/open/floor/iron/dark/textured_half{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "Ma" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, @@ -9086,6 +12681,18 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Mi" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/blood, +/obj/structure/extinguisher_cabinet/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "Mj" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/dark{ @@ -9113,6 +12720,14 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/grass, /area/centcom/central_command_areas/hall) +"Mn" = ( +/obj/effect/turf_decal/siding/thinplating, +/obj/machinery/door/window/survival_pod{ + name = "Surgery"; + opacity = 1 + }, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/centcom/syndicate_mothership/control) "Mo" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, @@ -9123,17 +12738,68 @@ }, /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"Mq" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/railing/corner{ + dir = 1 + }, +/turf/open/floor/plating/icemoon, +/area/centcom/syndicate_mothership/control) +"Mr" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Sky Bridge" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/textured_large, +/area/centcom/syndicate_mothership/control) +"Ms" = ( +/turf/closed/indestructible/riveted/uranium, +/area/centcom/wizard_station) "Mt" = ( /mob/living/simple_animal/bot/cleanbot/medbay, /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"Mu" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/door/airlock/titanium{ + name = "Experiments Wing Decontamination" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Mv" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Mw" = ( +/obj/effect/turf_decal/trimline/red, +/obj/effect/turf_decal/trimline/red, +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/camera/autoname/directional/north{ + network = list("nukie") + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Mx" = ( /obj/machinery/light/floor/has_bulb, /obj/structure/chair/comfy/carp{ @@ -9145,6 +12811,12 @@ /obj/structure/fake_stairs/wood/directional/north, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"Mz" = ( +/obj/machinery/microwave, +/obj/structure/table/reinforced/plastitaniumglass, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "MB" = ( /obj/structure/hedge, /obj/effect/turf_decal/siding/dark{ @@ -9208,6 +12880,16 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"ML" = ( +/obj/structure/closet/crate{ + icon_state = "crateopen" + }, +/obj/item/clothing/suit/wizrobe/red, +/obj/item/clothing/head/wizard/red, +/obj/item/staff, +/obj/item/clothing/shoes/sandal/magic, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "MM" = ( /obj/machinery/power/shuttle_engine/large, /turf/open/floor/plating, @@ -9249,6 +12931,42 @@ dir = 10 }, /area/centcom/central_command_areas/hall) +"MR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/atmospherics/components/binary/pump/on{ + dir = 1 + }, +/obj/machinery/airalarm/unlocked{ + dir = 8; + pixel_x = -24 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"MS" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Observation Deck" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"MT" = ( +/obj/machinery/computer/camera_advanced/xenobio, +/obj/structure/noticeboard/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"MV" = ( +/obj/effect/turf_decal/siding/thinplating{ + dir = 5 + }, +/obj/structure/table/reinforced/plasmarglass, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = -11 + }, +/obj/item/storage/belt/medical, +/turf/open/floor/mineral/titanium/tiled/blue, +/area/centcom/syndicate_mothership/control) "MW" = ( /obj/machinery/status_display/evac/directional/west, /obj/machinery/light/directional/west, @@ -9289,6 +13007,10 @@ /obj/structure/hedge, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"Ne" = ( +/obj/item/stack/sheet/mineral/sandbags, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) "Nf" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, @@ -9299,6 +13021,19 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"Nh" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/hatch{ + name = "Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "Ni" = ( /obj/effect/turf_decal/siding/dark/corner{ dir = 1 @@ -9314,6 +13049,13 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/prison/cells) +"Nk" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ + dir = 1 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "Nm" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -9321,6 +13063,17 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/white/textured, /area/centcom/central_command_areas/evacuation/ship) +"Nn" = ( +/obj/structure/table/reinforced/plastitaniumglass, +/obj/item/storage/fancy/cigarettes/cigars/havana, +/obj/item/toy/plush/nukeplushie{ + name = "Sir Flash Nukedon"; + pixel_x = -2; + pixel_y = 14 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "No" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/effect/portal/permanent{ @@ -9328,6 +13081,10 @@ }, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"Np" = ( +/obj/structure/chair/office, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Nq" = ( /obj/effect/turf_decal/siding/wood{ dir = 5 @@ -9351,6 +13108,28 @@ /obj/machinery/light/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/kitchen) +"Nu" = ( +/obj/structure/rack, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/ducts/fifty, +/obj/item/wrench{ + desc = "A little smidgeon of Freon..."; + name = "Freon" + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Nv" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"Nw" = ( +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bombthreat) "Nx" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -9373,6 +13152,14 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"NA" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line, +/obj/structure/railing{ + dir = 1 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "NB" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/wood/fancy/royalblue, @@ -9386,6 +13173,10 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"ND" = ( +/obj/machinery/vending/snack, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "NE" = ( /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/pod_storage) @@ -9393,6 +13184,12 @@ /obj/structure/fake_stairs/wood/directional/south, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"NG" = ( +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "NH" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/structure/railing/wood{ @@ -9428,6 +13225,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"NM" = ( +/obj/structure/fence/cut/large, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "NN" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/trimline/green, @@ -9455,12 +13260,40 @@ /obj/machinery/rnd/production/techfab/department/medical, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"NU" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/structure/chair/sofa/bench, +/obj/machinery/light/cold/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/stone, +/area/centcom/syndicate_mothership/control) "NV" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"NY" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/door/puzzle/keycard/syndicate_bomb, +/obj/structure/fans/tiny, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"NZ" = ( +/obj/structure/chair/stool/bar/directional/west, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 4 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Ob" = ( /obj/structure/fireplace{ pixel_x = 0 @@ -9475,6 +13308,25 @@ }, /turf/open/floor/carpet, /area/centcom/central_command_areas/admin) +"Oc" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red{ + dir = 1 + }, +/obj/item/folder/red, +/obj/item/pen/red, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"Od" = ( +/obj/effect/turf_decal/siding/purple, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Oe" = ( +/turf/open/misc/ice/icemoon, +/area/centcom/syndicate_mothership/control) "Of" = ( /obj/structure/curtain/cloth/fancy, /obj/effect/spawner/structure/window/reinforced, @@ -9494,6 +13346,12 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"Oi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Oj" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, @@ -9569,6 +13427,10 @@ dir = 10 }, /area/centcom/central_command_areas/hall) +"Ot" = ( +/obj/structure/railing, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "Ou" = ( /obj/structure/table/wood, /obj/machinery/modular_computer/console/preset/id/centcom{ @@ -9576,11 +13438,33 @@ }, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/admin) +"Ov" = ( +/obj/structure/chair/wood/wings, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Ox" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/machinery/griddle, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/kitchen) +"Oy" = ( +/obj/machinery/button/door/directional/east{ + id = "FBBZ1"; + name = "Security Shutters" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"Oz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 6 + }, +/obj/item/kirbyplants/random, +/obj/machinery/camera/autoname/directional/east{ + network = list("nukie") + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "OA" = ( /obj/effect/turf_decal/siding/dark, /obj/effect/turf_decal/siding/dark{ @@ -9635,6 +13519,21 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron/dark/smooth_large, /area/centcom/central_command_areas/evacuation/ship) +"OH" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/structure/sign/poster/contraband/cybersun_six_hundred{ + pixel_x = 32 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"OI" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red/corner{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "OJ" = ( /obj/effect/turf_decal/siding/blue{ dir = 5 @@ -9648,11 +13547,18 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"OL" = ( +/turf/closed/indestructible/rock/snow, +/area/centcom/syndicate_mothership/control) "OM" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"ON" = ( +/obj/machinery/vending/magivend, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "OO" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/light/directional/west, @@ -9677,6 +13583,24 @@ /obj/machinery/coffeemaker/impressa, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/admin) +"OS" = ( +/obj/effect/decal/remains/human, +/obj/effect/decal/cleanable/blood/splatter, +/turf/open/floor/grass, +/area/centcom/wizard_station) +"OT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"OU" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "OV" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -9702,6 +13626,13 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"OY" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Pa" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -9725,6 +13656,15 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Pd" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "Pe" = ( /obj/structure/railing/wood{ dir = 8 @@ -9737,10 +13677,22 @@ /obj/structure/fake_stairs/wood/directional/north, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/borbop) +"Ph" = ( +/obj/machinery/door/airlock/hatch{ + name = "Closet" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_edge, +/area/centcom/syndicate_mothership/control) "Pj" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Pk" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/item/kirbyplants/random, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Pl" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/dice/d10, @@ -9772,6 +13724,14 @@ }, /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"Ps" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Pt" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical, @@ -9781,6 +13741,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"Pu" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/monkey_recycler, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Pv" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -9804,6 +13771,25 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"Py" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Pz" = ( +/obj/machinery/computer/shuttle/syndicate/recall{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) +"PA" = ( +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) +"PB" = ( +/obj/machinery/light/small/directional/north, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "PC" = ( /obj/machinery/button/door/indestructible{ id = "XCCQMLoaddoor"; @@ -9830,6 +13816,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/supply) +"PD" = ( +/obj/effect/turf_decal/bot, +/turf/open/floor/iron, +/area/centcom/wizard_station) "PE" = ( /obj/machinery/newscaster{ pixel_x = 32 @@ -9837,6 +13827,10 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/armory) +"PF" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/catwalk_floor/iron_smooth, +/area/centcom/syndicate_mothership/control) "PG" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -9865,6 +13859,9 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/one) +"PL" = ( +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "PM" = ( /obj/structure/chair/office, /obj/effect/landmark/ert_spawn, @@ -9872,16 +13869,49 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"PN" = ( +/obj/structure/sign/poster/contraband/gorlex_recruitment{ + pixel_x = -32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "PO" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"PP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/iron, +/area/centcom/syndicate_mothership/control) +"PQ" = ( +/obj/machinery/light/cold/directional/north, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"PS" = ( +/obj/machinery/computer/camera_advanced{ + dir = 8; + networks = list("nukie") + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "PT" = ( /obj/structure/fake_stairs/wood/directional/east, /obj/structure/railing/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"PU" = ( +/turf/open/floor/circuit/red, +/area/centcom/syndicate_mothership/control) +"PV" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Personal Quarters" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "PW" = ( /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/three) @@ -9918,6 +13948,21 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Qb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/c20r{ + pixel_x = 32 + }, +/obj/machinery/portable_atmospherics/canister/plasma, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"Qc" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "Qd" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/drinkingglass{ @@ -9954,6 +13999,10 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, /area/centcom/central_command_areas/evacuation) +"Qk" = ( +/obj/structure/cable, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) "Ql" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -9992,6 +14041,13 @@ }, /turf/open/floor/carpet/black, /area/centcom/central_command_areas/borbop) +"Qr" = ( +/obj/machinery/light/cold/directional/north, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "Qs" = ( /obj/effect/turf_decal/siding/blue/end{ dir = 4 @@ -10015,6 +14071,39 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Qw" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/andromeda_bitters{ + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) +"Qx" = ( +/turf/closed/indestructible/fakedoor{ + name = "Sub-Laboratory Elevator" + }, +/area/centcom/syndicate_mothership/control) +"Qy" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/structure/sign/poster/contraband/power{ + pixel_y = 32 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) +"Qz" = ( +/obj/machinery/door/airlock/hatch{ + name = "Gangway" + }, +/obj/structure/fans/tiny, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "QA" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/wood/fancy/royalblue, @@ -10061,6 +14150,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) +"QF" = ( +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating, +/obj/machinery/door/airlock/external/ruin, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "QH" = ( /obj/effect/turf_decal/siding/wideplating_new/dark, /obj/effect/turf_decal/tile/neutral/full, @@ -10098,11 +14199,36 @@ /obj/machinery/rnd/production/techfab/department/service, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) +"QO" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 4 + }, +/obj/machinery/door/airlock/highsecurity{ + name = "Sky Bridge" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/textured_large, +/area/centcom/syndicate_mothership/control) "QP" = ( /obj/effect/heretic_rune/big, /obj/structure/chair/musical, /turf/open/floor/plating/abductor, /area/centcom/central_command_areas/admin) +"QQ" = ( +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/centcom/wizard_station) +"QR" = ( +/obj/machinery/shower/directional/east, +/obj/effect/turf_decal/stripes/box, +/turf/open/floor/mineral/titanium/tiled, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "QS" = ( /obj/effect/turf_decal/siding/dark/corner{ dir = 8 @@ -10112,6 +14238,15 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin_hangout) +"QU" = ( +/obj/structure/flora/tree/pine/style_random, +/obj/structure/flora/grass/both/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "QV" = ( /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) @@ -10130,6 +14265,13 @@ /obj/machinery/light/directional/west, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"QZ" = ( +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"Rb" = ( +/obj/machinery/chem_heater/withbuffer, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Rc" = ( /obj/machinery/chem_master/condimaster, /turf/open/floor/iron/dark, @@ -10139,7 +14281,7 @@ /obj/effect/turf_decal/siding/wood{ dir = 1 }, -/obj/structure/hedge, +/obj/machinery/chem_heater/debug, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) "Rf" = ( @@ -10149,6 +14291,10 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"Rg" = ( +/obj/item/food/meat/slab/human/mutant/slime, +/turf/open/floor/grass, +/area/centcom/wizard_station) "Ri" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -10163,6 +14309,11 @@ /obj/structure/marker_beacon/burgundy, /turf/open/floor/catwalk_floor, /area/centcom/central_command_areas/evacuation/ship) +"Rl" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) "Rm" = ( /obj/effect/turf_decal/siding/dark{ dir = 9 @@ -10172,6 +14323,15 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/kitchen) +"Rn" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "Ro" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -10193,12 +14353,23 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/carpet, /area/centcom/central_command_areas/admin_hangout) +"Rs" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Rt" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, /obj/item/pen/fourcolor, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"Ru" = ( +/obj/item/statuebust{ + pixel_y = 12 + }, +/obj/structure/table/wood/fancy, +/turf/open/floor/wood, +/area/centcom/wizard_station) "Rv" = ( /obj/machinery/vending/boozeomat, /obj/item/reagent_containers/cup/glass/modglass/small{ @@ -10218,6 +14389,14 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/borbop) +"Rw" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Rx" = ( /obj/structure/railing/wrestling{ dir = 8 @@ -10255,6 +14434,26 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"RB" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/door/airlock/hatch{ + name = "Armoury" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) +"RC" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) "RD" = ( /obj/effect/turf_decal/siding/dark{ dir = 10 @@ -10293,6 +14492,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"RI" = ( +/obj/machinery/oven/range, +/obj/structure/sign/poster/contraband/eat{ + pixel_x = -32 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "RJ" = ( /obj/effect/decal/cleanable/fuel_pool, /turf/open/floor/grass, @@ -10332,6 +14539,28 @@ /obj/structure/hedge, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"RP" = ( +/obj/structure/flora/tree/dead/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) +"RQ" = ( +/obj/structure/rack, +/obj/item/katana/cursed{ + desc = "A gift from your benefactors."; + force = 20 + }, +/turf/open/floor/catwalk_floor/iron_dark, +/area/centcom/syndicate_mothership/control) +"RR" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/railing{ + dir = 10 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "RT" = ( /obj/machinery/light/directional/south, /turf/open/floor/grass, @@ -10357,6 +14586,15 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"RW" = ( +/obj/machinery/computer/mech_bay_power_console{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "RX" = ( /obj/structure/railing/wood, /obj/effect/turf_decal/trimline/green/line, @@ -10396,9 +14634,28 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"Sg" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters{ + id = "FBBZ1"; + name = "Security Shutters" + }, +/obj/structure/fans/tiny, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Si" = ( /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/two) +"Sj" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/effect/turf_decal/siding/red, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Sk" = ( /obj/structure/table/reinforced, /obj/item/storage/medkit/regular, @@ -10410,6 +14667,36 @@ /obj/structure/chair/sofa/corp, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"Sn" = ( +/obj/machinery/light/cold/directional/west, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"Sp" = ( +/obj/structure/closet/crate/freezer{ + name = "meat freezer" + }, +/obj/item/food/meat/slab/bear, +/obj/item/food/meat/slab/bear, +/obj/item/food/meat/slab/bear, +/obj/item/food/meat/slab/bear, +/obj/item/food/meat/slab/gondola, +/obj/item/food/meat/slab/xeno, +/obj/item/food/meat/slab/xeno, +/obj/item/food/meat/slab/xeno, +/obj/item/food/meat/slab/killertomato, +/obj/item/food/meat/slab/killertomato, +/obj/item/food/meat/slab/killertomato, +/obj/item/food/meat/slab/spider, +/obj/item/food/meat/slab/penguin, +/obj/item/food/meat/slab/rawcrab, +/obj/item/food/grown/carrot, +/obj/item/food/grown/carrot, +/obj/item/food/grown/garlic, +/obj/item/food/grown/garlic, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato, +/turf/open/floor/plastic, +/area/centcom/syndicate_mothership/expansion_fridgerummage) "Sq" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -10419,6 +14706,13 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"Sr" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark, +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Ss" = ( /obj/effect/turf_decal/siding/dark{ dir = 4 @@ -10433,11 +14727,48 @@ /obj/effect/turf_decal/trimline/blue, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/botany) +"Sw" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 9 + }, +/obj/structure/table/glass/plasmaglass, +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 1 + }, +/obj/item/storage/medkit/regular, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) +"Sx" = ( +/obj/structure/table/glass/plasmaglass, +/obj/item/reagent_containers/cup/beaker/large{ + pixel_x = -5; + pixel_y = 8 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/machinery/light/cold/directional/east, +/obj/item/gun/syringe/syndicate, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Sz" = ( /obj/structure/hedge, /obj/machinery/light/floor/has_bulb, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"SA" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"SB" = ( +/obj/machinery/atmospherics/components/binary/valve{ + dir = 8 + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "SC" = ( /obj/structure/tank_dispenser/oxygen, /obj/structure/window/reinforced/survival_pod/spawner/directional/west, @@ -10488,6 +14819,21 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"SG" = ( +/obj/effect/turf_decal/siding/red/corner{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"SH" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored{ + chamber_id = "nukiebase"; + desc = "Has a valve and pump attached to it. Slightly more menacing than Nanotrasen's standard."; + dir = 1; + name = "syndicate air injector" + }, +/turf/open/floor/engine/vacuum, +/area/centcom/syndicate_mothership/expansion_bombthreat) "SI" = ( /obj/structure/closet, /turf/open/floor/iron/dark, @@ -10534,6 +14880,13 @@ }, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"SN" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/effect/turf_decal/siding/thinplating_new/dark, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "SO" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/machinery/light/neon_lining{ @@ -10546,6 +14899,19 @@ }, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"SP" = ( +/obj/effect/turf_decal/siding/wideplating/dark, +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 1 + }, +/obj/machinery/door/airlock/titanium{ + name = "Medical Bay" + }, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/smooth_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "SR" = ( /turf/open/floor/circuit/green, /area/centcom/central_command_areas/briefing) @@ -10583,6 +14949,9 @@ /obj/machinery/chem_dispenser/drinks/beer, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/borbop) +"Ta" = ( +/turf/open/floor/iron/white, +/area/centcom/wizard_station) "Tb" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on{ @@ -10646,6 +15015,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/evacuation/ship) +"Tn" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "Tp" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/turf_decal/siding/wood{ @@ -10666,6 +15044,16 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/hall) +"Ts" = ( +/obj/structure/lattice/catwalk, +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) +"Tt" = ( +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/control) "Tu" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 4 @@ -10707,6 +15095,12 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/three) +"TB" = ( +/obj/structure/table/wood, +/obj/item/storage/box/donkpockets, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "TC" = ( /obj/structure/curtain/bounty, /turf/closed/indestructible/fakeglass, @@ -10734,6 +15128,13 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/borbop) +"TH" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/machinery/light/cold/directional/north, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "TI" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, @@ -10808,6 +15209,11 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/evacuation) +"TT" = ( +/obj/structure/bed, +/obj/item/bedsheet/wiz, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "TU" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -10849,10 +15255,27 @@ /obj/structure/window/plasma/spawner/directional/north, /turf/open/indestructible/hotelwood, /area/centcom/central_command_areas/admin) +"Ub" = ( +/obj/machinery/vending/tool, +/turf/open/floor/mineral/titanium/yellow, +/area/centcom/syndicate_mothership/control) "Uc" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/admin_hangout) +"Ud" = ( +/obj/structure/lattice/catwalk, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, +/turf/open/space/basic, +/area/space/nearstation) +"Ue" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Uf" = ( /obj/effect/turf_decal/siding/dark{ dir = 8 @@ -10865,6 +15288,10 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) +"Ui" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "Uj" = ( /obj/structure/chair/sofa/corp/right, /turf/open/floor/carpet, @@ -10878,6 +15305,11 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin_hangout) +"Ul" = ( +/obj/structure/table/wood/fancy, +/obj/item/radio/headset, +/turf/open/floor/wood, +/area/centcom/wizard_station) "Up" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/light/neon_lining{ @@ -10890,6 +15322,15 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"Ur" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/carpet, +/area/centcom/wizard_station) +"Us" = ( +/obj/effect/turf_decal/stripes/box, +/obj/structure/closet/emcloset, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "Ut" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 8 @@ -10913,6 +15354,10 @@ /obj/item/reagent_containers/cup/coffeepot/bluespace, /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) +"Uw" = ( +/obj/machinery/light/cold/directional/west, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) "Ux" = ( /obj/effect/turf_decal/siding/wood/corner{ dir = 1 @@ -10946,6 +15391,19 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"UD" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/siding/red/corner, +/obj/item/folder/red, +/obj/item/pen/red, +/turf/open/floor/iron/dark/textured_large, +/area/centcom/syndicate_mothership/control) +"UE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/closed/indestructible/syndicate, +/area/centcom/syndicate_mothership/control) "UF" = ( /obj/machinery/hydroponics/constructable, /obj/effect/turf_decal/trimline/green/line{ @@ -10960,12 +15418,6 @@ /obj/effect/turf_decal/tile/dark/opposingcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin_hangout) -"UH" = ( -/obj/structure/railing/wood, -/obj/structure/table/reinforced, -/obj/item/storage/backpack/duffelbag/med/surgery, -/turf/open/floor/iron/dark, -/area/centcom/central_command_areas/medical) "UI" = ( /obj/effect/turf_decal/siding/green{ dir = 4 @@ -10976,6 +15428,12 @@ /obj/effect/turf_decal/tile/dark_green/diagonal_centre, /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/botany) +"UJ" = ( +/obj/structure/closet/cardboard, +/obj/item/banhammer, +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron, +/area/centcom/wizard_station) "UK" = ( /obj/machinery/computer/operating{ dir = 4 @@ -10988,11 +15446,50 @@ /obj/machinery/vending/wardrobe/medi_wardrobe, /turf/open/floor/iron/dark, /area/centcom/tdome/observation) +"UM" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 10 + }, +/obj/structure/table/glass/plasmaglass, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "UN" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/door/airlock/centcom, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/kitchen) +"UO" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/wizard/tape, +/obj/item/clothing/suit/wizrobe/tape, +/obj/item/staff/tape, +/obj/item/stack/sticky_tape/super, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) +"UP" = ( +/obj/effect/turf_decal/siding/wideplating, +/obj/effect/turf_decal/siding/wideplating{ + dir = 1 + }, +/obj/machinery/door/airlock/hatch{ + name = "General Quarters" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/mapping_helpers/airlock/access/all/syndicate/general, +/turf/open/floor/iron/dark/textured_half, +/area/centcom/syndicate_mothership/control) +"UQ" = ( +/obj/structure/sign/poster/contraband/moffuchis_pizza{ + pixel_x = -32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "US" = ( /obj/structure/window/plasma/spawner/directional/north, /turf/open/indestructible/hotelwood, @@ -11010,6 +15507,16 @@ /obj/effect/spawner/random/exotic/antag_gear, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"UX" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ + dir = 10 + }, +/obj/machinery/light/cold/directional/east, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "UY" = ( /turf/open/floor/iron/dark/diagonal, /area/centcom/central_command_areas/medical) @@ -11027,12 +15534,52 @@ /obj/item/reagent_containers/cup/glass/mug/nanotrasen, /turf/open/floor/carpet/purple, /area/centcom/central_command_areas/admin) +"Vd" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"Ve" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "Vf" = ( /obj/effect/turf_decal/siding/dark{ dir = 9 }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin_hangout) +"Vg" = ( +/obj/structure/rack, +/obj/machinery/light/cold/directional/west, +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/item/stock_parts/micro_laser/high{ + pixel_x = 12 + }, +/obj/item/wrench{ + desc = "A little smidgeon of Freon..."; + name = "Freon" + }, +/obj/item/stock_parts/micro_laser/high{ + pixel_x = -4; + pixel_y = -8 + }, +/obj/item/stock_parts/micro_laser/high{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/stock_parts/micro_laser/high{ + pixel_x = -8; + pixel_y = -4 + }, +/obj/item/melee/powerfist, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "Vh" = ( /obj/structure/table/reinforced, /obj/item/storage/backpack/duffelbag/med/surgery{ @@ -11046,6 +15593,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/white, /area/centcom/central_command_areas/evacuation/ship) +"Vi" = ( +/obj/structure/table/reinforced/plasmarglass, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "Vj" = ( /obj/effect/turf_decal/tile/dark/opposingcorners, /obj/machinery/vending/clothing, @@ -11069,6 +15624,12 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/hall) +"Vm" = ( +/obj/structure/table/reinforced, +/obj/item/papercutter, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Vn" = ( /obj/effect/turf_decal/delivery, /turf/open/floor/iron, @@ -11090,6 +15651,12 @@ /obj/structure/mannequin, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"Vq" = ( +/obj/structure/fence/cut/medium{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Vs" = ( /obj/effect/turf_decal/tile/dark/diagonal_edge, /obj/structure/table/wood/fancy/royalblue, @@ -11106,6 +15673,15 @@ }, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"Vt" = ( +/obj/machinery/light/cold/directional/east, +/obj/machinery/vending/snack/teal, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) "Vu" = ( /obj/structure/closet/secure_closet/ert_med, /obj/machinery/vending/wallmed/directional/south{ @@ -11154,6 +15730,31 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) +"Vz" = ( +/obj/effect/turf_decal/siding/dark{ + dir = 4 + }, +/obj/effect/turf_decal/siding/dark{ + dir = 8 + }, +/obj/machinery/vending/dinnerware, +/turf/open/floor/iron/white/herringbone, +/area/centcom/central_command_areas/kitchen) +"VB" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"VC" = ( +/turf/open/floor/iron/dark/textured_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "VD" = ( /turf/closed/wall/mineral/iron, /area/centcom/central_command_areas/admin) @@ -11190,6 +15791,9 @@ /obj/machinery/photocopier/gratis, /turf/open/floor/carpet/royalblue, /area/centcom/central_command_areas/admin) +"VK" = ( +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "VL" = ( /obj/machinery/modular_computer/console/preset/id/centcom{ dir = 1 @@ -11208,6 +15812,12 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/iron, /area/centcom/central_command_areas/armory) +"VN" = ( +/obj/structure/fence/corner{ + dir = 6 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "VO" = ( /obj/machinery/door/poddoor/ert, /obj/effect/turf_decal/delivery, @@ -11231,6 +15841,11 @@ /obj/structure/flora/bush/flowers_br/style_random, /turf/open/floor/grass, /area/centcom/central_command_areas/borbop) +"VT" = ( +/obj/structure/chair/stool/directional/north, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) "VU" = ( /obj/structure/chair/comfy/carp, /turf/open/floor/glass/reinforced, @@ -11276,6 +15891,30 @@ "Wb" = ( /turf/open/floor/wood/large, /area/centcom/tdome/observation) +"Wc" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"Wd" = ( +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/closed/indestructible/rock/snow, +/area/centcom/syndicate_mothership) +"We" = ( +/obj/structure/railing{ + dir = 4 + }, +/turf/open/floor/catwalk_floor/iron_smooth{ + initial_gas_mix = "TEMP=2.7" + }, +/area/centcom/syndicate_mothership) "Wf" = ( /obj/structure/railing/wood{ dir = 8 @@ -11313,6 +15952,25 @@ }, /turf/open/floor/carpet/executive, /area/centcom/central_command_areas/admin) +"Wm" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 4 + }, +/obj/structure/chair/office/light, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) +"Wn" = ( +/obj/effect/turf_decal/siding/purple{ + dir = 1 + }, +/obj/effect/turf_decal/siding/thinplating_new/light{ + dir = 4 + }, +/obj/structure/sign/poster/contraband/the_big_gas_giant_truth{ + pixel_y = 32 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/expansion_chemicalwarfare) "Wo" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/mapping_helpers/airlock/access/any/supply/general, @@ -11322,6 +15980,32 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"Wp" = ( +/obj/structure/table/wood/poker, +/obj/machinery/light/warm/directional/north, +/obj/item/reagent_containers/cup/glass/bottle/whiskey{ + pixel_x = -4; + pixel_y = 14 + }, +/obj/item/toy/cards/deck{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/clothing/mask/cigarette/robust{ + pixel_x = -4; + pixel_y = 1 + }, +/obj/effect/decal/cleanable/ash{ + pixel_x = 12; + pixel_y = -6 + }, +/obj/effect/spawner/random/entertainment/lighter{ + pixel_x = 9; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Wr" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -11361,6 +16045,10 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/medical) +"Ww" = ( +/mob/living/simple_animal/slime, +/turf/open/floor/circuit/red/off, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Wx" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -11372,6 +16060,20 @@ /obj/effect/landmark/ert_spawn, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"Wz" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 5 + }, +/obj/structure/sign/poster/contraband/rip_badger{ + pixel_x = 32 + }, +/obj/machinery/biogenerator, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) +"WA" = ( +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/icemoon, +/area/centcom/syndicate_mothership/control) "WB" = ( /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) @@ -11381,6 +16083,10 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"WD" = ( +/obj/structure/destructible/cult/item_dispenser/archives/library, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "WE" = ( /obj/effect/turf_decal/tile/neutral/opposingcorners, /obj/effect/turf_decal/tile/neutral/opposingcorners, @@ -11400,9 +16106,6 @@ /turf/open/floor/circuit/telecomms, /area/centcom/central_command_areas/admin) "WJ" = ( -/obj/structure/railing/wood{ - dir = 8 - }, /obj/effect/turf_decal/siding/wood{ dir = 9 }, @@ -11414,6 +16117,25 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/botany) +"WK" = ( +/obj/structure/chair/bronze{ + dir = 8 + }, +/turf/open/floor/carpet, +/area/centcom/syndicate_mothership/control) +"WL" = ( +/obj/effect/turf_decal/siding/wideplating/dark{ + dir = 8 + }, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/wood/tile, +/area/centcom/syndicate_mothership/control) +"WM" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership/expansion_bombthreat) "WN" = ( /obj/structure/table/wood, /obj/item/storage/box/drinkingglasses, @@ -11423,6 +16145,23 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/briefing) +"WO" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/button/ignition/incinerator/ordmix{ + id = "syn_ordmix_igniter"; + pixel_x = -6; + pixel_y = -30 + }, +/obj/machinery/button/door/directional/south{ + id = "syn_ordmix_vent"; + pixel_x = 5; + pixel_y = -29 + }, +/obj/machinery/camera/autoname/directional/south{ + network = list("nukie") + }, +/turf/open/floor/mineral/titanium/tiled/yellow, +/area/centcom/syndicate_mothership/expansion_bombthreat) "WP" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -11491,6 +16230,19 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/admin) +"Xa" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/structure/fluff/tram_rail{ + pixel_y = 17 + }, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) "Xb" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -11501,6 +16253,13 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/large, /area/centcom/central_command_areas/ghost_spawn) +"Xd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/centcom/syndicate_mothership/control) "Xe" = ( /obj/structure/table/reinforced, /obj/item/grenade/c4{ @@ -11513,6 +16272,9 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/centcom/central_command_areas/ferry) +"Xf" = ( +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "Xg" = ( /obj/effect/turf_decal/siding/wood, /obj/effect/turf_decal/siding/wood/corner{ @@ -11549,6 +16311,20 @@ dir = 8 }, /area/centcom/central_command_areas/hall) +"Xl" = ( +/obj/structure/table/wood, +/obj/item/storage/bag/tray, +/obj/item/food/burger/spell, +/turf/open/floor/carpet, +/area/centcom/wizard_station) +"Xm" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line, +/obj/structure/railing{ + dir = 9 + }, +/turf/open/lava/plasma/ice_moon, +/area/centcom/syndicate_mothership/control) "Xn" = ( /obj/structure/chair/office{ dir = 4 @@ -11588,6 +16364,29 @@ /obj/effect/turf_decal/tile/brown/anticorner/contrasted, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/one) +"Xt" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/machinery/mech_bay_recharge_port, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"Xu" = ( +/obj/docking_port/stationary{ + dwidth = 25; + height = 50; + name = "Syndicate Auxiliary Shuttle Dock"; + shuttle_id = "emergency_syndicate"; + width = 50 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"Xv" = ( +/obj/machinery/camera/autoname/directional/west{ + network = list("nukie") + }, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "Xw" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/admin_hangout) @@ -11657,10 +16456,27 @@ }, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/admin) +"XH" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 8 + }, +/obj/machinery/camera/autoname/directional/west{ + network = list("nukie") + }, +/obj/structure/chair/greyscale{ + dir = 1 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "XI" = ( /obj/structure/table/abductor, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/admin) +"XJ" = ( +/turf/open/floor/iron/smooth_edge{ + dir = 8 + }, +/area/centcom/syndicate_mothership/control) "XK" = ( /obj/machinery/firealarm/directional/south, /obj/structure/closet/crate/bin, @@ -11668,10 +16484,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/supply) +"XM" = ( +/turf/open/floor/plating/elevatorshaft, +/area/centcom/syndicate_mothership/control) "XN" = ( /obj/structure/chair/office, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) +"XO" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/iron/dark/textured_half{ + dir = 4 + }, +/area/centcom/syndicate_mothership/control) "XP" = ( /obj/effect/turf_decal/siding/dark{ dir = 9 @@ -11680,12 +16505,34 @@ /obj/effect/turf_decal/tile/orange/diagonal_edge, /turf/open/floor/iron/white/diagonal, /area/centcom/central_command_areas/hall) +"XQ" = ( +/obj/structure/chair/greyscale{ + dir = 4 + }, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership) "XR" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/west, /obj/item/toy/plush/lizard_plushie, /turf/open/floor/iron/grimy, /area/centcom/central_command_areas/admin) +"XS" = ( +/obj/structure/flora/tree/dead/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"XT" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/sink/directional/south, +/obj/item/shovel/spade{ + pixel_x = -4 + }, +/obj/item/reagent_containers/cup/bucket, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "XU" = ( /obj/effect/turf_decal/siding/dark{ dir = 6 @@ -11785,6 +16632,13 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/borbop) +"Yh" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/hidden/layer5, +/turf/closed/indestructible/opsglass, +/area/centcom/syndicate_mothership/control) "Yi" = ( /obj/machinery/computer/camera_advanced, /turf/open/floor/iron/dark/herringbone, @@ -11810,11 +16664,42 @@ "Yn" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/supplypod) +"Yq" = ( +/obj/machinery/door/airlock{ + icon = 'icons/obj/doors/airlocks/station/uranium.dmi'; + name = "Bathroom" + }, +/turf/open/floor/engine/cult, +/area/centcom/wizard_station) "Yt" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/fake_stairs/wood/directional/east, /turf/open/floor/iron, /area/centcom/central_command_areas/supply) +"Yu" = ( +/obj/machinery/vending/cigarette/syndicate, +/turf/open/floor/catwalk_floor/titanium, +/area/centcom/syndicate_mothership/control) +"Yv" = ( +/obj/structure/mirror/magic{ + pixel_y = 28 + }, +/obj/structure/sink/directional/south, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) +"Yw" = ( +/obj/structure/table/reinforced, +/obj/item/storage/backpack/duffelbag/med/surgery, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_x = 5; + pixel_y = 9 + }, +/obj/item/storage/backpack/duffelbag/med/surgery{ + pixel_y = 10; + pixel_x = -10 + }, +/turf/open/floor/iron/dark, +/area/centcom/central_command_areas/medical) "Yx" = ( /turf/open/floor/iron/white/herringbone, /area/centcom/central_command_areas/evacuation/ship) @@ -11834,6 +16719,10 @@ }, /turf/open/floor/carpet, /area/centcom/central_command_areas/admin) +"YA" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/wood, +/area/centcom/wizard_station) "YB" = ( /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/iron/dark, @@ -11886,6 +16775,10 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/medical) +"YM" = ( +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "YN" = ( /obj/effect/turf_decal/siding/dark{ dir = 1 @@ -11911,6 +16804,19 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/hall) +"YU" = ( +/obj/structure/lattice/catwalk, +/obj/effect/turf_decal/stripes/line, +/obj/structure/railing{ + dir = 5 + }, +/turf/open/floor/plating/snowed/icemoon, +/area/centcom/syndicate_mothership/control) +"YV" = ( +/obj/structure/bed, +/obj/item/bedsheet/syndie, +/turf/open/floor/iron/smooth_half, +/area/centcom/syndicate_mothership/control) "YW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden{ dir = 8 @@ -11931,14 +16837,6 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/botany) -"Za" = ( -/obj/effect/turf_decal/tile/dark/diagonal_edge, -/obj/structure/table/reinforced, -/obj/item/knife, -/obj/item/knife, -/obj/item/kitchen/rollingpin, -/turf/open/floor/iron/white/diagonal, -/area/centcom/central_command_areas/kitchen) "Zb" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/door/airlock/centcom{ @@ -11950,13 +16848,34 @@ "Zc" = ( /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/admin) +"Zd" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, +/turf/open/floor/engine, +/area/centcom/syndicate_mothership/expansion_bioterrorism) "Zf" = ( /turf/closed/indestructible/fakeglass, /area/centcom/central_command_areas/admin) +"Zh" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south{ + name = "Tinted Window"; + opacity = 1 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/expansion_bombthreat) "Zi" = ( /obj/item/kirbyplants/fullysynthetic, /turf/open/floor/mineral/titanium/white, /area/centcom/central_command_areas/admin) +"Zk" = ( +/obj/machinery/light/cold/directional/east, +/turf/open/floor/plating, +/area/centcom/syndicate_mothership/control) "Zl" = ( /obj/structure/table/reinforced, /obj/item/clipboard, @@ -11997,6 +16916,11 @@ /obj/machinery/shuttle_manipulator, /turf/open/floor/circuit/green, /area/centcom/central_command_areas/briefing) +"Zt" = ( +/obj/structure/flora/rock/pile/style_random, +/obj/structure/flora/grass/both/style_random, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) "Zu" = ( /obj/structure/fake_stairs/wood/directional/west, /obj/machinery/light/floor/has_bulb, @@ -12007,6 +16931,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/armory) +"Zw" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/space/basic, +/area/space/nearstation) "Zx" = ( /obj/effect/turf_decal/siding/dark{ dir = 5 @@ -12017,6 +16948,11 @@ icon_state = "boxing" }, /area/centcom/central_command_areas/admin) +"Zy" = ( +/obj/structure/lattice, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold, +/turf/open/space/basic, +/area/space/nearstation) "Zz" = ( /obj/structure/closet/crate/freezer/surplus_limbs, /turf/open/floor/iron/dark, @@ -12043,6 +16979,18 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"ZC" = ( +/obj/structure/table/wood/poker, +/obj/item/toy/cards/deck/wizoff{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/toy/cards/deck/tarot{ + pixel_x = 6; + pixel_y = 4 + }, +/turf/open/floor/carpet, +/area/centcom/wizard_station) "ZD" = ( /obj/structure/chair/sofa/corp/corner, /obj/machinery/light/floor/has_bulb, @@ -12082,6 +17030,30 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/botany) +"ZI" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 1 + }, +/obj/structure/chair/sofa/bench/left{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) +"ZJ" = ( +/obj/structure/flora/rock/icy/style_random{ + pixel_x = -7 + }, +/obj/effect/light_emitter{ + set_cap = 1; + set_luminosity = 4 + }, +/turf/open/misc/asteroid/snow/airless, +/area/centcom/syndicate_mothership) +"ZK" = ( +/obj/structure/bookcase/random/adult, +/turf/open/floor/iron/white, +/area/centcom/wizard_station) "ZL" = ( /obj/effect/turf_decal/siding/dark{ dir = 9 @@ -12113,6 +17085,15 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/ferry) +"ZO" = ( +/obj/structure/chair/sofa/bench/right{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/syndicate_pistol{ + pixel_y = 32 + }, +/turf/open/floor/mineral/titanium, +/area/centcom/syndicate_mothership/control) "ZP" = ( /obj/effect/turf_decal/siding/wood{ dir = 9 @@ -12125,6 +17106,15 @@ }, /turf/open/floor/iron, /area/centcom/central_command_areas/supplypod/loading/four) +"ZR" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/railing/corner{ + dir = 4 + }, +/turf/open/floor/plating/icemoon, +/area/centcom/syndicate_mothership/control) "ZS" = ( /obj/structure/railing/wood{ dir = 4 @@ -12133,10 +17123,28 @@ /obj/structure/railing/wood, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/hall) +"ZU" = ( +/obj/effect/turf_decal/siding/thinplating_new/dark{ + dir = 8 + }, +/obj/machinery/portable_atmospherics/scrubber, +/turf/open/floor/mineral/plastitanium/red, +/area/centcom/syndicate_mothership/expansion_bombthreat) "ZV" = ( /obj/structure/railing/wrestling, /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/hall) +"ZW" = ( +/obj/effect/turf_decal/stripes/end{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/rack, +/obj/item/storage/bag/plants, +/obj/item/clothing/suit/apron, +/obj/item/hatchet, +/turf/open/floor/mineral/plastitanium, +/area/centcom/syndicate_mothership/control) "ZX" = ( /obj/effect/turf_decal/siding/dark{ dir = 10 @@ -12885,8122 +17893,29 @@ aa aa aa aa -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -LW -LW -LW -LW -LW -LW -LW -LW -LV -aa -"} -(4,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -zi -zi -zi -LW -LV -aa -"} -(5,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -zi -zi -zi -LW -LV -aa -"} -(6,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -zi -zi -zi -LW -LV -aa -"} -(7,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -ik -ik -ik -ik -ik -ik -ik -LW -LV -aa -"} -(8,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -de -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -ik -ik -ik -LW -LV -aa -"} -(9,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LX -zi -zi -zi -ik -ik -ZE -fy -LW -LV -aa -"} -(10,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -ik -ik -ik -LW -LV -aa -"} -(11,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -ik -ik -ik -ik -ik -ik -ik -LW -LV -aa -"} -(12,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -zi -zi -zi -LW -LV -aa -"} -(13,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -zi -zi -zi -LW -LV -aa -"} -(14,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -pW -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -zi -zi -zi -ik -zi -zi -zi -LW -LV -aa -"} -(15,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LW -LW -LW -LW -LW -LW -LW -LW -LW -LV -aa -"} -(16,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -LV -LV -LV -LV -LV -LV -LV -LV -LV -LV -LV -aa -"} -(17,1,1) = {" -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -fX -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -fR -aa -aa -aa -aa -aa -aa -aa -aa -"} -(18,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Fi -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -"} -(19,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -aa -"} -(20,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(21,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(22,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(23,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Di -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(24,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -Qe -pu -Di -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(25,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -Di -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(26,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(27,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -jA -jA -jA -jA -jA -hH -hH -hH -hH -hH -jA -aa -"} -(28,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -KF -KF -KF -KF -KF -SS -Yn -Yn -EZ -EZ -EZ -EZ -EZ -QM -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -jA -lS -lS -lS -jA -hH -hH -hH -hH -hH -jA -aa -"} -(29,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -AH -AH -AH -AH -OP -PK -Yn -Yn -Vn -PW -Vn -PW -Vn -zZ -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -jA -lS -lS -lS -jA -hH -hH -hH -hH -hH -jA -aa -"} -(30,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -OP -AH -AH -AH -OP -PK -Yn -Yn -Vn -PW -Vn -PW -Vn -zZ -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -jA -lS -lS -lS -jA -hH -hH -hH -hH -hH -jA -aa -"} -(31,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -OP -OP -OP -OP -OP -PK -Yn -Yn -Vn -PW -Vn -PW -Vn -zZ -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -jA -jA -jA -jA -jA -hH -hH -hH -hH -hH -jA -aa -"} -(32,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -AH -AH -AH -AH -OP -PK -Yn -Yn -Vn -Vn -Vn -Vn -Vn -zZ -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(33,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -XD -XD -XD -XD -XD -Xs -Yn -Yn -Tz -Tz -Tz -Tz -Tz -zE -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(34,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(35,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di aa aa aa @@ -21011,7 +17926,35 @@ aa aa aa aa +LV +LW +LW +LW +LW +LW +LW +LW +LW +LW +LV aa +"} +(4,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -21109,22 +18052,6 @@ aa aa aa aa -Yn -zM -zM -zM -zM -zM -zs -Yn -Yn -Pv -Pv -Pv -Pv -Pv -ZQ -Yn aa aa aa @@ -21136,26 +18063,7 @@ aa aa aa aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA aa -"} -(36,1,1) = {" aa aa aa @@ -21200,12 +18108,27 @@ aa aa aa aa +OL +OL +OL +OL +OL +OL +OL +OL +OL aa aa aa aa aa aa +OL +OL +OL +OL +OL +OL aa aa aa @@ -21227,6 +18150,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -21237,7 +18183,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +zi +zi +zi +LW +LV aa +"} +(5,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -21331,6 +18305,38 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +sQ +sQ +sQ +Ms +Ms +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa @@ -21358,87 +18364,28 @@ aa aa aa aa +OL +OL +ku +ku +ku +ku +ku +ku +ku +OL aa -aa -aa -aa -aa -aa -aa -aa -Yn -Se -Si -Se -Se -Se -Tc -Yn -Yn -Pm -Pm -Pm -Xh -Xh -Wt -Yn -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA -aa -"} -(37,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +OL +OL +OL +OL +OL +OL +PL +PL +PL +PL +OL aa aa aa @@ -21460,6 +18407,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -21470,7 +18440,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +zi +zi +zi +LW +LV aa +"} +(6,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -21564,6 +18562,38 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Ms +Ms +Ov +WD +xW +WD +NG +Ms +sQ +sQ +Ms +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa @@ -21591,6 +18621,28 @@ aa aa aa aa +OL +ku +gP +bB +iw +DN +pO +QR +ku +OL +OL +OL +PL +PL +PL +JZ +PL +rU +mT +Ww +PL +OL aa aa aa @@ -21612,6 +18664,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -21622,23 +18697,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +zi +zi +zi +LW +LV aa -Yn -Se -Si -Se -Si -Se -Tc -Yn -Yn -Xh -Xh -Pm -Xh -Xh -Wt -Yn +"} +(7,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -21650,26 +18737,7 @@ aa aa aa aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA aa -"} -(38,1,1) = {" aa aa aa @@ -21751,6 +18819,38 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Go +fc +jz +QZ +QZ +QZ +QZ +QZ +MS +QZ +QZ +Ms +Ms +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa @@ -21778,6 +18878,28 @@ aa aa aa aa +OL +ku +Nu +qc +qc +qc +qc +qc +ku +nK +nK +nK +PL +KE +oH +sf +si +uG +mT +mT +PL +OL aa aa aa @@ -21799,6 +18921,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -21809,7 +18954,35 @@ aa aa aa aa +LV +LW +ik +ik +ik +ik +ik +ik +ik +LW +LV aa +"} +(8,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +de +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -21880,22 +19053,6 @@ aa aa aa aa -Yn -Se -Si -Se -Si -Se -Tc -Yn -Yn -Xh -Xh -Pm -Xh -Xh -Wt -Yn aa aa aa @@ -21907,26 +19064,7 @@ aa aa aa aa -jA -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -hH -jA aa -"} -(39,1,1) = {" aa aa aa @@ -21938,6 +19076,38 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Ul +cZ +fc +Ms +QZ +QZ +QZ +QZ +QZ +Ms +QZ +aN +QZ +Ms +Ms +Ms +Ms +Ms +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa @@ -21965,6 +19135,28 @@ aa aa aa aa +OL +ku +BD +Cp +Cp +Cp +Cp +Od +ku +rk +rk +rk +PL +vM +Ue +pE +ne +uG +uG +uG +PL +OL aa aa aa @@ -21986,6 +19178,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -21996,7 +19211,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +ik +ik +ik +LW +LV aa +"} +(9,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22090,6 +19333,38 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Ms +Ms +fc +fc +fc +fc +Ms +Ov +WD +QZ +WD +NG +Ms +QZ +QZ +QZ +Ms +Dv +De +UJ +Ms +Ms +sQ +Ms +Cl +Cl +Cl aa aa aa @@ -22117,6 +19392,28 @@ aa aa aa aa +OL +ku +Qy +rC +Dc +vL +vu +Hg +ku +rk +rk +rk +PL +jG +cX +eO +ex +uG +mT +wg +PL +OL aa aa aa @@ -22137,23 +19434,30 @@ aa aa aa aa -Yn -Se -Se -Se -Si -Se -Tc -Yn -Yn -Pm -Pm -Pm -Pm -Pm -Wt -Yn aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -22164,28 +19468,35 @@ aa aa aa aa -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA -jA +LV +LX +zi +zi +zi +ik +ik +ZE +fy +LW +LV aa "} -(40,1,1) = {" -aa -aa +(10,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22279,6 +19590,38 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Ms +ji +yF +fc +fc +YA +Ms +Ms +sQ +sQ +sQ +Ms +Ms +fd +aN +QZ +BT +PD +PD +tl +JD +QZ +QZ +Ms +Cl +Cl +Cl aa aa aa @@ -22293,6 +19636,11 @@ aa aa aa aa +yD +yD +yD +yD +yD aa aa aa @@ -22301,6 +19649,28 @@ aa aa aa aa +OL +ku +TH +xr +AK +JP +JP +zB +ku +nK +Qx +nK +PL +mz +cX +pE +vy +uG +mT +mT +PL +OL aa aa aa @@ -22322,6 +19692,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -22332,7 +19725,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +ik +ik +ik +LW +LV aa +"} +(11,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22394,22 +19815,6 @@ aa aa aa aa -Yn -Vk -Vk -Vk -Vk -Vk -Oq -Yn -Yn -Co -Co -Co -Co -Co -VP -Yn aa aa aa @@ -22439,11 +19844,41 @@ aa aa aa aa -"} -(41,1,1) = {" aa aa aa +Cl +Cl +Ms +Ms +Ms +Ms +Ul +fc +fc +fc +Ru +Ms +Gf +QZ +QZ +QZ +BS +Ms +QZ +QZ +QZ +Ms +hq +Im +aT +Ms +Ms +JD +Ms +Ms +Ms +Cl aa aa aa @@ -22453,11 +19888,49 @@ aa aa aa aa +yD +yD +yD +yD +yD +yD +Wd +Wd +Wd +yD +yD +yD +yD aa aa aa aa aa +OL +ku +Mw +Cr +xO +Py +Oi +Gk +ku +kd +je +ah +uG +XT +qs +Hf +hS +uG +uG +uG +PL +OL +OL +OL +OL aa aa aa @@ -22476,6 +19949,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -22486,7 +19982,35 @@ aa aa aa aa +LV +LW +ik +ik +ik +ik +ik +ik +ik +LW +LV aa +"} +(12,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22580,6 +20104,38 @@ aa aa aa aa +Cl +Ms +Ms +Rs +lG +Ms +Ms +Ms +ze +Ms +Ms +Ms +fK +QZ +QZ +QZ +OU +Ms +QZ +aN +QZ +Ms +Ms +Ms +Ms +Ms +QZ +QZ +Cf +op +Ms +Cl aa aa aa @@ -22588,9 +20144,50 @@ aa aa aa aa +yD +yD +jH +jH +jH +yD +Wd +Wd +Iz +Wd +Wd +Wd +Wd +yD +yD +yD aa aa aa +OL +ku +Wn +iJ +iJ +iJ +iJ +vb +Iq +DS +xU +oS +Jy +Vd +eO +cA +cA +Pu +uG +xJ +ga +Iw +Iw +Zw +OL aa aa aa @@ -22609,6 +20206,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -22619,7 +20239,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +zi +zi +zi +LW +LV aa +"} +(13,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22651,22 +20299,6 @@ aa aa aa aa -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn -Yn aa aa aa @@ -22696,11 +20328,6 @@ aa aa aa aa -"} -(42,1,1) = {" -aa -aa -aa aa aa aa @@ -22734,6 +20361,38 @@ aa aa aa aa +Cl +sQ +QZ +QZ +QZ +sQ +QZ +QZ +QZ +mF +ON +Ms +QZ +QZ +QZ +QZ +QZ +sQ +QZ +QZ +QZ +Ms +Ce +Ur +Ig +Ms +Hz +QZ +QZ +op +mx +iB aa aa aa @@ -22741,8 +20400,51 @@ aa aa aa aa +yD +yD +jH +jH +Fz +jH +jH +Wd +HF +xE +xE +Bd +Rw +Wd +Wd +Wd +yD +yD aa aa +OL +ku +Rb +qc +Np +qc +qc +qc +fL +DS +xU +oS +uG +Wz +Lr +MT +OY +FC +uG +Zd +ga +Iw +Iw +Zy +OL aa aa aa @@ -22753,9 +20455,6 @@ aa aa aa aa -gt -aa -aa aa aa aa @@ -22764,6 +20463,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -22774,7 +20496,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +zi +zi +zi +LW +LV aa +"} +(14,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22868,12 +20618,90 @@ aa aa aa aa +Cl +sQ +rt +QZ +QZ +gb +QZ +QZ +QZ +QZ +QZ +Eg +QZ +QZ +eL +Bq +QZ +MS +QZ +aN +QZ +PV +aN +TT +aN +sQ +mY +QZ +QZ +op +mx +iB aa aa aa aa aa aa +yD +yD +jH +jH +Fz +Fz +Fz +jH +jH +xE +iK +Iz +xA +fx +fx +Ps +Wd +Wd +yD +yD +yD +yD +ku +ku +HC +tE +Sx +wi +em +Iq +DS +xU +lW +Nw +Nw +Nw +Nw +Nw +Nw +Nw +Nw +Nw +rJ +zl +Ud +OL aa aa aa @@ -22892,6 +20720,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +pW +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -22902,7 +20753,35 @@ aa aa aa aa +LV +LW +zi +zi +zi +ik +zi +zi +zi +LW +LV aa +"} +(15,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -22953,8 +20832,6 @@ aa aa aa aa -"} -(43,1,1) = {" aa aa aa @@ -22998,12 +20875,90 @@ aa aa aa aa +Cl +sQ +QZ +QZ +QZ +sQ +QZ +QZ +QZ +vX +ND +Ms +QZ +QZ +QZ +QZ +QZ +sQ +QZ +QZ +QZ +Ms +iQ +Ui +Xl +Ms +UO +QZ +QZ +op +mx +iB aa aa aa aa aa aa +yD +jH +jH +Fz +Fz +Fz +Fz +Fz +jH +jH +xE +xE +Bd +fx +fx +fx +Rw +Wd +Wd +Wd +Wd +Wd +Wd +ku +ku +ku +ku +ku +ku +ku +Qr +xU +oa +Nw +zL +en +Vg +dm +GB +ck +Nw +Nw +Nw +Nw +Nw +OL aa aa aa @@ -23022,6 +20977,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -23032,7 +21010,35 @@ aa aa aa aa +LV +LW +LW +LW +LW +LW +LW +LW +LW +LW +LV aa +"} +(16,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -23126,12 +21132,90 @@ aa aa aa aa +Cl +Ms +Ms +as +vv +Ms +Ms +Ms +dN +Ms +Ms +Ms +uW +QZ +QZ +QZ +OU +Ms +QZ +aN +QZ +Ms +Ms +Ms +Ms +Ms +sW +QZ +Cf +op +Ms +Cl aa aa aa aa aa aa +yD +jH +Fz +Fz +Fz +Fz +Fz +Fz +Fz +jH +jH +xE +Bp +fx +fx +if +fx +fx +JS +Iz +xE +JS +ZJ +nK +kL +hT +Sw +dr +UM +oD +DS +xU +oS +kU +Wc +IQ +Wm +tZ +bh +qS +MR +tV +eH +qW +Nw +OL aa aa aa @@ -23150,6 +21234,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -23160,7 +21267,35 @@ aa aa aa aa +LV +LV +LV +LV +LV +LV +LV +LV +LV +LV +LV aa +"} +(17,1,1) = {" +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX +fX aa aa aa @@ -23210,16 +21345,6 @@ aa aa aa aa -"} -(44,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa aa aa aa @@ -23264,12 +21389,90 @@ aa aa aa aa +Cl +Cl +Ms +Ms +Ms +Ms +aN +Ja +aN +zC +ow +Ms +oI +ML +Kv +QZ +QZ +Ms +QZ +QZ +QZ +Ms +nH +jo +ZK +Ms +Ms +sQ +Ms +Ms +Ms +Cl aa aa aa aa aa aa +yD +jH +jH +jH +jH +kK +jH +Fz +Fz +Fz +jH +xE +Bd +fx +fx +zc +ZJ +fx +xE +nD +xE +nD +yc +nK +gw +Mn +Rn +hP +oS +SP +DS +xU +oS +NY +eZ +eZ +eZ +eZ +hC +IT +WO +Nw +ps +DH +Nw +OL aa aa aa @@ -23288,6 +21491,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -23301,6 +21527,7 @@ aa aa aa aa +fR aa aa aa @@ -23309,6 +21536,8 @@ aa aa aa aa +"} +(18,1,1) = {" aa aa aa @@ -23364,6 +21593,7 @@ aa aa aa aa +Fi aa aa aa @@ -23416,12 +21646,90 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Ms +qX +ju +QQ +aN +fP +Ms +Ms +sQ +sQ +sQ +Ms +Ms +fd +aN +QZ +Yq +Ta +Ta +lM +Ms +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa aa aa aa +yD +Wd +jH +jH +xw +xL +jH +jH +kK +jH +jH +og +Bd +fx +fx +fx +if +nD +xE +fs +fs +xE +nD +nK +MV +lx +mj +Mi +Oz +oD +DS +xU +oS +kU +JO +eu +ZU +gp +Je +nz +ti +tV +SH +qW +Nw +OL aa aa aa @@ -23440,6 +21748,29 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa @@ -23462,13 +21793,13 @@ aa aa aa aa +"} +(19,1,1) = {" aa aa aa aa aa -"} -(45,1,1) = {" aa aa aa @@ -23572,11 +21903,90 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Ee +aN +Ja +aN +sQ +vc +pb +sL +OS +pb +sQ +QZ +QZ +QZ +Ms +Yv +RC +KC +Ms +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa aa aa +yD +Wd +fx +Rw +jH +lz +XQ +pY +jH +iV +Us +jH +bs +Bd +fx +fx +fx +xE +eJ +xE +xE +nD +nK +nK +nK +nK +nK +nK +GG +GG +GG +Ve +vd +th +Nw +gJ +dg +DJ +gJ +fM +SB +el +gM +hJ +hJ +Nw +OL aa aa aa @@ -23595,11 +22005,53 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa aa +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA aa +"} +(20,1,1) = {" aa aa aa @@ -23708,10 +22160,90 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +qX +ZC +QQ +sQ +Eu +xM +Eu +Rg +Eu +sQ +QZ +aN +QZ +Ms +Ms +Ms +Ms +Ms +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa aa +yD +Wd +fx +Rw +fx +jH +Vi +Ax +jH +jH +kK +jH +jH +bs +Bd +fx +fx +if +xE +xE +nD +nD +oD +oD +nK +Mz +wn +GT +RI +GG +BL +GG +nK +Mu +nK +Nw +vQ +dB +nE +Zh +OT +Nk +IP +Nw +WM +WM +Nw +OL aa aa aa @@ -23724,19 +22256,59 @@ aa aa aa aa -"} -(46,1,1) = {" aa aa aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(21,1,1) = {" aa aa aa @@ -23845,9 +22417,90 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Ee +aN +sQ +hk +jq +pb +xM +pb +sQ +QZ +QZ +Ms +Ms +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa +yD +Wd +fx +fx +Ps +fx +jH +wU +wU +jH +We +We +We +We +tG +Vq +fx +fx +Iz +xE +xE +eJ +oD +oD +zb +nK +ei +Bc +Bc +Bc +Fw +Au +GG +rp +Tt +XH +Nw +Ck +Qb +bJ +un +dH +UX +AW +Nw +tQ +tQ +Nw +OL aa aa aa @@ -23866,11 +22519,53 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(22,1,1) = {" aa aa aa @@ -23937,13 +22632,6 @@ aa aa aa aa -KH -Lt -Lt -Lt -Lt -Lt -Lt aa aa aa @@ -23981,16 +22669,95 @@ aa aa aa aa -"} -(47,1,1) = {" aa aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Ms +Ms +pb +xM +Eu +uV +kV +Ms +sQ +sQ +Ms +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl aa aa aa +yD +Wd +tP +NM +tP +tP +jH +qU +ef +jH +qU +qU +Hx +qU +qU +VN +fx +fx +fx +xE +qy +xE +oD +gW +VK +Nh +Bc +Bc +Bc +Qw +GG +dI +GG +sz +Tt +oQ +Nw +Nw +Nw +Nw +Nw +Nw +Nw +Nw +Nw +zm +zm +Nw +OL aa aa aa @@ -24009,11 +22776,53 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(23,1,1) = {" aa aa aa @@ -24122,8 +22931,90 @@ aa aa aa aa +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Ms +Ms +Ms +Ms +Ms +Ms +Ms +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl +Cl aa aa +yD +Wd +xE +Ps +Rw +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +eJ +nD +Iz +oD +CY +VK +nK +eb +jx +Bc +fo +GG +Sp +GG +KL +Tt +ZW +nK +ir +rN +PN +Sn +lw +lN +UQ +Nw +Nw +Nw +Nw +OL aa aa aa @@ -24142,11 +23033,53 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Di aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(24,1,1) = {" aa aa aa @@ -24193,14 +23126,6 @@ aa aa aa aa -KH -Lt -KK -wk -Qt -Lk -cP -MM aa aa aa @@ -24238,8 +23163,6 @@ aa aa aa aa -"} -(48,1,1) = {" aa aa aa @@ -24299,6 +23222,56 @@ aa aa aa aa +yD +Wd +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +oD +oD +VK +VK +kB +TB +eg +GF +Bl +GG +kT +GG +nK +kY +nK +nK +ir +vU +dX +jT +jT +qC +qC +nK +OL +OL +OL +OL aa aa aa @@ -24317,11 +23290,53 @@ aa aa aa aa +Di +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +Qe +pu +Di aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(25,1,1) = {" aa aa aa @@ -24426,6 +23441,94 @@ aa aa aa aa +sk +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +if +xE +eJ +oD +vi +VK +lP +nK +Bv +NZ +NZ +BQ +GG +GG +GG +PF +nS +mn +nK +nK +nK +Ei +nK +nK +nK +nK +nK +OL +OL +OL +OL aa aa aa @@ -24444,20 +23547,54 @@ aa aa aa aa +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di +Di aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(26,1,1) = {" aa -Lt -tA -wX -HG -HG -Lk -cP -KQ aa aa aa @@ -24495,8 +23632,6 @@ aa aa aa aa -"} -(49,1,1) = {" aa aa aa @@ -24563,6 +23698,94 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +nD +xE +oD +Fd +VK +VK +rv +XJ +XJ +XJ +XJ +EF +mu +At +kF +kF +dp +eM +nK +iz +qr +uM +Wp +pf +Dk +oD +CC +Gl +OL +OL aa aa aa @@ -24608,7 +23831,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(27,1,1) = {" aa aa aa @@ -24707,21 +23949,100 @@ aa aa aa aa -KH -Lt -Lt -LJ -fW -SC -Lt -Lt -aa aa aa aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +eJ +xE +oD +kD +VK +VK +IY +Fr +nS +nS +nS +Yh +nS +aQ +gV +jB +kF +re +UP +Xd +Xd +yW +Iu +Bc +Bc +oD +vY +CC +jN +OL aa aa aa @@ -24740,6 +24061,22 @@ aa aa aa aa +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn aa aa aa @@ -24751,22 +24088,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +jA +jA +jA +jA +jA +hH +hH +hH +hH +hH +jA aa "} -(50,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa +(28,1,1) = {" aa aa aa @@ -24871,6 +24212,94 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +Iz +nD +oD +Fd +VK +VK +rv +by +by +by +by +EF +nS +aQ +aQ +aQ +tc +pa +nK +ap +Df +PP +Df +oP +Nn +oD +WA +WA +CI +OL aa aa aa @@ -24889,6 +24318,22 @@ aa aa aa aa +Yn +KF +KF +KF +KF +KF +SS +Yn +Yn +EZ +EZ +EZ +EZ +EZ +QM +Yn aa aa aa @@ -24900,7 +24345,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +jA +lS +lS +lS +jA +hH +hH +hH +hH +hH +jA aa +"} +(29,1,1) = {" aa aa aa @@ -24966,11 +24430,6 @@ aa aa aa aa -Lt -Lt -qp -Lt -Lt aa aa aa @@ -25009,11 +24468,95 @@ aa aa aa aa -"} -(51,1,1) = {" -aa -aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +iK +oD +oD +ke +sy +nK +ru +WL +dj +jV +nK +Fs +wj +eM +eM +Qk +Qk +nK +nK +kz +nK +yx +nK +nK +nK +CP +WA +jj +OL aa aa aa @@ -25032,6 +24575,22 @@ aa aa aa aa +Yn +AH +AH +AH +AH +OP +PK +Yn +Yn +Vn +PW +Vn +PW +Vn +zZ +Yn aa aa aa @@ -25043,7 +24602,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +jA +lS +lS +lS +jA +hH +hH +hH +hH +hH +jA aa +"} +(30,1,1) = {" aa aa aa @@ -25148,6 +24726,94 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +nD +xE +oD +le +Qc +nK +CX +kE +Bx +VT +nK +hn +aQ +aQ +DK +nK +GV +nK +BO +xn +km +BU +BO +nK +vY +jj +CI +WA +OL aa aa aa @@ -25166,6 +24832,22 @@ aa aa aa aa +Yn +OP +AH +AH +AH +OP +PK +Yn +Yn +Vn +PW +Vn +PW +Vn +zZ +Yn aa aa aa @@ -25177,7 +24859,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +jA +lS +lS +lS +jA +hH +hH +hH +hH +hH +jA aa +"} +(31,1,1) = {" aa aa aa @@ -25223,19 +24924,9 @@ aa aa aa aa -fT -Lo -Lf -Sd -pV aa aa aa -KH -Lt -Lt -Lt -KH aa aa aa @@ -25266,8 +24957,6 @@ aa aa aa aa -"} -(52,1,1) = {" aa aa aa @@ -25294,6 +24983,94 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +eJ +oD +Gr +Fc +nK +Ag +iE +pr +If +nK +NU +aQ +aQ +dp +Ph +yT +nK +rc +ih +km +kc +bu +nK +WA +CP +qj +vY +OL aa aa aa @@ -25312,6 +25089,22 @@ aa aa aa aa +Yn +OP +OP +OP +OP +OP +PK +Yn +Yn +Vn +PW +Vn +PW +Vn +zZ +Yn aa aa aa @@ -25323,7 +25116,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +jA +jA +jA +jA +jA +hH +hH +hH +hH +hH +jA aa +"} +(32,1,1) = {" aa aa aa @@ -25428,6 +25240,94 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +nD +xE +nD +oD +oD +Yu +nK +Ft +lR +yZ +kH +nK +tg +aQ +aQ +nT +nK +Gj +nK +YV +Ai +km +rA +YV +nK +RP +WA +vY +CC +OL aa aa aa @@ -25446,6 +25346,22 @@ aa aa aa aa +Yn +AH +AH +AH +AH +OP +PK +Yn +Yn +Vn +Vn +Vn +Vn +Vn +zZ +Yn aa aa aa @@ -25457,7 +25373,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(33,1,1) = {" aa aa aa @@ -25480,20 +25415,8 @@ aa aa aa aa -Lt -Lt -qp -Lt -Lt aa aa -KH -Lt -cl -HR -Gi -Lt -KH aa aa aa @@ -25523,8 +25446,6 @@ aa aa aa aa -"} -(53,1,1) = {" aa aa aa @@ -25576,6 +25497,95 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +eJ +qy +xE +oD +oD +nK +oD +oD +oD +oD +nK +UE +Hh +Hh +Qk +nK +nK +nK +oD +oD +nK +oD +oD +nK +nK +vY +vY +vY +OL +OL aa aa aa @@ -25593,6 +25603,22 @@ aa aa aa aa +Yn +XD +XD +XD +XD +XD +Xs +Yn +Yn +Tz +Tz +Tz +Tz +Tz +zE +Yn aa aa aa @@ -25604,7 +25630,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(34,1,1) = {" aa aa aa @@ -25709,6 +25754,98 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +nD +xE +Iz +CJ +nK +nK +xE +eJ +xE +XS +oD +UE +IC +IC +Qk +oD +BW +nK +Ts +Ts +Ts +Ts +Ts +nK +nK +vY +vY +vY +BG +OL +OL +OL +OL aa aa aa @@ -25723,6 +25860,22 @@ aa aa aa aa +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn aa aa aa @@ -25734,28 +25887,29 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(35,1,1) = {" aa -KH -Lt -aZ -Xj -cr -Lt aa aa -Lt -Vh -LI -CH -CH -PJ -Lt -Lt -Lt -Lt -Lt -KH aa aa aa @@ -25780,8 +25934,6 @@ aa aa aa aa -"} -(54,1,1) = {" aa aa aa @@ -25859,6 +26011,99 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +iK +xE +CJ +xE +nD +xE +nD +qy +xE +oD +lb +IC +IC +bP +oD +BW +CP +jN +vY +pm +vY +jj +WA +vY +vY +vY +vY +bc +vY +vY +vY +OL +OL aa aa aa @@ -25872,6 +26117,22 @@ aa aa aa aa +Yn +zM +zM +zM +zM +zM +zs +Yn +Yn +Pv +Pv +Pv +Pv +Pv +ZQ +Yn aa aa aa @@ -25883,7 +26144,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(36,1,1) = {" aa aa aa @@ -25988,46 +26268,131 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +nD +xE +nD +CJ +xE +xE +XS +xE +xE +eJ +oD +lb +IC +IC +bP +oD +BW +WA +CI +CP +jN +pm +vY +vY +vY +vY +vY +vY +BG +vY +vY +vY +vY +OL aa aa aa aa aa -Lt -Xp -lg -KZ -aL -Lt -Lt aa -LH -LN -OW -yX -yX -Nm -Lt -ey -LG -pH -gj -Lt -KH aa -ut aa aa aa -LM aa aa aa -Pw +Yn +Se +Si +Se +Se +Se +Tc +Yn +Yn +Pm +Pm +Pm +Xh +Xh +Wt +Yn aa aa aa -pJ aa aa aa @@ -26036,9 +26401,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa "} -(55,1,1) = {" +(37,1,1) = {" aa aa aa @@ -26143,6 +26525,103 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +CJ +CJ +xE +xE +nD +xE +xE +oD +UE +mO +zd +Qk +oD +BW +vY +CC +WA +vY +vY +fk +vY +vY +fk +vY +vY +bV +vY +vY +vY +vY +OL +OL +OL +OL +OL aa aa aa @@ -26152,6 +26631,22 @@ aa aa aa aa +Yn +Se +Si +Se +Si +Se +Tc +Yn +Yn +Xh +Xh +Pm +Xh +Xh +Wt +Yn aa aa aa @@ -26163,7 +26658,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(38,1,1) = {" aa aa aa @@ -26250,43 +26764,6 @@ aa aa aa aa -Lw -QB -ec -Ae -HZ -QD -Lt -Lt -Lt -LO -Zq -Yx -AA -Da -Lt -iI -LF -BR -MC -EN -Lt -Lt -LC -Lt -Lt -Lt -LC -Lt -Lt -Lt -LC -Lt -Lt -Lt -LC -Lt -KH aa aa aa @@ -26294,8 +26771,6 @@ aa aa aa aa -"} -(56,1,1) = {" aa aa aa @@ -26307,6 +26782,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +Dz +fx +xE +xE +xE +nD +oD +UE +oV +DI +Qk +oD +BW +WA +vY +vY +fk +vY +vY +vY +vY +vY +vY +vY +BG +vY +vY +vY +vY +OL +OL +xm +vY +OL +OL aa aa aa @@ -26315,6 +26888,22 @@ aa aa aa aa +Yn +Se +Si +Se +Si +Se +Tc +Yn +Yn +Xh +Xh +Pm +Xh +Xh +Wt +Yn aa aa aa @@ -26326,7 +26915,26 @@ aa aa aa aa +jA +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +hH +jA aa +"} +(39,1,1) = {" aa aa aa @@ -26431,6 +27039,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +fx +fx +fx +xE +xE +xE +oD +lb +IC +IC +bP +oD +BW +vY +vY +vY +vY +hO +nK +iS +iS +iS +hO +iS +nK +CB +vY +vY +vY +vY +vY +vY +vY +vY +OL aa aa aa @@ -26439,6 +27145,22 @@ aa aa aa aa +Yn +Se +Se +Se +Si +Se +Tc +Yn +Yn +Pm +Pm +Pm +Pm +Pm +Wt +Yn aa aa aa @@ -26450,7 +27172,26 @@ aa aa aa aa +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA +jA aa +"} +(40,1,1) = {" aa aa aa @@ -26507,43 +27248,6 @@ aa aa aa aa -Lw -Yi -fV -YW -vJ -aI -Lt -pZ -Lt -mB -Lj -fI -vq -OF -Lw -wP -ud -Iv -NI -NI -Lw -KP -JE -Vv -of -LD -KV -EL -Ew -Lu -KV -LD -TM -LD -JE -Tu -Lt aa aa aa @@ -26551,8 +27255,6 @@ aa aa aa aa -"} -(57,1,1) = {" aa aa aa @@ -26594,6 +27296,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +JS +fx +fx +fx +fx +fx +fx +fx +fx +xE +xE +xE +oD +lb +IC +IC +bP +oD +BW +vY +vY +vY +vY +aD +uR +rT +rT +rT +rT +rT +uR +Dq +CB +vY +vY +OL +vY +vY +vY +gC +OL aa aa aa @@ -26602,6 +27402,22 @@ aa aa aa aa +Yn +Vk +Vk +Vk +Vk +Vk +Oq +Yn +Yn +Co +Co +Co +Co +Co +VP +Yn aa aa aa @@ -26631,6 +27447,9 @@ aa aa aa aa +"} +(41,1,1) = {" +aa aa aa aa @@ -26734,6 +27553,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +fx +fx +xE +xE +xE +xE +oD +UE +bt +KW +Qk +oD +BW +vY +vY +fk +hO +Jx +uR +rT +rT +rT +rT +rT +uR +rT +Gw +vY +vY +OL +OL +vY +gC +Oe +OL aa aa aa @@ -26742,6 +27659,22 @@ aa aa aa aa +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn +Yn aa aa aa @@ -26764,43 +27697,6 @@ aa aa aa aa -Lw -SX -jC -Hl -Hl -YW -gd -kr -dK -LQ -LQ -cj -cj -wT -Lm -HL -HJ -HJ -HJ -HJ -ci -QH -WE -WE -Li -Lb -Lb -WE -WE -Lb -Li -Li -Lb -bN -bN -bN -Lt aa aa aa @@ -26809,7 +27705,7 @@ aa aa aa "} -(58,1,1) = {" +(42,1,1) = {" aa aa aa @@ -26865,6 +27761,7 @@ aa aa aa aa +gt aa aa aa @@ -26913,6 +27810,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +Rw +if +fx +fx +fx +fx +xE +xE +xE +CJ +xE +xE +oD +UE +mO +zd +Qk +oD +BW +pm +vY +vY +Ot +rT +uR +AQ +AU +AU +AU +sg +uR +rT +HH +vY +WA +OL +vY +vY +Hs +xm +OL aa aa aa @@ -26966,6 +27961,8 @@ aa aa aa aa +"} +(43,1,1) = {" aa aa aa @@ -27021,43 +28018,6 @@ aa aa aa aa -Lw -Rp -bb -MH -fV -sm -Lt -OG -Lt -LR -Tm -Tm -Ff -yH -Lw -AD -oY -dn -dn -eR -Lw -KO -LA -nb -sB -zx -ZA -Lp -sB -DA -LA -Lp -FE -Lp -LB -tm -Lt aa aa aa @@ -27065,8 +28025,6 @@ aa aa aa aa -"} -(59,1,1) = {" aa aa aa @@ -27109,6 +28067,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +if +fx +Ps +if +fx +xE +Iz +nD +CJ +CJ +xE +xE +oD +lb +IC +IC +bP +oD +BW +jN +vY +vY +aD +rT +tO +Mq +gU +gU +gU +bT +nZ +rT +rT +sZ +vY +OL +ry +vY +OL +OL +OL aa aa aa @@ -27162,6 +28218,8 @@ aa aa aa aa +"} +(44,1,1) = {" aa aa aa @@ -27266,6 +28324,103 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +if +fx +iK +xE +xE +nD +xE +CJ +nD +xE +Zt +oD +lb +IC +IC +bP +oD +BW +CI +vY +vY +hf +Xm +Mq +gU +gU +gU +gU +gU +bT +RR +rT +Gw +CI +OL +OL +vY +vY +OL aa aa aa @@ -27278,43 +28433,6 @@ aa aa aa aa -Lw -CT -sw -dv -Lz -QD -Lt -Lt -Lt -KJ -Eq -Ip -Ip -JT -Lt -Dn -BR -LG -BR -RT -Lt -Lt -LP -Lt -Lt -Lt -LP -Lt -Lt -Lt -LP -Lt -Lt -Lt -LP -Lt -KH aa aa aa @@ -27322,8 +28440,6 @@ aa aa aa aa -"} -(60,1,1) = {" aa aa aa @@ -27359,6 +28475,8 @@ aa aa aa aa +"} +(45,1,1) = {" aa aa aa @@ -27463,6 +28581,104 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +JS +fx +Iz +xE +nD +qy +xE +nD +CJ +xE +xE +XS +oD +UE +IC +IC +Qk +oD +BW +nK +vY +vY +vY +NA +gU +gU +gU +gU +gU +gU +gU +bR +rT +Dy +vY +OL +OL +OL +vY +OL +OL aa aa aa @@ -27516,6 +28732,9 @@ aa aa aa aa +"} +(46,1,1) = {" +aa aa aa aa @@ -27535,41 +28754,17 @@ aa aa aa aa -Lt -sF -Ln -YH -Tb -Lt -Lt aa -Lt -ZG -AG -Qd -Tv -EH -Lt -Ll -LG -mU -RJ -Lt -KH aa -gi aa aa aa -cJ aa aa aa -KS aa aa aa -zr aa aa aa @@ -27579,8 +28774,6 @@ aa aa aa aa -"} -(61,1,1) = {" aa aa aa @@ -27645,6 +28838,105 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +nK +nK +nK +nK +nK +nK +xE +fs +qy +nD +nK +nK +Fs +Fs +QO +Mr +Qk +nK +nK +nK +PB +vY +vY +KD +xt +gU +gU +gU +gU +gU +gU +bR +rT +CB +qj +OL +OL +OL +vY +vY +OL +OL aa aa aa @@ -27653,6 +28945,14 @@ aa aa aa aa +KH +Lt +Lt +Lt +Lt +Lt +Lt +aa aa aa aa @@ -27689,6 +28989,8 @@ aa aa aa aa +"} +(47,1,1) = {" aa aa aa @@ -27792,26 +29094,123 @@ aa aa aa aa +aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +sN +Xv +Sg +nK +oD +oD +oD +oD +nK +fN +dL +SN +rA +rA +QF +di +di +Gx +vY +vY +vY +KD +gU +gU +gU +gU +gU +gU +gU +bR +rT +bd +vY +RP +OL +vY +Ek +vY +qb +OL +OL +aa +aa +aa +aa +aa +aa KH Lt -LU -Ld -rG -Lt +KK +wk +Qt +Lk +cP +MM aa aa -Lt -EV -eX -mf -rz -wN -Lt -Lt -Lt -Lt -Lt -KH aa aa aa @@ -27836,8 +29235,6 @@ aa aa aa aa -"} -(62,1,1) = {" aa aa aa @@ -27849,6 +29246,8 @@ aa aa aa aa +"} +(48,1,1) = {" aa aa aa @@ -27953,12 +29352,120 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +Sg +lB +XO +VC +VC +XO +lB +VK +kZ +nM +rA +Cv +nK +nK +nK +nK +mS +vY +vY +YU +ZR +gU +gU +gU +gU +gU +tM +lt +CP +CC +vY +CI +OL +Ek +cO +Ek +vY +Hs +OL aa aa aa aa aa aa +Lt +tA +wX +HG +HG +Lk +cP +KQ aa aa aa @@ -27996,6 +29503,8 @@ aa aa aa aa +"} +(49,1,1) = {" aa aa aa @@ -28050,20 +29559,8 @@ aa aa aa aa -Lt -Lt -ge -Lt -Lt aa aa -KH -Lt -Cy -iC -Po -Lt -KH aa aa aa @@ -28093,8 +29590,6 @@ aa aa aa aa -"} -(63,1,1) = {" aa aa aa @@ -28114,12 +29609,120 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +Sg +Pd +XO +VC +VC +XO +Pd +VK +kZ +nM +rA +ez +nK +XM +XM +nK +nK +qj +vY +vY +Xa +ZR +gU +gU +gU +tM +ph +CP +jN +CI +vY +jj +OL +OL +Ek +vY +gC +Oe +OL aa aa aa aa aa aa +KH +Lt +Lt +LJ +fW +SC +Lt +Lt aa aa aa @@ -28157,6 +29760,8 @@ aa aa aa aa +"} +(50,1,1) = {" aa aa aa @@ -28261,6 +29866,106 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +bG +nK +nK +oD +oc +pn +oD +nK +ZO +tN +Pk +rA +rA +jF +XM +XM +XM +nK +OL +CI +WA +Kz +HO +kA +Qz +kA +yy +Kz +jj +CI +jN +CP +OL +OL +OL +OL +OL +OL +OL +OL aa aa aa @@ -28269,6 +29974,11 @@ aa aa aa aa +Lt +Lt +qp +Lt +Lt aa aa aa @@ -28307,19 +30017,11 @@ aa aa aa aa -fT -Lo -Rk -Sd -pV +"} +(51,1,1) = {" aa aa aa -KH -Lt -Lt -Lt -KH aa aa aa @@ -28350,10 +30052,6 @@ aa aa aa aa -"} -(64,1,1) = {" -aa -aa aa aa aa @@ -28425,6 +30123,102 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +oD +ws +Vm +AZ +Bc +rs +nK +ab +VB +Pk +rA +rA +jF +XM +XM +XM +nK +OL +vY +QU +Kz +CI +oD +Jc +oD +WA +Kz +jw +CP +OL +OL +OL +OL +OL +OL aa aa aa @@ -28437,9 +30231,19 @@ aa aa aa aa +fT +Lo +Lf +Sd +pV aa aa aa +KH +Lt +Lt +Lt +KH aa aa aa @@ -28470,6 +30274,8 @@ aa aa aa aa +"} +(52,1,1) = {" aa aa aa @@ -28564,12 +30370,6 @@ aa aa aa aa -Lt -Lt -ge -Lt -Lt -aa aa aa aa @@ -28580,6 +30380,97 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +Xu +ib +Xf +Xf +Xf +Aq +Bc +Bc +Bc +Bc +Bc +ye +VK +kZ +nM +rA +lj +nK +XM +XM +nK +nK +OL +OL +CI +Kz +jj +oD +lU +oD +RP +Kz +WA +jj +OL aa aa aa @@ -28597,8 +30488,20 @@ aa aa aa aa +Lt +Lt +qp +Lt +Lt aa aa +KH +Lt +cl +HR +Gi +Lt +KH aa aa aa @@ -28607,8 +30510,6 @@ aa aa aa aa -"} -(65,1,1) = {" aa aa aa @@ -28630,6 +30531,8 @@ aa aa aa aa +"} +(53,1,1) = {" aa aa aa @@ -28734,6 +30637,97 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +Aq +Oy +Jf +Bc +mE +av +nK +yY +Vt +OH +rA +Cv +nK +nK +nK +nK +OL +OL +OL +OL +Kz +WA +oD +Jc +oD +ql +nK +RP +OL +OL aa aa aa @@ -28750,8 +30744,26 @@ aa aa aa aa +KH +Lt +aZ +Xj +cr +Lt aa aa +Lt +Vh +LI +CH +CH +PJ +Lt +Lt +Lt +Lt +Lt +KH aa aa aa @@ -28776,6 +30788,8 @@ aa aa aa aa +"} +(54,1,1) = {" aa aa aa @@ -28819,14 +30833,6 @@ aa aa aa aa -KH -Lt -Lt -Te -DL -CF -Lt -Lt aa aa aa @@ -28864,8 +30870,6 @@ aa aa aa aa -"} -(66,1,1) = {" aa aa aa @@ -28890,6 +30894,96 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +YM +Xf +bG +nK +nK +nK +PS +ht +rx +nK +nK +UE +nK +cz +cz +nK +rS +pc +nK +nK +nK +nK +nK +nK +oD +oD +Jc +nK +jj +WA +vY +OL aa aa aa @@ -28907,17 +31001,41 @@ aa aa aa aa +Lt +Xp +lg +KZ +aL +Lt +Lt aa +LH +LN +OW +yX +yX +Nm +Lt +ey +LG +pH +gj +Lt +KH aa +ut aa aa aa +LM aa aa aa +Pw aa aa aa +pJ aa aa aa @@ -28927,6 +31045,8 @@ aa aa aa aa +"} +(55,1,1) = {" aa aa aa @@ -29031,6 +31151,96 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +ZI +hb +nK +nK +nK +nK +nK +Ub +mL +oD +VK +VK +bf +BX +BX +Uw +qA +iL +oX +DS +lU +Jc +Jc +Jc +nK +OL +OL +OL +OL aa aa aa @@ -29048,6 +31258,43 @@ aa aa aa aa +Lw +QB +ec +Ae +HZ +QD +Lt +Lt +Lt +LO +Zq +Yx +AA +Da +Lt +iI +LF +BR +MC +EN +Lt +Lt +LC +Lt +Lt +Lt +LC +Lt +Lt +Lt +LC +Lt +Lt +Lt +LC +Lt +KH aa aa aa @@ -29055,6 +31302,8 @@ aa aa aa aa +"} +(56,1,1) = {" aa aa aa @@ -29076,14 +31325,6 @@ aa aa aa aa -Lt -fz -za -MX -DL -ep -cP -MM aa aa aa @@ -29121,8 +31362,6 @@ aa aa aa aa -"} -(67,1,1) = {" aa aa aa @@ -29169,6 +31408,95 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +SA +gh +nK +gm +zw +Gy +nK +vn +BH +oD +VK +VK +Kn +UD +Dp +nL +GE +iL +nK +nK +nK +nK +nK +nK +nK +OL +Cd +OL aa aa aa @@ -29187,6 +31515,43 @@ aa aa aa aa +Lw +Yi +fV +YW +vJ +aI +Lt +pZ +Lt +mB +Lj +fI +vq +OF +Lw +wP +ud +Iv +NI +NI +Lw +KP +JE +Vv +of +LD +KV +EL +Ew +Lu +KV +LD +TM +LD +JE +Tu +Lt aa aa aa @@ -29194,6 +31559,8 @@ aa aa aa aa +"} +(57,1,1) = {" aa aa aa @@ -29298,6 +31665,95 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +iY +cp +nK +Jt +eN +RQ +nK +nK +jy +Fs +PQ +VK +Kn +ai +qk +nY +GE +iL +RW +nK +OL +OL +OL +OL +OL +OL +Cd +OL aa aa aa @@ -29316,6 +31772,43 @@ aa aa aa aa +Lw +SX +jC +Hl +Hl +YW +gd +kr +dK +LQ +LQ +cj +cj +wT +Lm +HL +HJ +HJ +HJ +HJ +ci +QH +WE +WE +Li +Lb +Lb +WE +WE +Lb +Li +Li +Lb +bN +bN +bN +Lt aa aa aa @@ -29323,6 +31816,8 @@ aa aa aa aa +"} +(58,1,1) = {" aa aa aa @@ -29333,14 +31828,6 @@ aa aa aa aa -KH -Lt -cT -Hb -OC -ep -cP -KQ aa aa aa @@ -29378,8 +31865,6 @@ aa aa aa aa -"} -(68,1,1) = {" aa aa aa @@ -29437,6 +31922,95 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +Tn +hG +nK +rO +eN +Ne +oD +VK +VK +kZ +VK +VK +Kn +Cw +PU +Oc +GE +iL +Xt +nK +OL +Cd +Cd +OL +Cd +OL +OL +OL aa aa aa @@ -29455,6 +32029,43 @@ aa aa aa aa +Lw +Rp +bb +MH +fV +sm +Lt +OG +Lt +LR +Tm +Tm +Ff +yH +Lw +AD +oY +dn +dn +eR +Lw +KO +LA +nb +sB +zx +ZA +Lp +sB +DA +LA +Lp +FE +Lp +LB +tm +Lt aa aa aa @@ -29462,6 +32073,8 @@ aa aa aa aa +"} +(59,1,1) = {" aa aa aa @@ -29566,6 +32179,94 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Xf +Xf +SA +VK +nK +LZ +Dd +Dd +RB +Fl +Fl +kZ +VK +VK +Kn +Le +cL +OI +GE +iL +CK +nK +OL +OL +OL +OL +OL +OL +OL aa aa aa @@ -29585,19 +32286,43 @@ aa aa aa aa -aa -aa -aa -aa -aa -aa -KH +Lw +CT +sw +dv +Lz +QD Lt Lt Lt +KJ +Eq +Ip +Ip +JT Lt +Dn +BR +LG +BR +RT Lt Lt +LP +Lt +Lt +Lt +LP +Lt +Lt +Lt +LP +Lt +Lt +Lt +LP +Lt +KH aa aa aa @@ -29605,6 +32330,8 @@ aa aa aa aa +"} +(60,1,1) = {" aa aa aa @@ -29635,9 +32362,6 @@ aa aa aa aa -"} -(69,1,1) = {" -aa aa aa aa @@ -29712,6 +32436,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +ib +Xf +Zk +no +iY +zg +nK +rO +yB +iP +oD +VK +VK +kZ +VK +VK +Dm +BV +BV +BV +SG +Sr +rK +nK +nK +OL aa aa aa @@ -29736,17 +32543,41 @@ aa aa aa aa +Lt +sF +Ln +YH +Tb +Lt +Lt aa +Lt +ZG +AG +Qd +Tv +EH +Lt +Ll +LG +mU +RJ +Lt +KH aa +gi aa aa aa +cJ aa aa aa +KS aa aa aa +zr aa aa aa @@ -29756,6 +32587,8 @@ aa aa aa aa +"} +(61,1,1) = {" aa aa aa @@ -29860,6 +32693,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +nK +nK +nK +nK +nK +nK +nK +nK +nK +nK +nK +nK +oD +Ha +oD +VK +Sj +dF +lY +jO +Kf +iL +yv +Es +nK +OL aa aa aa @@ -29884,16 +32800,32 @@ aa aa aa aa +KH +Lt +LU +Ld +rG +Lt aa aa +Lt +EV +eX +mf +rz +wN +Lt +Lt +Lt +Lt +Lt +KH aa aa aa aa aa aa -"} -(70,1,1) = {" aa aa aa @@ -29912,6 +32844,8 @@ aa aa aa aa +"} +(62,1,1) = {" aa aa aa @@ -30016,6 +32950,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +nK +nK +fx +Nv +fx +oz +nK +nK +Nv +fx +fx +ia +oD +Xf +oD +mK +Sj +PA +WK +PA +Kf +bg +nK +nK +nK +OL aa aa aa @@ -30041,8 +33058,20 @@ aa aa aa aa +Lt +Lt +ge +Lt +Lt aa aa +KH +Lt +Cy +iC +Po +Lt +KH aa aa aa @@ -30072,6 +33101,8 @@ aa aa aa aa +"} +(63,1,1) = {" aa aa aa @@ -30149,8 +33180,6 @@ aa aa aa aa -"} -(71,1,1) = {" aa aa aa @@ -30178,6 +33207,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +ia +fx +gA +fx +fx +ia +gA +fx +fx +KR +fx +oD +Xf +oD +nK +oD +er +Pz +Rl +oD +nK +nK +OL +OL +OL aa aa aa @@ -30203,9 +33315,19 @@ aa aa aa aa +fT +Lo +Rk +Sd +pV aa aa aa +KH +Lt +Lt +Lt +KH aa aa aa @@ -30236,6 +33358,8 @@ aa aa aa aa +"} +(64,1,1) = {" aa aa aa @@ -30340,6 +33464,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +oz +fx +KR +fx +fx +fx +fx +fx +fx +Nv +oD +mM +oD +qg +oD +oD +oD +oD +oD +ia +Wd +yD +xE +yD aa aa aa @@ -30365,6 +33572,11 @@ aa aa aa aa +Lt +Lt +ge +Lt +Lt aa aa aa @@ -30403,11 +33615,11 @@ aa aa aa aa +"} +(65,1,1) = {" aa aa aa -"} -(72,1,1) = {" aa aa aa @@ -30509,6 +33721,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +qg +fx +fx +gA +fx +nu +ia +fx +fx +fx +oD +Xf +oD +fx +gA +fx +ia +fx +fx +KR +Wd +yD +xE +yD aa aa aa @@ -30532,6 +33827,14 @@ aa aa aa aa +KH +Lt +Lt +Te +DL +CF +Lt +Lt aa aa aa @@ -30569,6 +33872,8 @@ aa aa aa aa +"} +(66,1,1) = {" aa aa aa @@ -30663,8 +33968,6 @@ aa aa aa aa -"} -(73,1,1) = {" aa aa aa @@ -30675,6 +33978,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +ia +fx +fx +fx +fx +fx +gA +ia +oD +Xf +oD +ia +fx +fx +fx +Nv +fx +fx +Wd +Wd +yD +yD aa aa aa @@ -30698,6 +34084,14 @@ aa aa aa aa +Lt +fz +za +MX +DL +ep +cP +MM aa aa aa @@ -30735,6 +34129,8 @@ aa aa aa aa +"} +(67,1,1) = {" aa aa aa @@ -30839,6 +34235,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +oD +sD +oD +fx +Nv +fx +fx +fx +gA +fx +ia +Wd +yD aa aa aa @@ -30863,6 +34341,14 @@ aa aa aa aa +KH +Lt +cT +Hb +OC +ep +cP +KQ aa aa aa @@ -30900,6 +34386,8 @@ aa aa aa aa +"} +(68,1,1) = {" aa aa aa @@ -30920,8 +34408,6 @@ aa aa aa aa -"} -(74,1,1) = {" aa aa aa @@ -31006,6 +34492,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +CL +xE +xE +xE +fx +gA +fx +fx +ia +fx +Wd +yD aa aa aa @@ -31031,6 +34599,13 @@ aa aa aa aa +KH +Lt +Lt +Lt +Lt +Lt +Lt aa aa aa @@ -31068,6 +34643,8 @@ aa aa aa aa +"} +(69,1,1) = {" aa aa aa @@ -31172,13 +34749,93 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +ia +gA +fx +Nv +fx +fx +yD aa aa aa aa aa -"} -(75,1,1) = {" aa aa aa @@ -31243,6 +34900,8 @@ aa aa aa aa +"} +(70,1,1) = {" aa aa aa @@ -31347,6 +35006,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +fx +yD aa aa aa @@ -31416,6 +35157,8 @@ aa aa aa aa +"} +(71,1,1) = {" aa aa aa @@ -31434,8 +35177,6 @@ aa aa aa aa -"} -(76,1,1) = {" aa aa aa @@ -31522,6 +35263,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -31591,6 +35414,8 @@ aa aa aa aa +"} +(72,1,1) = {" aa aa aa @@ -31691,12 +35516,92 @@ aa aa aa aa -"} -(77,1,1) = {" aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -31766,6 +35671,8 @@ aa aa aa aa +"} +(73,1,1) = {" aa aa aa @@ -31870,6 +35777,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -31939,6 +35928,8 @@ aa aa aa aa +"} +(74,1,1) = {" aa aa aa @@ -31948,8 +35939,6 @@ aa aa aa aa -"} -(78,1,1) = {" aa aa aa @@ -32045,6 +36034,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -32114,6 +36185,8 @@ aa aa aa aa +"} +(75,1,1) = {" aa aa aa @@ -32205,8 +36278,6 @@ aa aa aa aa -"} -(79,1,1) = {" aa aa aa @@ -32220,6 +36291,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -32289,6 +36442,8 @@ aa aa aa aa +"} +(76,1,1) = {" aa aa aa @@ -32393,6 +36548,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -32463,7 +36700,7 @@ aa aa aa "} -(80,1,1) = {" +(77,1,1) = {" aa aa aa @@ -32568,6 +36805,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -32637,6 +36956,8 @@ aa aa aa aa +"} +(78,1,1) = {" aa aa aa @@ -32719,8 +37040,6 @@ aa aa aa aa -"} -(81,1,1) = {" aa aa aa @@ -32743,6 +37062,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +yD aa aa aa @@ -32812,6 +37213,8 @@ aa aa aa aa +"} +(79,1,1) = {" aa aa aa @@ -32916,6 +37319,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +fx +yD aa aa aa @@ -32976,8 +37461,6 @@ aa aa aa aa -"} -(82,1,1) = {" aa aa aa @@ -32987,6 +37470,8 @@ aa aa aa aa +"} +(80,1,1) = {" aa aa aa @@ -33091,6 +37576,88 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +fx +yD aa aa aa @@ -33160,6 +37727,8 @@ aa aa aa aa +"} +(81,1,1) = {" aa aa aa @@ -33233,8 +37802,6 @@ aa aa aa aa -"} -(83,1,1) = {" aa aa aa @@ -33266,6 +37833,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +HV +HV +HV +fx +Wd +yD +yD aa aa aa @@ -33334,6 +37984,8 @@ aa aa aa aa +"} +(82,1,1) = {" aa aa aa @@ -33438,6 +38090,89 @@ aa aa aa aa +yD +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +xE +xE +xE +xE +xE +xE +xE +xE +xE +xE +fx +fx +fx +fx +fx +fx +fx +fx +HV +fx +fx +fx +Wd +xE +yD aa aa aa @@ -33490,8 +38225,6 @@ aa aa aa aa -"} -(84,1,1) = {" aa aa aa @@ -33508,6 +38241,8 @@ aa aa aa aa +"} +(83,1,1) = {" aa aa aa @@ -33612,6 +38347,89 @@ aa aa aa aa +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +yD +xE +xE +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +Wd +Wd +Wd +yD +yD aa aa aa @@ -33680,6 +38498,8 @@ aa aa aa aa +"} +(84,1,1) = {" aa aa aa @@ -33747,8 +38567,6 @@ aa aa aa aa -"} -(85,1,1) = {" aa aa aa @@ -33840,6 +38658,34 @@ aa aa aa aa +yD +xE +xE +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +HV +HV +fx +Wd +Wd +yD +yD +yD aa aa aa @@ -33909,6 +38755,8 @@ aa aa aa aa +"} +(85,1,1) = {" aa aa aa @@ -34004,8 +38852,6 @@ aa aa aa aa -"} -(86,1,1) = {" aa aa aa @@ -34069,6 +38915,34 @@ aa aa aa aa +yD +xE +xE +fx +fx +HV +HV +HV +HV +fx +fx +fx +fx +HV +HV +fx +fx +HV +HV +HV +HV +fx +fx +Wd +xE +yD +xE +yD aa aa aa @@ -34138,6 +39012,8 @@ aa aa aa aa +"} +(86,1,1) = {" aa aa aa @@ -34261,8 +39137,6 @@ aa aa aa aa -"} -(87,1,1) = {" aa aa aa @@ -34298,6 +39172,34 @@ aa aa aa aa +yD +xE +xE +fx +fx +fx +fx +fx +fx +fx +fx +Wd +Wd +fx +fx +fx +fx +fx +fx +fx +fx +fx +fx +Wd +xE +yD +xE +yD aa aa aa @@ -34367,6 +39269,8 @@ aa aa aa aa +"} +(87,1,1) = {" aa aa aa @@ -34518,8 +39422,6 @@ aa aa aa aa -"} -(88,1,1) = {" aa aa aa @@ -34527,6 +39429,34 @@ aa aa aa aa +yD +yD +xE +fx +fx +fx +fx +fx +fx +fx +Wd +Wd +Wd +Wd +fx +fx +fx +fx +fx +fx +fx +fx +fx +Wd +yD +yD +yD +yD aa aa aa @@ -34596,6 +39526,8 @@ aa aa aa aa +"} +(88,1,1) = {" aa aa aa @@ -34755,6 +39687,33 @@ aa aa aa aa +yD +yD +Wd +Wd +Wd +Wd +fx +fx +Wd +Wd +yD +yD +Wd +Wd +Wd +Wd +fx +fx +fx +fx +fx +Wd +Wd +xE +yD +yD +yD aa aa aa @@ -34775,8 +39734,6 @@ aa aa aa aa -"} -(89,1,1) = {" aa aa aa @@ -34826,6 +39783,8 @@ aa aa aa aa +"} +(89,1,1) = {" aa aa aa @@ -34986,8 +39945,32 @@ aa aa aa aa +yD +yD +yD +yD +Wd +Wd +Wd +Wd +yD aa aa +yD +yD +yD +Wd +Wd +Wd +Wd +Wd +Wd +Wd +yD +yD +xE +xE +yD aa aa aa @@ -35032,8 +40015,6 @@ aa aa aa aa -"} -(90,1,1) = {" aa aa aa @@ -35059,6 +40040,8 @@ aa aa aa aa +"} +(90,1,1) = {" aa aa aa @@ -35222,11 +40205,29 @@ aa aa aa aa +yD +yD +yD +yD +yD +yD aa aa aa aa aa +yD +yD +yD +yD +yD +yD +yD +yD +xE +yD +yD +yD aa aa aa @@ -35289,8 +40290,6 @@ aa aa aa aa -"} -(91,1,1) = {" aa aa aa @@ -35298,6 +40297,8 @@ aa aa aa aa +"} +(91,1,1) = {" aa aa aa @@ -35477,6 +40478,13 @@ aa aa aa aa +yD +yD +yD +yD +yD +yD +yD aa aa aa @@ -35729,11 +40737,11 @@ aa aa aa aa -aa -aa -aa -aa -aa +yD +yD +yD +yD +yD aa aa aa @@ -43192,7 +48200,7 @@ oJ lo oM iF -ls +bD On On GZ @@ -49592,7 +54600,7 @@ aa aa dS rd -qD +Hn xH uE dS @@ -52161,7 +57169,7 @@ dS kh Fg NJ -ms +dS dS LK RX @@ -54217,7 +59225,7 @@ mQ mQ Rm Ac -mj +Vz Nx ZX mQ @@ -54988,7 +59996,7 @@ Rm vl IV IV -Za +ER IV GX tK @@ -57558,7 +62566,7 @@ aa aa aa dl -Dr +jM Nb Nb YL @@ -58072,7 +63080,7 @@ aa aa aa dl -Dr +Yw Nb Nb Nb @@ -59367,7 +64375,7 @@ vS IA JY rP -kQ +zk zk Lc Ar @@ -59617,10 +64625,10 @@ Nb FV dl Nb -UH +EW ux vS -vT +fF wI xq rP @@ -59872,7 +64880,7 @@ fE AO fE we -Bq +we Nb YL Wv @@ -60642,7 +65650,7 @@ aa aa aa dl -qz +Bu Nb Nb Nb diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm index 34a165ccf6db..3e7154b8e1fa 100644 --- a/code/__DEFINES/DNA.dm +++ b/code/__DEFINES/DNA.dm @@ -80,24 +80,25 @@ #define SKINTONES 12 #define ANIME 13 #define MUTCOLORS_SECONDARY 14 +#define SPECIES_FUR 15 /// Use this if you want to change the race's color without the player being able to pick their own color. AKA special color shifting -#define DYNCOLORS 15 -#define AGENDER 16 +#define DYNCOLORS 16 +#define AGENDER 17 /// Do not draw eyes or eyeless overlay -#define NOEYESPRITES 17 +#define NOEYESPRITES 18 ///If we have a limb-specific overlay sprite -#define HAS_MARKINGS 18 +#define HAS_MARKINGS 19 /// Do not draw blood overlay -#define NOBLOODOVERLAY 19 +#define NOBLOODOVERLAY 20 ///No augments, for monkeys in specific because they will turn into fucking freakazoids https://cdn.discordapp.com/attachments/326831214667235328/791313258912153640/102707682-fa7cad80-4294-11eb-8f13-8c689468aeb0.png -#define NOAUGMENTS 20 +#define NOAUGMENTS 21 ///will be assigned a universal vampire themed last name shared by their department. this is preferenced! -#define BLOOD_CLANS 21 +#define BLOOD_CLANS 22 -#define REVIVESBYHEALING 22 -#define NOHUSK 23 -#define NOMOUTH 24 +#define REVIVESBYHEALING 23 +#define NOHUSK 24 +#define NOMOUTH 25 //organ slots #define ORGAN_SLOT_ADAMANTINE_RESONATOR "adamantine_resonator" diff --git a/code/__DEFINES/~monkestation/storytellers.dm b/code/__DEFINES/~monkestation/storytellers.dm new file mode 100644 index 000000000000..a706f3804d87 --- /dev/null +++ b/code/__DEFINES/~monkestation/storytellers.dm @@ -0,0 +1,95 @@ + +//Could be bitflags, but that would require a good amount of translations, which eh, either way works for me +/// When the event is combat oriented (spawning monsters, inherently hostile antags) +#define TAG_COMBAT "combat" +/// When the event is spooky (broken lights, some antags) +#define TAG_SPOOKY "spooky" +/// When the event is destructive in a decent capacity (meteors, blob) +#define TAG_DESTRUCTIVE "destructive" +/// When the event impacts most of the crewmembers in some capacity (comms blackout) +#define TAG_COMMUNAL "communal" +/// When the event targets a person for something (appendix, heart attack) +#define TAG_TARGETED "targeted" +/// When the event is positive and helps the crew, in some capacity (Shuttle Loan, Supply Pod) +#define TAG_POSITIVE "positive" +/// When one of the crewmembers becomes an antagonist +#define TAG_CREW_ANTAG "crew_antag" +/// When the antagonist event is focused around team cooperation. +#define TAG_TEAM_ANTAG "team_antag" +/// When one of the non-crewmember players becomes an antagonist +#define TAG_OUTSIDER_ANTAG "away_antag" +/// When the event impacts the overmap +#define TAG_OVERMAP "overmap" +/// When the event requires the station to be in space (meteors, carp) +#define TAG_SPACE "space" +/// When the event requires the station to be on planetary. +#define TAG_PLANETARY "planetary" + +#define EVENT_TRACK_MUNDANE "Mundane" +#define EVENT_TRACK_MODERATE "Moderate" +#define EVENT_TRACK_MAJOR "Major" +#define EVENT_TRACK_ROLESET "Roleset" +#define EVENT_TRACK_OBJECTIVES "Objectives" + +#define ALL_EVENTS "All" +#define UNCATEGORIZED_EVENTS "Uncategorized" + +#define STORYTELLER_WAIT_TIME 5 SECONDS + +#define EVENT_POINT_GAINED_PER_SECOND 0.08 + +#define TRACK_FAIL_POINT_PENALTY_MULTIPLIER 0.75 + +#define GAMEMODE_PANEL_MAIN "Main" +#define GAMEMODE_PANEL_VARIABLES "Variables" + +#define MUNDANE_POINT_THRESHOLD 40 +#define MODERATE_POINT_THRESHOLD 70 +#define MAJOR_POINT_THRESHOLD 130 +#define ROLESET_POINT_THRESHOLD 150 +#define OBJECTIVES_POINT_THRESHOLD 170 + +#define MUNDANE_MIN_POP 4 +#define MODERATE_MIN_POP 6 +#define MAJOR_MIN_POP 20 +#define ROLESET_MIN_POP 25 +#define OBJECTIVES_MIN_POP 20 + +/// Defines for how much pop do we need to stop applying a pop scalling penalty to event frequency. +#define MUNDANE_POP_SCALE_THRESHOLD 25 +#define MODERATE_POP_SCALE_THRESHOLD 32 +#define MAJOR_POP_SCALE_THRESHOLD 45 +#define ROLESET_POP_SCALE_THRESHOLD 45 +#define OBJECTIVES_POP_SCALE_THRESHOLD 45 + +/// The maximum penalty coming from pop scalling, when we're at the most minimum point, easing into 0 as we reach the SCALE_THRESHOLD. This is treated as a percentage. +#define MUNDANE_POP_SCALE_PENALTY 35 +#define MODERATE_POP_SCALE_PENALTY 35 +#define MAJOR_POP_SCALE_PENALTY 35 +#define ROLESET_POP_SCALE_PENALTY 35 +#define OBJECTIVES_POP_SCALE_PENALTY 35 + +#define STORYTELLER_VOTE "storyteller" + +#define EVENT_TRACKS list(EVENT_TRACK_MUNDANE, EVENT_TRACK_MODERATE, EVENT_TRACK_MAJOR, EVENT_TRACK_ROLESET, EVENT_TRACK_OBJECTIVES) +#define EVENT_PANEL_TRACKS list(EVENT_TRACK_MUNDANE, EVENT_TRACK_MODERATE, EVENT_TRACK_MAJOR, EVENT_TRACK_ROLESET, EVENT_TRACK_OBJECTIVES, UNCATEGORIZED_EVENTS, ALL_EVENTS) + +/// Defines for the antag cap to prevent midround injections. +#define ANTAG_CAP_FLAT 2 +#define ANTAG_CAP_DENOMINATOR 9 + +///Below are defines for roundstart point pool. The GAIN ones are multiplied by ready population +#define ROUNDSTART_MUNDANE_BASE 20 +#define ROUNDSTART_MUNDANE_GAIN 0.5 + +#define ROUNDSTART_MODERATE_BASE 35 +#define ROUNDSTART_MODERATE_GAIN 1.2 + +#define ROUNDSTART_MAJOR_BASE 40 +#define ROUNDSTART_MAJOR_GAIN 2 + +#define ROUNDSTART_ROLESET_BASE 60 +#define ROUNDSTART_ROLESET_GAIN 4 + +#define ROUNDSTART_OBJECTIVES_BASE 40 +#define ROUNDSTART_OBJECTIVES_GAIN 2 diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index eed6ad7d1d12..8aa52fd5e81c 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -236,6 +236,8 @@ GLOBAL_LIST_INIT(round_end_images, world.file2list("data/image_urls.txt")) //Set news report and mode result mode.set_round_result() + SSgamemode.round_end_report() + SSgamemode.store_roundend_data() // store data on roundend for next round to_chat(world, span_infoplain(span_big(span_bold("


The round has ended.")))) log_game("The round has ended.") diff --git a/code/controllers/master.dm b/code/controllers/master.dm index a7013f058ed6..f44a5f5161e9 100644 --- a/code/controllers/master.dm +++ b/code/controllers/master.dm @@ -282,6 +282,8 @@ GLOBAL_REAL(Master, /datum/controller/master) = new if(sleep_offline_after_initializations && CONFIG_GET(flag/resume_after_initializations)) world.sleep_offline = FALSE initializations_finished_with_no_players_logged_in = initialized_tod < REALTIMEOFDAY - 10 + /// run votes + SSvote.initiate_vote(/datum/vote/storyteller, "pick round storyteller", forced = TRUE) // idk where else to run this lol /** * Initialize a given subsystem and handle the results. diff --git a/code/controllers/subsystem/processing/station.dm b/code/controllers/subsystem/processing/station.dm index 21cd66c11a72..0b5626d68977 100644 --- a/code/controllers/subsystem/processing/station.dm +++ b/code/controllers/subsystem/processing/station.dm @@ -76,6 +76,9 @@ PROCESSING_SUBSYSTEM_DEF(station) for(var/iterator in 1 to amount) var/datum/station_trait/trait_type = pick_weight(selectable_traits_by_types[trait_sign]) //Rolls from the table for the specific trait type selectable_traits_by_types[trait_sign] -= trait_type + if(istype(trait_type, /datum/station_trait/late_arrivals) && SSmapping.config.map_name == "Oshan Station") + amount++ + continue setup_trait(trait_type) ///Creates a given trait of a specific type, while also removing any blacklisted ones from the future pool. diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 13df2be77ba9..517c26798a60 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -26,6 +26,7 @@ SUBSYSTEM_DEF(statpanels) global_data = list( "Map: [SSmapping.config?.map_name || "Loading..."]", cached ? "Next Map: [cached.map_name]" : null, + "Storyteller: [SSgamemode.storyteller ? SSgamemode.storyteller.name : "N/A"]", //monkestation addition "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", "Round Time: [ROUND_TIME()]", diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index aed9754a2a46..c94405a1afa3 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -225,10 +225,14 @@ SUBSYSTEM_DEF(ticker) var/init_start = world.timeofday mode = new /datum/game_mode/dynamic - + SSgamemode.init_storyteller() //monkestation addition CHECK_TICK //Configure mode and assign player to special mode stuff var/can_continue = 0 + //monkestation addition start + can_continue = SSgamemode.pre_setup() + CHECK_TICK + //monkestation addition end can_continue = src.mode.pre_setup() //Choose antagonists CHECK_TICK can_continue = can_continue && SSjob.DivideOccupations() //Distribute jobs @@ -295,6 +299,8 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/PostSetup() set waitfor = FALSE + SSgamemode.storyteller.process(STORYTELLER_WAIT_TIME * 0.1) // we want this asap + SSgamemode.storyteller.round_started = TRUE mode.post_setup() GLOB.start_state = new /datum/station_state() GLOB.start_state.count() diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index 0513c666b774..787748405aaa 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -285,12 +285,16 @@ SUBSYSTEM_DEF(vote) "message" = vote.message, ) + if(vote.has_desc) + vote_data += list("desc" = vote.return_desc(vote_name)) + if(vote == current_vote) var/list/choices = list() for(var/key in current_vote.choices) choices += list(list( "name" = key, "votes" = current_vote.choices[key], + "desc" = current_vote.return_desc(key) )) data["currentVote"] = list( diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index ae6bc7f5a599..07d5763c6654 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -42,6 +42,9 @@ Behavior that's still missing from this component that original food items had t var/list/tastes ///The buffs these foods give when eaten var/food_buffs + ///how many bites we can get + var/total_bites = 0 + var/current_mask /datum/component/edible/Initialize( list/initial_reagents, @@ -74,6 +77,7 @@ Behavior that's still missing from this component that original food items had t src.tastes = string_assoc_list(tastes) src.check_liked = check_liked + setup_initial_reagents(initial_reagents) /datum/component/edible/RegisterWithParent() @@ -214,6 +218,8 @@ Behavior that's still missing from this component that original food items had t else owner.reagents.add_reagent(rid, amount) + total_bites = round(owner.reagents.total_volume / bite_consumption) + /datum/component/edible/proc/examine(datum/source, mob/user, list/examine_list) SIGNAL_HANDLER @@ -443,6 +449,14 @@ Behavior that's still missing from this component that original food items had t var/fraction = min(bite_consumption / owner.reagents.total_volume, 1) owner.reagents.trans_to(eater, bite_consumption, transfered_by = feeder, methods = INGEST) bitecount++ + var/desired_mask = (total_bites / bitecount) + desired_mask = round(desired_mask) + desired_mask = max(1,desired_mask) + desired_mask = min(desired_mask, 4) + + if(desired_mask != current_mask) + current_mask = desired_mask + parent.add_filter("bite", 0, alpha_mask_filter(icon=icon('goon/icons/obj/food.dmi', "eating[desired_mask]"))) checkLiked(fraction, eater) if(!owner.reagents.total_volume) On_Consume(eater, feeder) @@ -570,6 +584,15 @@ Behavior that's still missing from this component that original food items had t if(bitecount == 0 || prob(50)) L.manual_emote("nibbles away at \the [parent].") bitecount++ + var/desired_mask = (total_bites / bitecount) + desired_mask = round(desired_mask) + desired_mask = max(1,desired_mask) + desired_mask = min(desired_mask, 4) + + if(desired_mask != current_mask) + current_mask = desired_mask + src.add_filter("bite", 0, alpha_mask_filter(icon=icon('goon/icons/obj/food.dmi', "eating[desired_mask]"))) + . = COMPONENT_CANCEL_ATTACK_CHAIN L.taste(owner.reagents) // why should carbons get all the fun? if(bitecount >= 5) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index c8c1b2d45064..022de70d54a6 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -135,7 +135,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) var/waittime_h = 1800 /// Maximum amount of threat allowed to generate. - var/max_threat_level = 50 + var/max_threat_level = 0 //disables dynamic threat PLEASE DONT LET ME MERGE THIS /// The extra chance multiplier that a heavy impact midround ruleset will run next time. /// For example, if this is set to 50, then the next heavy roll will be about 50% more likely to happen. diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 5ab88b19956c..38b7062217af 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -370,7 +370,6 @@ cost = 7 minimum_round_time = 70 MINUTES requirements = REQUIREMENTS_VERY_HIGH_THREAT_NEEDED - ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_NUKIEBASE) flags = HIGH_IMPACT_RULESET var/list/operative_cap = list(2,2,3,3,4,5,5,5,5,5) diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm index b0404e7250a4..d016b0429037 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm @@ -450,7 +450,6 @@ requirements = list(90,90,90,80,60,40,30,20,10,10) flags = HIGH_IMPACT_RULESET antag_cap = list("denominator" = 18, "offset" = 1) - ruleset_lazy_templates = list(LAZY_TEMPLATE_KEY_NUKIEBASE) var/required_role = ROLE_NUCLEAR_OPERATIVE var/datum/team/nuclear/nuke_team diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 86ca881ef3bc..c01ab9e5b21d 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -118,6 +118,7 @@ GLOBAL_LIST_INIT(admin_verbs_fun, list( /client/proc/drop_dynex_bomb, /client/proc/flip_ghost_spawn, /client/proc/forceEvent, + /client/proc/forceGamemode, /client/proc/generate_bulk_code, //monkestation addition /client/proc/generate_code, //monkestation addition /client/proc/mass_add_metacoins, //monkestation addition diff --git a/code/modules/admin/force_event.dm b/code/modules/admin/force_event.dm index 1c97936ac48d..e519d2f4ed8a 100644 --- a/code/modules/admin/force_event.dm +++ b/code/modules/admin/force_event.dm @@ -1,4 +1,5 @@ ///Allows an admin to force an event +/* /client/proc/forceEvent() set name = "Trigger Event" set category = "Admin.Events" @@ -15,7 +16,7 @@ var/datum/force_event/ui = new(usr) ui.ui_interact(usr) - +*/ /// Force Event Panel /datum/force_event diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index cc21cc3ebe45..b3600978a9a6 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -70,6 +70,7 @@ if(!check_rights(R_ADMIN)) return SSticker.mode.admin_panel() + SSgamemode.admin_panel(usr) //monkestation addition else if(href_list["call_shuttle"]) if(!check_rights(R_ADMIN)) diff --git a/code/modules/antagonists/nukeop/nukeop.dm b/code/modules/antagonists/nukeop/nukeop.dm index b94c33d326ad..c2809d680cc6 100644 --- a/code/modules/antagonists/nukeop/nukeop.dm +++ b/code/modules/antagonists/nukeop/nukeop.dm @@ -126,8 +126,6 @@ /// Actually moves our nukie to where they should be /datum/antagonist/nukeop/proc/move_to_spawnpoint() - // Ensure that the nukiebase is loaded, and wait for it if required - SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_NUKIEBASE) var/turf/destination = get_spawnpoint() owner.current.forceMove(destination) if(!owner.current.onSyndieBase()) @@ -530,13 +528,6 @@ /// Returns whether or not syndicate operatives escaped. /proc/is_infiltrator_docked_at_syndiebase() var/obj/docking_port/mobile/infiltrator/infiltrator_port = SSshuttle.getShuttle("syndicate") + var/obj/docking_port/stationary/transit/infiltrator_dock = locate() in infiltrator_port.loc - var/datum/lazy_template/nukie_base/nukie_template = GLOB.lazy_templates[LAZY_TEMPLATE_KEY_NUKIEBASE] - if(!nukie_template) - return FALSE // if its not even loaded, cant be docked - - for(var/datum/turf_reservation/loaded_area as anything in nukie_template.reservations) - var/infiltrator_turf = get_turf(infiltrator_port) - if(infiltrator_turf in loaded_area.reserved_turfs) - return TRUE - return FALSE + return infiltrator_port && (is_centcom_level(infiltrator_port.z) || infiltrator_dock) diff --git a/code/modules/antagonists/nukeop/outfits.dm b/code/modules/antagonists/nukeop/outfits.dm index 28ba70e13ceb..bb8d4126fe6f 100644 --- a/code/modules/antagonists/nukeop/outfits.dm +++ b/code/modules/antagonists/nukeop/outfits.dm @@ -44,8 +44,6 @@ if(visualsOnly) return - // We don't require the nukiebase be loaded to function, but lets go ahead and kick off loading just in case - INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, lazy_load_template), LAZY_TEMPLATE_KEY_NUKIEBASE) var/obj/item/radio/radio = nukie.ears radio.set_frequency(FREQ_SYNDICATE) radio.freqlock = RADIO_FREQENCY_LOCKED diff --git a/code/modules/antagonists/pirate/pirate_event.dm b/code/modules/antagonists/pirate/pirate_event.dm index 30dc8c84f31b..505292612241 100644 --- a/code/modules/antagonists/pirate/pirate_event.dm +++ b/code/modules/antagonists/pirate/pirate_event.dm @@ -9,11 +9,9 @@ description = "The crew will either pay up, or face a pirate assault." admin_setup = list(/datum/event_admin_setup/listed_options/pirates) map_flags = EVENT_SPACE_ONLY - -/datum/round_event_control/pirates/preRunEvent() - if (!SSmapping.is_planetary()) - return EVENT_CANT_RUN - return ..() + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT, TAG_COMMUNAL) + checks_antag_cap = TRUE /datum/round_event/pirates ///admin chosen pirate team diff --git a/code/modules/antagonists/wizard/wizard.dm b/code/modules/antagonists/wizard/wizard.dm index 5f7ff984dc1f..cced5fe3f251 100644 --- a/code/modules/antagonists/wizard/wizard.dm +++ b/code/modules/antagonists/wizard/wizard.dm @@ -115,9 +115,6 @@ GLOBAL_LIST_EMPTY(wizard_spellbook_purchases_by_key) RegisterSignal(ritual, COMSIG_GRAND_RITUAL_FINAL_COMPLETE, PROC_REF(on_ritual_complete)) /datum/antagonist/wizard/proc/send_to_lair() - // And now we ensure that its loaded - SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_WIZARDDEN) - if(!owner.current) return if(!GLOB.wizardstart.len) diff --git a/code/modules/bitrunning/event.dm b/code/modules/bitrunning/event.dm index 0ac35a2df8f2..daae0d15c09e 100644 --- a/code/modules/bitrunning/event.dm +++ b/code/modules/bitrunning/event.dm @@ -18,7 +18,7 @@ ROLE_CYBER_POLICE, ) -/datum/round_event_control/bitrunning_glitch/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/bitrunning_glitch/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . diff --git a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm index 4deacb4f9c59..01d58e398038 100644 --- a/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm +++ b/code/modules/bitrunning/virtual_domain/domains/gondola_asteroid.dm @@ -28,11 +28,7 @@ /datum/reagent/gondola_mutation_toxin/virtual_domain name = "Advanced Tranquility" - -/datum/reagent/gondola_mutation_toxin/virtual_domain/expose_mob(mob/living/exposed_mob, methods = TOUCH, reac_volume, show_message = TRUE, touch_protection = 0) - . = ..() - if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection)))) - exposed_mob.ForceContractDisease(new /datum/disease/transformation/gondola/virtual_domain(), FALSE, TRUE) + gondola_disease = /datum/disease/transformation/gondola/virtual_domain /datum/disease/transformation/gondola/virtual_domain stage_prob = 9 diff --git a/code/modules/client/preferences/species.dm b/code/modules/client/preferences/species.dm index a590a3334b78..1aae0e58dbbc 100644 --- a/code/modules/client/preferences/species.dm +++ b/code/modules/client/preferences/species.dm @@ -41,7 +41,6 @@ data[species_id]["desc"] = species.get_species_description() data[species_id]["icon"] = sanitize_css_class_name(species.name) data[species_id]["use_skintones"] = species.use_skintones - data[species_id]["use_fur"] = species.use_fur data[species_id]["sexes"] = species.sexes data[species_id]["enabled_features"] = species.get_features() data[species_id]["perks"] = species.get_species_perks() diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index a5a7b699bea4..7a0b3c3133aa 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -42,6 +42,21 @@ /// Flags dictating whether this event should be run on certain kinds of map var/map_flags = NONE + //monkestation vars starts + var/roundstart = FALSE + var/cost = 1 + var/reoccurence_penalty_multiplier = 0.75 + var/shared_occurence_type + var/track = EVENT_TRACK_MODERATE + /// Last calculated weight that the storyteller assigned this event + var/calculated_weight = 0 + var/tags = list() /// Tags of the event + /// List of the shared occurence types. + var/static/list/shared_occurences = list() + /// Whether a roundstart event can happen post roundstart. Very important for events which override job assignments. + var/can_run_post_roundstart = TRUE + //monkestation vars end + /datum/round_event_control/New() if(config && !wizardevent) // Magic is unaffected by configs earliest_start = CEILING(earliest_start * CONFIG_GET(number/events_min_time_mul), 1) @@ -71,8 +86,10 @@ // Checks if the event can be spawned. Used by event controller and "false alarm" event. // Admin-created events override this. -/datum/round_event_control/proc/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/proc/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) SHOULD_CALL_PARENT(TRUE) + if(roundstart && (world.time-SSticker.round_start_time >= 2 MINUTES || (SSgamemode.ran_roundstart && !fake_check))) + return FALSE if(occurrences >= max_occurrences) return FALSE if(earliest_start >= world.time-SSticker.round_start_time) @@ -88,13 +105,21 @@ if(ispath(typepath, /datum/round_event/ghost_role) && !(GLOB.ghost_role_flags & GHOSTROLE_MIDROUND_EVENT)) return FALSE + //monkestation edit start - STORYTELLERS + if(checks_antag_cap) + if(!roundstart && !SSgamemode.can_inject_antags()) + return FALSE + if(!check_enemies()) + return FALSE + //monkestation edit end - STORYTELLERS + var/datum/game_mode/dynamic/dynamic = SSticker.mode if (istype(dynamic) && dynamic_should_hijack && dynamic.random_event_hijacked != HIJACKED_NOTHING) return FALSE return TRUE -/datum/round_event_control/proc/preRunEvent() +/datum/round_event_control/proc/preRunEvent(forced = FALSE) if(!ispath(typepath, /datum/round_event)) return EVENT_CANT_RUN @@ -106,11 +131,14 @@ // We sleep HERE, in pre-event setup (because there's no sense doing it in runEvent() since the event is already running!) for the given amount of time to make an admin has enough time to cancel an event un-fitting of the present round. if(alert_observers) message_admins("Random Event triggering in [DisplayTimeText(RANDOM_EVENT_ADMIN_INTERVENTION_TIME)]: [name]. (CANCEL)") - sleep(RANDOM_EVENT_ADMIN_INTERVENTION_TIME) + if(!roundstart) + sleep(RANDOM_EVENT_ADMIN_INTERVENTION_TIME) var/players_amt = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) - if(!can_spawn_event(players_amt)) + if(!can_spawn_event(players_amt, fake_check = TRUE) && !forced) message_admins("Second pre-condition check for [name] failed, skipping...") return EVENT_INTERRUPTED + if(!can_spawn_event(players_amt, fake_check = TRUE) && forced) + message_admins("Second pre-condition check for [name] failed, but event forced, running event regardless this may have issues...") if(!triggering) return EVENT_CANCELLED //admin cancelled @@ -203,8 +231,14 @@ Runs the event var/fakeable = TRUE /// Whether a admin wants this event to be cancelled var/cancel_event = FALSE + //monkestation vars starts ///canceled on oshan var/oshan_blocked = FALSE + /// Whether the event called its start() yet or not. + var/has_started = FALSE + ///have we finished setup? + var/setup = FALSE + //monkestation vars end //Called first before processing. //Allows you to setup your event, such as randomly @@ -215,6 +249,7 @@ Runs the event //This is really only for setting defaults which can be overridden later when New() finishes. /datum/round_event/proc/setup() SHOULD_CALL_PARENT(FALSE) + setup = TRUE return ///Annouces the event name to deadchat, override this if what an event should show to deadchat is different to its event name. @@ -228,6 +263,76 @@ Runs the event SHOULD_CALL_PARENT(FALSE) return +//monkestation addition starts - STORYTELLERS +/// This section of event processing is in a proc because roundstart events may get their start invoked. +/datum/round_event/proc/try_start() + if(has_started) + return + has_started = TRUE + processing = FALSE + start() + processing = TRUE + +/datum/round_event_control/roundstart + roundstart = TRUE + earliest_start = 0 + +///Adds an occurence. Has to use the setter to properly handle shared occurences +/datum/round_event_control/proc/add_occurence() + if(shared_occurence_type) + if(!shared_occurences[shared_occurence_type]) + shared_occurences[shared_occurence_type] = 0 + shared_occurences[shared_occurence_type]++ + occurrences++ + +///Subtracts an occurence. Has to use the setter to properly handle shared occurences +/datum/round_event_control/proc/subtract_occurence() + if(shared_occurence_type) + if(!shared_occurences[shared_occurence_type]) + shared_occurences[shared_occurence_type] = 0 + shared_occurences[shared_occurence_type]-- + occurrences-- + +///Gets occurences. Has to use the getter to properly handle shared occurences +/datum/round_event_control/proc/get_occurences() + if(shared_occurence_type) + if(!shared_occurences[shared_occurence_type]) + shared_occurences[shared_occurence_type] = 0 + return shared_occurences[shared_occurence_type] + return occurrences + +/// Prints the action buttons for this event. +/datum/round_event_control/proc/get_href_actions() + if(SSticker.HasRoundStarted()) + if(roundstart) + if(!can_run_post_roundstart) + return "Fire Schedule" + return "Fire Schedule" + else + return "Fire Schedule Force Next" + else + if(roundstart) + return "Add Roundstart Force Roundstart" + else + return "Fire Schedule Force Next" + + +/datum/round_event_control/Topic(href, href_list) + . = ..() + if(QDELETED(src)) + return + switch(href_list["action"]) + if("schedule") + message_admins("[key_name_admin(usr)] scheduled event [src.name].") + log_admin_private("[key_name(usr)] scheduled [src.name].") + SSgamemode.storyteller.buy_event(src, src.track) + if("force_next") + message_admins("[key_name_admin(usr)] force scheduled event [src.name].") + log_admin_private("[key_name(usr)] force scheduled event [src.name].") + SSgamemode.forced_next_events[src.track] += src + +//monkestation addition ends - STORYTELLERS + //Called after something followable has been spawned by an event //Provides ghosts a follow link to an atom if possible //Only called once. @@ -265,6 +370,8 @@ Runs the event //This proc will handle the calls to the appropiate procs. /datum/round_event/process() SHOULD_NOT_OVERRIDE(TRUE) + if(!setup) + return if(!processing) return diff --git a/code/modules/events/anomaly/_anomaly.dm b/code/modules/events/anomaly/_anomaly.dm index 13fedcde2768..eaa9f4122787 100644 --- a/code/modules/events/anomaly/_anomaly.dm +++ b/code/modules/events/anomaly/_anomaly.dm @@ -24,6 +24,7 @@ impact_area = get_area(spawn_location) else impact_area = placer.findValidArea() + setup = TRUE /datum/round_event/anomaly/announce(fake) priority_announce("Energetic flux wave detected on [ANOMALY_ANNOUNCE_DANGEROUS_TEXT] [impact_area.name].", "Anomaly Alert") diff --git a/code/modules/events/aurora_caelus.dm b/code/modules/events/aurora_caelus.dm index 8ce6fcdd89a3..83b3612b9b2a 100644 --- a/code/modules/events/aurora_caelus.dm +++ b/code/modules/events/aurora_caelus.dm @@ -6,8 +6,10 @@ earliest_start = 5 MINUTES category = EVENT_CATEGORY_FRIENDLY description = "A colourful display can be seen through select windows. And the kitchen." + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL, TAG_POSITIVE, TAG_SPACE) -/datum/round_event_control/aurora_caelus/can_spawn_event(players, allow_magic = FALSE) +/datum/round_event_control/aurora_caelus/can_spawn_event(players, allow_magic = FALSE, fake_check = FALSE) if(!SSmapping.empty_space) return FALSE return ..() diff --git a/code/modules/events/brain_trauma.dm b/code/modules/events/brain_trauma.dm index 77d17ce5ecbb..40df052b1ecd 100644 --- a/code/modules/events/brain_trauma.dm +++ b/code/modules/events/brain_trauma.dm @@ -6,6 +6,8 @@ description = "A crewmember gains a random trauma." min_wizard_trigger_potency = 2 max_wizard_trigger_potency = 6 + track = EVENT_TRACK_MUNDANE + tags = list(TAG_TARGETED) /datum/round_event/brain_trauma fakeable = FALSE diff --git a/code/modules/events/brand_intelligence.dm b/code/modules/events/brand_intelligence.dm index 813be9b3d8ba..689878896eeb 100644 --- a/code/modules/events/brand_intelligence.dm +++ b/code/modules/events/brand_intelligence.dm @@ -9,6 +9,8 @@ min_wizard_trigger_potency = 2 max_wizard_trigger_potency = 6 admin_setup = list(/datum/event_admin_setup/listed_options/brand_intelligence) + track = EVENT_TRACK_MODERATE + tags = list(TAG_DESTRUCTIVE, TAG_COMMUNAL) /datum/round_event/brand_intelligence announce_when = 21 @@ -46,6 +48,7 @@ kill() return origin_machine = pick_n_take(vending_machines) + setup = TRUE /datum/round_event/brand_intelligence/announce(fake) priority_announce("Rampant brand intelligence has been detected aboard [station_name()]. Please inspect any [origin_machine] brand vendors for aggressive marketing tactics, and reboot them if necessary.", "Machine Learning Alert") diff --git a/code/modules/events/bureaucratic_error.dm b/code/modules/events/bureaucratic_error.dm index 5f206134a921..6b9b62efd945 100644 --- a/code/modules/events/bureaucratic_error.dm +++ b/code/modules/events/bureaucratic_error.dm @@ -5,6 +5,8 @@ weight = 5 category = EVENT_CATEGORY_BUREAUCRATIC description = "Randomly opens and closes job slots, along with changing the overflow role." + track = EVENT_TRACK_MAJOR // if you've ever dealt with 10 mimes you understand why. + tags = list(TAG_COMMUNAL) /datum/round_event/bureaucratic_error announce_when = 1 @@ -22,10 +24,11 @@ var/datum/job/current = job if(!current.allow_bureaucratic_error) continue - current.total_positions = 0 + var/ran = rand(-2,4) + current.total_positions = max(current.total_positions + ran, 1) else // Adds/removes a random amount of job slots from all jobs. for(var/datum/job/current as anything in jobs) if(!current.allow_bureaucratic_error) continue var/ran = rand(-2,4) - current.total_positions = max(current.total_positions + ran, 0) + current.total_positions = max(current.total_positions + ran, 1) diff --git a/code/modules/events/camerafailure.dm b/code/modules/events/camerafailure.dm index 453b919c5b88..7459a575dc05 100644 --- a/code/modules/events/camerafailure.dm +++ b/code/modules/events/camerafailure.dm @@ -6,6 +6,8 @@ alert_observers = FALSE category = EVENT_CATEGORY_ENGINEERING description = "Turns off a random amount of cameras." + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL, TAG_SPOOKY) /datum/round_event/camera_failure fakeable = FALSE diff --git a/code/modules/events/carp_migration.dm b/code/modules/events/carp_migration.dm index e62d26598c23..17f083a97d4d 100644 --- a/code/modules/events/carp_migration.dm +++ b/code/modules/events/carp_migration.dm @@ -10,6 +10,8 @@ min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 3 admin_setup = list(/datum/event_admin_setup/carp_migration) + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) /datum/round_event_control/carp_migration/New() . = ..() @@ -35,6 +37,7 @@ /datum/round_event/carp_migration/setup() start_when = rand(40, 60) + setup = TRUE /datum/round_event/carp_migration/announce(fake) priority_announce("[fluff_signal] have been detected near [station_name()], please stand-by.", "Lifesign Alert") diff --git a/code/modules/events/communications_blackout.dm b/code/modules/events/communications_blackout.dm index 0747998e6744..f0e7c4694aa0 100644 --- a/code/modules/events/communications_blackout.dm +++ b/code/modules/events/communications_blackout.dm @@ -6,6 +6,8 @@ description = "Heavily emps all telecommunication machines, blocking all communication for a while." min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 3 + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL, TAG_SPOOKY) /datum/round_event/communications_blackout announce_when = 1 diff --git a/code/modules/events/creep_awakening.dm b/code/modules/events/creep_awakening.dm index 648c2cc9db04..a519ee9430bd 100644 --- a/code/modules/events/creep_awakening.dm +++ b/code/modules/events/creep_awakening.dm @@ -5,6 +5,8 @@ min_players = 20 category = EVENT_CATEGORY_HEALTH description = "A random crewmember becomes obsessed with another." + track = EVENT_TRACK_MODERATE + tags = list(TAG_CREW_ANTAG, TAG_TARGETED) /datum/round_event/obsessed fakeable = FALSE diff --git a/code/modules/events/disease_outbreak.dm b/code/modules/events/disease_outbreak.dm index f57ed1774d4c..7348875be007 100644 --- a/code/modules/events/disease_outbreak.dm +++ b/code/modules/events/disease_outbreak.dm @@ -32,8 +32,10 @@ admin_setup = list(/datum/event_admin_setup/minimum_candidate_requirement/disease_outbreak, /datum/event_admin_setup/listed_options/disease_outbreak) ///Disease recipient candidates var/list/disease_candidates = list() + track = EVENT_TRACK_MUNDANE + tags = list(TAG_TARGETED) -/datum/round_event_control/disease_outbreak/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/disease_outbreak/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . @@ -100,6 +102,7 @@ /datum/round_event/disease_outbreak/setup() announce_when = ADV_ANNOUNCE_DELAY + setup = TRUE /datum/round_event/disease_outbreak/start() var/datum/round_event_control/disease_outbreak/disease_event = control @@ -255,6 +258,7 @@ /datum/round_event/disease_outbreak/advance/setup() announce_when = ADV_ANNOUNCE_DELAY + setup = TRUE /** * Generate advanced virus diff --git a/code/modules/events/dust.dm b/code/modules/events/dust.dm index c12b86d5803c..71f97a4e2fbc 100644 --- a/code/modules/events/dust.dm +++ b/code/modules/events/dust.dm @@ -1,13 +1,15 @@ /datum/round_event_control/space_dust name = "Space Dust: Minor" typepath = /datum/round_event/space_dust - weight = 200 - max_occurrences = 1000 + weight = 200 // why the hell was this so much + max_occurrences = 10 earliest_start = 0 MINUTES alert_observers = FALSE category = EVENT_CATEGORY_SPACE description = "A single space dust is hurled at the station." map_flags = EVENT_SPACE_ONLY + track = EVENT_TRACK_MUNDANE + tags = list(TAG_DESTRUCTIVE, TAG_SPACE) /datum/round_event/space_dust start_when = 1 diff --git a/code/modules/events/electrical_storm.dm b/code/modules/events/electrical_storm.dm index 1309887d4b73..8ec4e485bcbc 100644 --- a/code/modules/events/electrical_storm.dm +++ b/code/modules/events/electrical_storm.dm @@ -8,6 +8,8 @@ description = "Destroys all lights in a large area." min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 4 + track = EVENT_TRACK_MUNDANE + tags = list(TAG_SPOOKY) /datum/round_event/electrical_storm var/lightsoutAmount = 1 diff --git a/code/modules/events/fake_virus.dm b/code/modules/events/fake_virus.dm index fb6bfd5be975..36ce68dd61cf 100644 --- a/code/modules/events/fake_virus.dm +++ b/code/modules/events/fake_virus.dm @@ -4,6 +4,8 @@ weight = 20 category = EVENT_CATEGORY_HEALTH description = "Some crewmembers suffer from temporary hypochondria." + track = EVENT_TRACK_MUNDANE + tags = list(TAG_TARGETED) /datum/round_event/fake_virus/start() var/list/fake_virus_victims = list() diff --git a/code/modules/events/false_alarm.dm b/code/modules/events/false_alarm.dm index 6e5cfdc61a1f..ff0be53939f2 100644 --- a/code/modules/events/false_alarm.dm +++ b/code/modules/events/false_alarm.dm @@ -6,8 +6,10 @@ category = EVENT_CATEGORY_BUREAUCRATIC description = "Fakes an event announcement." admin_setup = list(/datum/event_admin_setup/listed_options/false_alarm) + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL) -/datum/round_event_control/falsealarm/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/falsealarm/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . diff --git a/code/modules/events/ghost_role/abductor.dm b/code/modules/events/ghost_role/abductor.dm index f6928222cfdc..5188f3ef6293 100644 --- a/code/modules/events/ghost_role/abductor.dm +++ b/code/modules/events/ghost_role/abductor.dm @@ -7,6 +7,9 @@ dynamic_should_hijack = TRUE category = EVENT_CATEGORY_INVASION description = "One or more abductor teams spawns, and they plan to experiment on the crew." + track = EVENT_TRACK_MAJOR + tags = list(TAG_TARGETED, TAG_SPOOKY) + checks_antag_cap = TRUE /datum/round_event/ghost_role/abductor minimum_required = 2 diff --git a/code/modules/events/ghost_role/alien_infestation.dm b/code/modules/events/ghost_role/alien_infestation.dm index 72ef044229b4..e76e8c8ccb11 100644 --- a/code/modules/events/ghost_role/alien_infestation.dm +++ b/code/modules/events/ghost_role/alien_infestation.dm @@ -5,12 +5,15 @@ min_players = 35 //monkie edit: 10 to 35 (tg what the fuck) - earliest_start = 90 MINUTES //monkie edit: 20 to 90 + earliest_start = 60 MINUTES //monkie edit: 20 to 90 dynamic_should_hijack = TRUE category = EVENT_CATEGORY_ENTITIES description = "A xenomorph larva spawns on a random vent." + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT) + checks_antag_cap = TRUE -/datum/round_event_control/alien_infestation/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/alien_infestation/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . @@ -34,7 +37,7 @@ announce_when = rand(announce_when, announce_when + 50) if(prob(50)) spawncount++ - + setup = TRUE /datum/round_event/ghost_role/alien_infestation/announce(fake) var/living_aliens = FALSE for(var/mob/living/carbon/alien/A in GLOB.player_list) diff --git a/code/modules/events/ghost_role/blob.dm b/code/modules/events/ghost_role/blob.dm index a07d9d1be594..2278ca8cca18 100644 --- a/code/modules/events/ghost_role/blob.dm +++ b/code/modules/events/ghost_role/blob.dm @@ -6,12 +6,15 @@ min_players = 35 //monkie edit: 20 to 35 - earliest_start = 90 MINUTES //monkie edit: 20 to 90 + earliest_start = 60 MINUTES //monkie edit: 20 to 90 dynamic_should_hijack = TRUE category = EVENT_CATEGORY_ENTITIES description = "Spawns a new blob overmind." + track = EVENT_TRACK_MAJOR + tags = list(TAG_DESTRUCTIVE, TAG_COMBAT) + checks_antag_cap = TRUE -/datum/round_event_control/blob/can_spawn_event(players, allow_magic = FALSE) +/datum/round_event_control/blob/can_spawn_event(players, allow_magic = FALSE, fake_check = FALSE) if(EMERGENCY_PAST_POINT_OF_NO_RETURN) // no blobs if the shuttle is past the point of no return return FALSE diff --git a/code/modules/events/ghost_role/changeling_event.dm b/code/modules/events/ghost_role/changeling_event.dm index 570a6166093d..3bd3770da4b7 100644 --- a/code/modules/events/ghost_role/changeling_event.dm +++ b/code/modules/events/ghost_role/changeling_event.dm @@ -14,6 +14,9 @@ dynamic_should_hijack = TRUE category = EVENT_CATEGORY_ENTITIES description = "A meteor containing a changeling is summoned and thrown at the exterior of the station." + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/changeling minimum_required = 1 diff --git a/code/modules/events/ghost_role/fugitive_event.dm b/code/modules/events/ghost_role/fugitive_event.dm index 24aa4798c79c..08f1390889aa 100644 --- a/code/modules/events/ghost_role/fugitive_event.dm +++ b/code/modules/events/ghost_role/fugitive_event.dm @@ -9,6 +9,9 @@ category = EVENT_CATEGORY_INVASION description = "Fugitives will hide on the station, followed by hunters." map_flags = EVENT_SPACE_ONLY + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/fugitives minimum_required = 1 diff --git a/code/modules/events/ghost_role/morph_event.dm b/code/modules/events/ghost_role/morph_event.dm index e0b75119c282..8ec6b9a0d72c 100644 --- a/code/modules/events/ghost_role/morph_event.dm +++ b/code/modules/events/ghost_role/morph_event.dm @@ -7,6 +7,9 @@ description = "Spawns a hungry shapeshifting blobby creature." min_wizard_trigger_potency = 4 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_ROLESET + tags = list(TAG_COMBAT, TAG_SPOOKY) + checks_antag_cap = TRUE /datum/round_event/ghost_role/morph minimum_required = 1 diff --git a/code/modules/events/ghost_role/nightmare.dm b/code/modules/events/ghost_role/nightmare.dm index 57b942988cdb..20a70e542454 100644 --- a/code/modules/events/ghost_role/nightmare.dm +++ b/code/modules/events/ghost_role/nightmare.dm @@ -8,6 +8,9 @@ description = "Spawns a nightmare, aiming to darken the station." min_wizard_trigger_potency = 6 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_ROLESET + tags = list(TAG_COMBAT, TAG_SPOOKY) + checks_antag_cap = TRUE /datum/round_event/ghost_role/nightmare minimum_required = 1 diff --git a/code/modules/events/ghost_role/operative.dm b/code/modules/events/ghost_role/operative.dm index 4cf8da639bb5..4a8d4d668fd9 100644 --- a/code/modules/events/ghost_role/operative.dm +++ b/code/modules/events/ghost_role/operative.dm @@ -5,6 +5,9 @@ max_occurrences = 1 category = EVENT_CATEGORY_INVASION description = "A single nuclear operative assaults the station." + track = EVENT_TRACK_MAJOR + tags = list(TAG_DESTRUCTIVE, TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/operative minimum_required = 1 diff --git a/code/modules/events/ghost_role/revenant_event.dm b/code/modules/events/ghost_role/revenant_event.dm index 27f3597a7ad2..b15d6e9aa543 100644 --- a/code/modules/events/ghost_role/revenant_event.dm +++ b/code/modules/events/ghost_role/revenant_event.dm @@ -11,7 +11,9 @@ description = "Spawns an angry, soul sucking ghost." min_wizard_trigger_potency = 4 max_wizard_trigger_potency = 7 - + track = EVENT_TRACK_ROLESET + tags = list(TAG_DESTRUCTIVE, TAG_SPOOKY) + checks_antag_cap = TRUE /datum/round_event/ghost_role/revenant var/ignore_mobcheck = FALSE diff --git a/code/modules/events/ghost_role/sentience.dm b/code/modules/events/ghost_role/sentience.dm index 646fcbe2e9c7..cc38f7202447 100644 --- a/code/modules/events/ghost_role/sentience.dm +++ b/code/modules/events/ghost_role/sentience.dm @@ -22,6 +22,8 @@ GLOBAL_LIST_INIT(high_priority_sentience, typecacheof(list( description = "An animal or robot becomes sentient!" min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL, TAG_SPOOKY) /datum/round_event/ghost_role/sentience diff --git a/code/modules/events/ghost_role/sentient_disease.dm b/code/modules/events/ghost_role/sentient_disease.dm index 662f6de22c8a..b8e769ab27fe 100644 --- a/code/modules/events/ghost_role/sentient_disease.dm +++ b/code/modules/events/ghost_role/sentient_disease.dm @@ -9,6 +9,9 @@ description = "Spawns a sentient disease, who wants to infect as many people as possible." min_wizard_trigger_potency = 4 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT, TAG_DESTRUCTIVE) + checks_antag_cap = TRUE /datum/round_event/ghost_role/sentient_disease role_name = "sentient disease" diff --git a/code/modules/events/ghost_role/slaughter_event.dm b/code/modules/events/ghost_role/slaughter_event.dm index 8cb2b729aa4e..b9892fb5cecc 100644 --- a/code/modules/events/ghost_role/slaughter_event.dm +++ b/code/modules/events/ghost_role/slaughter_event.dm @@ -10,6 +10,9 @@ description = "Spawns a slaughter demon, to hunt by travelling through pools of blood." min_wizard_trigger_potency = 6 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT, TAG_SPOOKY) + checks_antag_cap = TRUE /datum/round_event/ghost_role/slaughter minimum_required = 1 diff --git a/code/modules/events/ghost_role/space_dragon.dm b/code/modules/events/ghost_role/space_dragon.dm index 735d6d1dcb8f..8b579abad17d 100644 --- a/code/modules/events/ghost_role/space_dragon.dm +++ b/code/modules/events/ghost_role/space_dragon.dm @@ -10,6 +10,9 @@ description = "Spawns a space dragon, which will try to take over the station." min_wizard_trigger_potency = 6 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_ROLESET + tags = list(TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/space_dragon minimum_required = 1 diff --git a/code/modules/events/ghost_role/space_ninja.dm b/code/modules/events/ghost_role/space_ninja.dm index a14511b72779..894e092a1c21 100644 --- a/code/modules/events/ghost_role/space_ninja.dm +++ b/code/modules/events/ghost_role/space_ninja.dm @@ -8,6 +8,9 @@ dynamic_should_hijack = TRUE category = EVENT_CATEGORY_INVASION description = "A space ninja infiltrates the station." + track = EVENT_TRACK_ROLESET + tags = list(TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/space_ninja minimum_required = 1 diff --git a/code/modules/events/gravity_generator_blackout.dm b/code/modules/events/gravity_generator_blackout.dm index 89cc5a43367e..6384c8030656 100644 --- a/code/modules/events/gravity_generator_blackout.dm +++ b/code/modules/events/gravity_generator_blackout.dm @@ -6,8 +6,10 @@ description = "Turns off the gravity generator." min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 4 + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL, TAG_SPACE) -/datum/round_event_control/gravity_generator_blackout/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/gravity_generator_blackout/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . diff --git a/code/modules/events/grey_tide.dm b/code/modules/events/grey_tide.dm index 7c7e23950a96..d09f76ebe393 100644 --- a/code/modules/events/grey_tide.dm +++ b/code/modules/events/grey_tide.dm @@ -8,6 +8,8 @@ description = "Bolts open all doors in one or more departments." min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MODERATE + tags = list(TAG_DESTRUCTIVE, TAG_SPOOKY) /datum/round_event/grey_tide announce_when = 50 @@ -21,6 +23,7 @@ announce_when = rand(50, 60) end_when = rand(20, 30) severity = rand(1,3) + setup = TRUE var/list/potential_areas = list(/area/station/command, /area/station/engineering, diff --git a/code/modules/events/grid_check.dm b/code/modules/events/grid_check.dm index ecc70df98bcd..2743c4d839d9 100644 --- a/code/modules/events/grid_check.dm +++ b/code/modules/events/grid_check.dm @@ -10,6 +10,8 @@ /// Cooldown for the announement associated with this event. /// Necessary due to the fact that this event is player triggerable. COOLDOWN_DECLARE(announcement_spam_protection) + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL, TAG_SPOOKY) /datum/round_event/grid_check announce_when = 1 diff --git a/code/modules/events/heart_attack.dm b/code/modules/events/heart_attack.dm index 8a8902d5724c..4980225e7836 100644 --- a/code/modules/events/heart_attack.dm +++ b/code/modules/events/heart_attack.dm @@ -11,8 +11,10 @@ admin_setup = list(/datum/event_admin_setup/minimum_candidate_requirement/heart_attack, /datum/event_admin_setup/input_number/heart_attack) ///Candidates for recieving a healthy dose of heart disease var/list/heart_attack_candidates = list() + track = EVENT_TRACK_MODERATE + tags = list(TAG_TARGETED) -/datum/round_event_control/heart_attack/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/heart_attack/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . diff --git a/code/modules/events/immovable_rod/immovable_rod_event.dm b/code/modules/events/immovable_rod/immovable_rod_event.dm index 63d2e79b3911..0b8437cf4f9d 100644 --- a/code/modules/events/immovable_rod/immovable_rod_event.dm +++ b/code/modules/events/immovable_rod/immovable_rod_event.dm @@ -11,6 +11,8 @@ min_wizard_trigger_potency = 6 max_wizard_trigger_potency = 7 admin_setup = list(/datum/event_admin_setup/set_location/immovable_rod, /datum/event_admin_setup/question/immovable_rod) + track = EVENT_TRACK_MODERATE + tags = list(TAG_DESTRUCTIVE) /datum/round_event/immovable_rod announce_when = 5 diff --git a/code/modules/events/ion_storm.dm b/code/modules/events/ion_storm.dm index 772d1576cdc0..f2edeac485a6 100644 --- a/code/modules/events/ion_storm.dm +++ b/code/modules/events/ion_storm.dm @@ -7,6 +7,8 @@ description = "Gives the AI a new, randomized law." min_wizard_trigger_potency = 2 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MODERATE + tags = list(TAG_TARGETED) /datum/round_event/ion_storm var/replaceLawsetChance = 25 //chance the AI's lawset is completely replaced with something else per config weights diff --git a/code/modules/events/mass_hallucination.dm b/code/modules/events/mass_hallucination.dm index 85b1ef024775..2e2baf9a85f7 100644 --- a/code/modules/events/mass_hallucination.dm +++ b/code/modules/events/mass_hallucination.dm @@ -9,6 +9,8 @@ min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 2 admin_setup = list(/datum/event_admin_setup/mass_hallucination) + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) /datum/round_event/mass_hallucination fakeable = FALSE diff --git a/code/modules/events/meteors/meteor_wave_events.dm b/code/modules/events/meteors/meteor_wave_events.dm index e45c2b3fda97..475e3265b8c8 100644 --- a/code/modules/events/meteors/meteor_wave_events.dm +++ b/code/modules/events/meteors/meteor_wave_events.dm @@ -10,6 +10,8 @@ category = EVENT_CATEGORY_SPACE description = "A regular meteor wave." map_flags = EVENT_SPACE_ONLY + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMMUNAL, TAG_SPACE, TAG_DESTRUCTIVE) /datum/round_event/meteor_wave start_when = 6 diff --git a/code/modules/events/meteors/stray_meteor_event.dm b/code/modules/events/meteors/stray_meteor_event.dm index 53daff1ac8a1..849be38b6a09 100644 --- a/code/modules/events/meteors/stray_meteor_event.dm +++ b/code/modules/events/meteors/stray_meteor_event.dm @@ -11,6 +11,8 @@ max_wizard_trigger_potency = 7 admin_setup = list(/datum/event_admin_setup/listed_options/stray_meteor) map_flags = EVENT_SPACE_ONLY + track = EVENT_TRACK_MODERATE + tags = list(TAG_DESTRUCTIVE, TAG_SPACE) /datum/round_event/stray_meteor announce_when = 1 diff --git a/code/modules/events/mice_migration.dm b/code/modules/events/mice_migration.dm index e7f31567f4c9..038ee8bcb193 100644 --- a/code/modules/events/mice_migration.dm +++ b/code/modules/events/mice_migration.dm @@ -4,6 +4,8 @@ weight = 10 category = EVENT_CATEGORY_ENTITIES description = "A horde of mice arrives, and perhaps even the Rat King themselves." + track = EVENT_TRACK_MUNDANE + tags = list(TAG_DESTRUCTIVE) /datum/round_event/mice_migration var/minimum_mice = 5 diff --git a/code/modules/events/portal_storm.dm b/code/modules/events/portal_storm.dm index 5f2bca5071ba..b5771d5075a0 100644 --- a/code/modules/events/portal_storm.dm +++ b/code/modules/events/portal_storm.dm @@ -3,9 +3,12 @@ typepath = /datum/round_event/portal_storm/syndicate_shocktroop weight = 2 min_players = 15 + max_occurrences = 5 earliest_start = 30 MINUTES category = EVENT_CATEGORY_ENTITIES description = "Syndicate troops pour out of portals." + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMBAT) /datum/round_event/portal_storm/syndicate_shocktroop boss_types = list(/mob/living/basic/syndicate/melee/space/stormtrooper = 2) @@ -65,6 +68,7 @@ hostiles_spawn += get_random_station_turf() next_boss_spawn = start_when + CEILING(2 * number_of_hostiles / number_of_bosses, 1) + setup = TRUE /datum/round_event/portal_storm/announce(fake) set waitfor = 0 diff --git a/code/modules/events/processor_overload.dm b/code/modules/events/processor_overload.dm index ebcbb27f2781..9a18da1bd3c9 100644 --- a/code/modules/events/processor_overload.dm +++ b/code/modules/events/processor_overload.dm @@ -5,6 +5,8 @@ min_players = 20 category = EVENT_CATEGORY_ENGINEERING description = "Emps the telecomm processors, scrambling radio speech. Might blow up a few." + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) /datum/round_event/processor_overload announce_when = 1 diff --git a/code/modules/events/radiation_leak.dm b/code/modules/events/radiation_leak.dm index 0fbe29927666..a94c8fe03e1a 100644 --- a/code/modules/events/radiation_leak.dm +++ b/code/modules/events/radiation_leak.dm @@ -8,6 +8,8 @@ category = EVENT_CATEGORY_ENGINEERING min_wizard_trigger_potency = 3 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) /datum/round_event/radiation_leak start_when = 1 // 2 seconds in @@ -47,6 +49,7 @@ // We found something, we can just return now picked_machine_ref = WEAKREF(sick_device) return + setup = TRUE /datum/round_event/radiation_leak/announce(fake) var/obj/machinery/the_source_of_our_problems = picked_machine_ref?.resolve() diff --git a/code/modules/events/radiation_storm.dm b/code/modules/events/radiation_storm.dm index 5b2b6b71ea1d..8d4be6c8299b 100644 --- a/code/modules/events/radiation_storm.dm +++ b/code/modules/events/radiation_storm.dm @@ -1,11 +1,13 @@ /datum/round_event_control/radiation_storm name = "Radiation Storm" typepath = /datum/round_event/radiation_storm - max_occurrences = 1 + max_occurrences = 2 //monkestation edit - STORYTELLERS category = EVENT_CATEGORY_SPACE description = "Radiation storm affects the station, forcing the crew to escape to maintenance." min_wizard_trigger_potency = 3 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) /datum/round_event/radiation_storm @@ -14,6 +16,7 @@ start_when = 3 end_when = start_when + 1 announce_when = 1 + setup = TRUE /datum/round_event/radiation_storm/announce(fake) priority_announce("High levels of radiation detected near the station. Maintenance is best shielded from radiation.", "Anomaly Alert", ANNOUNCER_RADIATION) diff --git a/code/modules/events/sandstorm.dm b/code/modules/events/sandstorm.dm index 0288b32ec207..fc141315bb4b 100644 --- a/code/modules/events/sandstorm.dm +++ b/code/modules/events/sandstorm.dm @@ -19,6 +19,8 @@ max_wizard_trigger_potency = 7 admin_setup = list(/datum/event_admin_setup/listed_options/sandstorm) map_flags = EVENT_SPACE_ONLY + track = EVENT_TRACK_MODERATE + tags = list(TAG_DESTRUCTIVE) /datum/round_event/sandstorm start_when = 60 @@ -30,6 +32,7 @@ /datum/round_event/sandstorm/setup() start_when = rand(70, 90) end_when = rand(110, 140) + setup = TRUE /datum/round_event/sandstorm/announce(fake) if(!start_side) diff --git a/code/modules/events/scrubber_clog.dm b/code/modules/events/scrubber_clog.dm index 0bbb0801182a..7a332e67cf5d 100644 --- a/code/modules/events/scrubber_clog.dm +++ b/code/modules/events/scrubber_clog.dm @@ -6,6 +6,8 @@ earliest_start = 5 MINUTES category = EVENT_CATEGORY_JANITORIAL description = "Harmless mobs climb out of a scrubber." + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL) /datum/round_event/scrubber_clog announce_when = 10 @@ -40,6 +42,7 @@ end_when = rand(300, 600) maximum_spawns = rand(3, 5) spawn_delay = rand(10, 15) + setup = TRUE /datum/round_event/scrubber_clog/start() //Sets the scrubber up for unclogging/mob production. scrubber.clog() @@ -86,7 +89,7 @@ scrubber_list += scrubber return pick(scrubber_list) -/datum/round_event_control/scrubber_clog/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/scrubber_clog/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return diff --git a/code/modules/events/scrubber_overflow.dm b/code/modules/events/scrubber_overflow.dm index 897d07110317..353293a6e3df 100644 --- a/code/modules/events/scrubber_overflow.dm +++ b/code/modules/events/scrubber_overflow.dm @@ -7,6 +7,8 @@ category = EVENT_CATEGORY_JANITORIAL description = "The scrubbers release a tide of mostly harmless froth." admin_setup = list(/datum/event_admin_setup/listed_options/scrubber_overflow) + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL) /datum/round_event/scrubber_overflow announce_when = 1 @@ -84,8 +86,9 @@ if(!scrubbers.len) return kill() + setup = TRUE -/datum/round_event_control/scrubber_overflow/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/scrubber_overflow/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return diff --git a/code/modules/events/shuttle_catastrophe.dm b/code/modules/events/shuttle_catastrophe.dm index ed64c52a836a..9c8332cadebe 100644 --- a/code/modules/events/shuttle_catastrophe.dm +++ b/code/modules/events/shuttle_catastrophe.dm @@ -6,8 +6,10 @@ category = EVENT_CATEGORY_BUREAUCRATIC description = "Replaces the emergency shuttle with a random one." admin_setup = list(/datum/event_admin_setup/warn_admin/shuttle_catastrophe, /datum/event_admin_setup/listed_options/shuttle_catastrophe) + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) -/datum/round_event_control/shuttle_catastrophe/can_spawn_event(players, allow_magic = FALSE) +/datum/round_event_control/shuttle_catastrophe/can_spawn_event(players, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . @@ -46,6 +48,7 @@ if(!isnull(template.who_can_purchase) && template.credit_cost < INFINITY) //if we could get it from the communications console, it's cool for us to get it here valid_shuttle_templates += template new_shuttle = pick(valid_shuttle_templates) + setup = TRUE /datum/round_event/shuttle_catastrophe/start() if(SSshuttle.shuttle_insurance) diff --git a/code/modules/events/shuttle_insurance.dm b/code/modules/events/shuttle_insurance.dm index d1e39125e346..e3709f0308c5 100644 --- a/code/modules/events/shuttle_insurance.dm +++ b/code/modules/events/shuttle_insurance.dm @@ -6,8 +6,10 @@ max_occurrences = 1 category = EVENT_CATEGORY_BUREAUCRATIC description = "A sketchy but legit insurance offer." + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) -/datum/round_event_control/shuttle_insurance/can_spawn_event(players, allow_magic = FALSE) +/datum/round_event_control/shuttle_insurance/can_spawn_event(players, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . @@ -39,6 +41,7 @@ break if(!insurance_evaluation) insurance_evaluation = 5000 //gee i dunno + setup = TRUE /datum/round_event/shuttle_insurance/start() insurance_message = new("Shuttle Insurance", "Hey, pal, this is the [ship_name]. Can't help but notice you're rocking a wild and crazy shuttle there with NO INSURANCE! Crazy. What if something happened to it, huh?! We've done a quick evaluation on your rates in this sector and we're offering [insurance_evaluation] to cover for your shuttle in case of any disaster.", list("Purchase Insurance.","Reject Offer.")) diff --git a/code/modules/events/shuttle_loan/shuttle_loan_event.dm b/code/modules/events/shuttle_loan/shuttle_loan_event.dm index 96db32c044d6..ca593d3b8414 100644 --- a/code/modules/events/shuttle_loan/shuttle_loan_event.dm +++ b/code/modules/events/shuttle_loan/shuttle_loan_event.dm @@ -10,7 +10,7 @@ admin_setup = list(/datum/event_admin_setup/listed_options/shuttle_loan) var/list/run_situations = list() -/datum/round_event_control/shuttle_loan/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/shuttle_loan/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() for(var/datum/round_event/running_event in SSevents.running) if(istype(running_event, /datum/round_event/shuttle_loan)) //Make sure two of these don't happen at once. @@ -37,6 +37,7 @@ loan_control.run_situations.Add(situation) situation = new situation() + setup = TRUE /datum/round_event/shuttle_loan/announce(fake) priority_announce("Cargo: [situation.announcement_text]", situation.sender) diff --git a/code/modules/events/space_vines/vine_event.dm b/code/modules/events/space_vines/vine_event.dm index a668f036cac3..825244ad7f3b 100644 --- a/code/modules/events/space_vines/vine_event.dm +++ b/code/modules/events/space_vines/vine_event.dm @@ -14,6 +14,9 @@ /datum/event_admin_setup/input_number/spacevine_potency, /datum/event_admin_setup/input_number/spacevine_production, ) + track = EVENT_TRACK_MAJOR + tags = list(TAG_COMMUNAL, TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/spacevine fakeable = FALSE @@ -64,7 +67,7 @@ /datum/event_admin_setup/set_location/spacevine/apply_to_event(datum/round_event/spacevine/event) event.override_turf = chosen_turf - + /datum/event_admin_setup/multiple_choice/spacevine input_text = "Select starting mutations." min_choices = 0 @@ -88,7 +91,7 @@ type_choices += text2path(choice) event.mutations_overridden = TRUE event.override_mutations = type_choices - + /datum/event_admin_setup/input_number/spacevine_potency input_text = "Set vine's potency (effects mutation frequency + max severity)" max_value = 100 diff --git a/code/modules/events/spider_infestation.dm b/code/modules/events/spider_infestation.dm index 52ad7474694d..8a600da626ea 100644 --- a/code/modules/events/spider_infestation.dm +++ b/code/modules/events/spider_infestation.dm @@ -10,6 +10,8 @@ description = "Spawns spider eggs, ready to hatch." min_wizard_trigger_potency = 5 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_ROLESET + tags = list(TAG_COMBAT) /datum/round_event/spider_infestation announce_when = 400 @@ -17,6 +19,7 @@ /datum/round_event/spider_infestation/setup() announce_when = rand(announce_when, announce_when + 50) + setup = TRUE /datum/round_event/spider_infestation/announce(fake) priority_announce("Unidentified lifesigns detected coming aboard [station_name()]. Secure any exterior access, including ducting and ventilation.", "Lifesign Alert", ANNOUNCER_ALIENS) diff --git a/code/modules/events/stray_cargo.dm b/code/modules/events/stray_cargo.dm index e783f18ec025..b2ec87736f3b 100644 --- a/code/modules/events/stray_cargo.dm +++ b/code/modules/events/stray_cargo.dm @@ -8,6 +8,8 @@ category = EVENT_CATEGORY_BUREAUCRATIC description = "A pod containing a random supply crate lands on the station." admin_setup = list(/datum/event_admin_setup/set_location/stray_cargo, /datum/event_admin_setup/listed_options/stray_cargo) + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL) /datum/event_admin_setup/set_location/stray_cargo input_text = "Aim pod at turf we're on?" @@ -66,6 +68,7 @@ var/datum/supply_pack/pack_type = pack if(initial(pack_type.special)) stray_spawnable_supply_packs -= pack + setup = TRUE ///Spawns a random supply pack, puts it in a pod, and spawns it on a random tile of the selected area /datum/round_event/stray_cargo/start() diff --git a/code/modules/events/tram_malfunction.dm b/code/modules/events/tram_malfunction.dm index b5130a8c6934..698b88171d69 100644 --- a/code/modules/events/tram_malfunction.dm +++ b/code/modules/events/tram_malfunction.dm @@ -11,9 +11,11 @@ description = "Tram crossing signals malfunction, tram collision damage is increased." min_wizard_trigger_potency = 0 max_wizard_trigger_potency = 3 + track = EVENT_TRACK_MODERATE + tags = list(TAG_DESTRUCTIVE) //Check if there's a tram we can cause to malfunction. -/datum/round_event_control/tram_malfunction/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/tram_malfunction/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if (!.) return FALSE @@ -33,6 +35,7 @@ /datum/round_event/tram_malfunction/setup() end_when = rand(TRAM_MALFUNCTION_TIME_LOWER, TRAM_MALFUNCTION_TIME_UPPER) + setup = TRUE /datum/round_event/tram_malfunction/announce() priority_announce("Our automated control system has lost contact with the tram's on board computer. Please take extra care while we diagnose and resolve the issue. Signals and emergency braking may not be available during this time.", "CentCom Engineering Division") diff --git a/code/modules/events/wisdomcow.dm b/code/modules/events/wisdomcow.dm index 1ecd43797e58..7aa24b45a27f 100644 --- a/code/modules/events/wisdomcow.dm +++ b/code/modules/events/wisdomcow.dm @@ -10,6 +10,8 @@ /datum/event_admin_setup/listed_options/wisdom_cow, /datum/event_admin_setup/input_number/wisdom_cow, ) + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL, TAG_POSITIVE) /datum/round_event/wisdomcow ///Location override that, if set causes the cow to spawn in a pre-determined locaction instead of randomly. @@ -56,5 +58,5 @@ /datum/event_admin_setup/input_number/wisdom_cow/apply_to_event(datum/round_event/wisdomcow/event) event.selected_experience = chosen_value - - + + diff --git a/code/modules/events/wizard/embeddies.dm b/code/modules/events/wizard/embeddies.dm index ea8c5fd176bc..ee4f803699a6 100644 --- a/code/modules/events/wizard/embeddies.dm +++ b/code/modules/events/wizard/embeddies.dm @@ -9,7 +9,7 @@ max_wizard_trigger_potency = 7 ///behold... the only reason sticky is a subtype... -/datum/round_event_control/wizard/embedpocalypse/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/wizard/embedpocalypse/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . diff --git a/code/modules/events/wizard/identity_spoof.dm b/code/modules/events/wizard/identity_spoof.dm index dcd923c2776a..bdad88e9ab84 100644 --- a/code/modules/events/wizard/identity_spoof.dm +++ b/code/modules/events/wizard/identity_spoof.dm @@ -5,7 +5,7 @@ max_occurrences = 1 description = "Makes everyone dressed up like a wizard." -/datum/round_event_control/wizard/identity_spoof/can_spawn_event(players_amt, allow_magic = FALSE) +/datum/round_event_control/wizard/identity_spoof/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) return . diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index f80d432c8920..ee96155468c4 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -10,6 +10,8 @@ GLOBAL_LIST_EMPTY(all_wormholes) // So we can pick wormholes to teleport to description = "Space time anomalies appear on the station, randomly teleporting people who walk into them." min_wizard_trigger_potency = 3 max_wizard_trigger_potency = 7 + track = EVENT_TRACK_MODERATE + tags = list(TAG_COMMUNAL) /datum/round_event/wormholes announce_when = 10 @@ -23,6 +25,7 @@ GLOBAL_LIST_EMPTY(all_wormholes) // So we can pick wormholes to teleport to /datum/round_event/wormholes/setup() announce_when = rand(0, 20) end_when = rand(40, 80) + setup = TRUE /datum/round_event/wormholes/start() for(var/turf/open/floor/T in world) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 88468a7a7bc3..51c7ba004a50 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -175,9 +175,23 @@ copy_seed.desc = desc copy_seed.productdesc = productdesc - copy_seed.reagents_add = reagents_add.Copy() // Faster than grabbing the list from genes. + copy_seed.reagents_add = reagents_add.Copy() // Fastetr than grabbing the list from genes. copy_seed.harvest_age = harvest_age + copy_seed.species = species + copy_seed.icon_grow = icon_grow + copy_seed.icon_harvest = icon_harvest + copy_seed.icon_dead = icon_dead + copy_seed.growthstages = growthstages + copy_seed.growing_icon = growing_icon + copy_seed.seed_offset = seed_offset + copy_seed.traits_in_progress = traits_in_progress + + if(istype(src, /obj/item/seeds/spliced)) + var/obj/item/seeds/spliced/spliced_seed = src + var/obj/item/seeds/spliced/new_spliced_seed = copy_seed + new_spliced_seed.produce_list += spliced_seed.produce_list + return copy_seed /obj/item/seeds/proc/get_gene(typepath) diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index 6506195f1acb..9949cfccbc0a 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -163,7 +163,8 @@ GLOBAL_LIST_EMPTY(features_by_species) ///What gas does this species breathe? Used by suffocation screen alerts, most of actual gas breathing is handled by mutantlungs. See [life.dm][code/modules/mob/living/carbon/human/life.dm] var/breathid = "o2" - + ///are we a furry little guy? + var/uses_fur = FALSE ///What anim to use for dusting var/dust_anim = "dust-h" ///What anim to use for gibbing @@ -241,8 +242,6 @@ GLOBAL_LIST_EMPTY(features_by_species) ///A list containing outfits that will be overridden in the species_equip_outfit proc. [Key = Typepath passed in] [Value = Typepath of outfit you want to equip for this specific species instead]. var/list/outfit_override_registry = list() - ///are we furry little creatures - var/use_fur = FALSE ///health mod of a species var/maxhealthmod = 1 ///Path to BODYTYPE_CUSTOM species worn icons. An assoc list of ITEM_SLOT_X => /icon diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 1736ea531837..f893404cab6f 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -237,7 +237,7 @@ msg += "[t_He] look[p_s()] extremely disgusted.\n" var/apparent_blood_volume = blood_volume - if((dna.species.use_skintones || dna.species.use_fur)&& skin_tone == "albino") + if((dna.species.use_skintones)&& skin_tone == "albino") apparent_blood_volume -= 150 // enough to knock you down one tier switch(apparent_blood_volume) if(BLOOD_VOLUME_OKAY to BLOOD_VOLUME_SAFE) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 3da8ceb7a017..2fddba00e8b2 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -2610,11 +2610,12 @@ color = "#9A6750" //RGB: 154, 103, 80 taste_description = "inner peace" penetrates_skin = NONE + var/datum/disease/transformation/gondola_disease = /datum/disease/transformation/gondola /datum/reagent/gondola_mutation_toxin/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE, touch_protection = 0) . = ..() if((methods & (PATCH|INGEST|INJECT)) || ((methods & VAPOR) && prob(min(reac_volume,100)*(1 - touch_protection)))) - exposed_mob.ForceContractDisease(new /datum/disease/transformation/gondola(), FALSE, TRUE) + exposed_mob.ForceContractDisease(new gondola_disease, FALSE, TRUE) /datum/reagent/spider_extract diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 70eccdc78828..a9f22d0eb2d9 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -181,9 +181,6 @@ /obj/machinery/computer/emergency_shuttle/proc/increase_hijack_stage() var/obj/docking_port/mobile/emergency/shuttle = SSshuttle.emergency - // Begin loading this early, prevents a delay when the shuttle goes to land - INVOKE_ASYNC(SSmapping, TYPE_PROC_REF(/datum/controller/subsystem/mapping, lazy_load_template), LAZY_TEMPLATE_KEY_NUKIEBASE) - shuttle.hijack_status++ if(hijack_announce) announce_hijack_stage() @@ -548,7 +545,6 @@ var/destination_dock = "emergency_away" if(is_hijacked() || elimination_hijack()) // just double check - SSmapping.lazy_load_template(LAZY_TEMPLATE_KEY_NUKIEBASE) destination_dock = "emergency_syndicate" minor_announce("Corruption detected in \ shuttle navigation protocols. Please contact your \ diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 2eec7eb2285b..ca2cff40edb5 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -772,12 +772,12 @@ species_flags_list = owner_species.species_traits limb_gender = (human_owner.physique == MALE) ? "m" : "f" - if(owner_species.use_skintones || owner_species.use_fur) + if(owner_species.use_skintones) skin_tone = human_owner.skin_tone else skin_tone = "" - if(((MUTCOLORS in owner_species.species_traits) || (DYNCOLORS in owner_species.species_traits))) //Ethereal code. Motherfuckers. + if(((MUTCOLORS in owner_species.species_traits) || (DYNCOLORS in owner_species.species_traits) || (SPECIES_FUR in owner_species.species_traits))) //Ethereal code. Motherfuckers. if(owner_species.fixed_mut_color) species_color = owner_species.fixed_mut_color else diff --git a/code/modules/unit_tests/breath.dm b/code/modules/unit_tests/breath.dm index faba1a08e22e..8bd6e3ce9b3d 100644 --- a/code/modules/unit_tests/breath.dm +++ b/code/modules/unit_tests/breath.dm @@ -86,6 +86,8 @@ /datum/unit_test/breath/breath_sanity_ashwalker /datum/unit_test/breath/breath_sanity_ashwalker/Run() + if(SSmapping.config.map_name == "Oshan Station") + return var/mob/living/carbon/human/species/lizard/ashwalker/lab_rat = allocate(/mob/living/carbon/human/species/lizard/ashwalker) lab_rat.forceMove(run_loc_floor_bottom_left) var/turf/open/to_fill = run_loc_floor_bottom_left diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png index 079c292cb9bb..e7bea2e1bb64 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png differ diff --git a/config/events.json b/config/events.json new file mode 100644 index 000000000000..a30ccaf58ab5 --- /dev/null +++ b/config/events.json @@ -0,0 +1,13 @@ +{ + "/datum/round_event_control": + { + "weight" : 10, + "min_players" : 0, + "max_occurrences" : 100, + "earliest_start" : 20, + "track" : "Moderate", + "cost" : 1, + "reoccurence_penalty_multiplier" : 1, + "shared_occurence_type" : null + } +} diff --git a/config/game_options.txt b/config/game_options.txt index ce6d491a57af..94e6203385ca 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -540,3 +540,50 @@ MAXFINE 2000 METACURRENCY_NAME Metacoin TWITCH_KEY mrhouse + +## Gamemode configurations + +## Multipliers for points gained over time for event tracks. +MUNDANE_POINT_GAIN_MULTIPLIER 1 +MODERATE_POINT_GAIN_MULTIPLIER 1 +MAJOR_POINT_GAIN_MULTIPLIER 1 +ROLESET_POINT_GAIN_MULTIPLIER 1 +OBJECTIVES_POINT_GAIN_MULTIPLIER 1 + +## Multipliers for points to spend on roundstart events. +MUNDANE_ROUNDSTART_POINT_MULTIPLIER 1 +MODERATE_ROUNDSTART_POINT_MULTIPLIER 1 +MAJOR_ROUNDSTART_POINT_MULTIPLIER 1 +ROLESET_ROUNDSTART_POINT_MULTIPLIER 1 +OBJECTIVES_ROUNDSTART_POINT_MULTIPLIER 1 + +## Minimum population caps for event tracks to run their events. +MUNDANE_MIN_POP 0 +MODERATE_MIN_POP 0 +MAJOR_MIN_POP 0 +ROLESET_MIN_POP 0 +OBJECTIVES_MIN_POP 0 + +## Point thresholds for tracks to run events. The lesser the more frequent events will be. +MUNDANE_POINT_THRESHOLD 25 +MODERATE_POINT_THRESHOLD 50 +MAJOR_POINT_THRESHOLD 90 +ROLESET_POINT_THRESHOLD 120 +OBJECTIVES_POINT_THRESHOLD 130 + +## Allows the storyteller to scale event frequencies based on population +ALLOW_STORYTELLER_POP_SCALING + +## Thresholds that population frequency scalling penalize up to. +MUNDANE_POP_SCALE_THRESHOLD 10 +MODERATE_POP_SCALE_THRESHOLD 15 +MAJOR_POP_SCALE_THRESHOLD 40 +ROLESET_POP_SCALE_THRESHOLD 45 +OBJECTIVES_POP_SCALE_THRESHOLD 40 + +## The maximum penalties population scalling will apply to the tracks for having less pop than POP_SCALE_THRESHOLD. This is treated as percentages +MUNDANE_POP_SCALE_PENALTY 30 +MODERATE_POP_SCALE_PENALTY 30 +MAJOR_POP_SCALE_PENALTY 30 +ROLESET_POP_SCALE_PENALTY 30 +OBJECTIVES_POP_SCALE_PENALTY 30 diff --git a/goon/icons/obj/food.dmi b/goon/icons/obj/food.dmi new file mode 100644 index 000000000000..c8ca42d14f49 Binary files /dev/null and b/goon/icons/obj/food.dmi differ diff --git a/monkestation/code/__HELPERS/mobs.dm b/monkestation/code/__HELPERS/mobs.dm deleted file mode 100644 index cf7a6bba7065..000000000000 --- a/monkestation/code/__HELPERS/mobs.dm +++ /dev/null @@ -1,19 +0,0 @@ -GLOBAL_LIST_INIT(fur_tone_names, list( - "ffffff" = "Albino", - "ffb089" = "Chimp", - "aeafb3" = "Grey", - "bfd0ca" = "Snow", - "ce7d54" = "Orange", - "c47373" = "Red", - "f4e2d5" = "Cream" - )) - -GLOBAL_LIST_INIT(fur_tones, sort_list(list( - "ffffff", - "ffb089", - "aeafb3", - "bfd0ca", - "ce7d54", - "c47373", - "f4e2d5", - ))) diff --git a/monkestation/code/modules/antagonists/florida_man/florida_events.dm b/monkestation/code/modules/antagonists/florida_man/florida_events.dm index aa63c44d3cda..1055348961ea 100644 --- a/monkestation/code/modules/antagonists/florida_man/florida_events.dm +++ b/monkestation/code/modules/antagonists/florida_man/florida_events.dm @@ -3,6 +3,9 @@ typepath = /datum/round_event/ghost_role/florida_man weight = 14 max_occurrences = 3 + track = EVENT_TRACK_MUNDANE + tags = list(TAG_COMMUNAL, TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/florida_man minimum_required = 1 diff --git a/monkestation/code/modules/client/preferences/species_features/simians.dm b/monkestation/code/modules/client/preferences/species_features/simians.dm index 2c131cd44835..a4f27e181827 100644 --- a/monkestation/code/modules/client/preferences/species_features/simians.dm +++ b/monkestation/code/modules/client/preferences/species_features/simians.dm @@ -1,39 +1,14 @@ -/datum/preference/choiced/fur_color +/datum/preference/color/fur_color category = PREFERENCE_CATEGORY_SECONDARY_FEATURES savefile_identifier = PREFERENCE_CHARACTER savefile_key = "fur" + relevant_species_trait = SPECIES_FUR -/datum/preference/choiced/fur_color/init_possible_values() - return GLOB.fur_tones - -/datum/preference/choiced/fur_color/compile_constant_data() - var/list/data = ..() - - data[CHOICED_PREFERENCE_DISPLAY_NAMES] = GLOB.fur_tone_names - - var/list/to_hex = list() - for (var/choice in get_choices()) - var/list/hsl = rgb2num("#[choice]", COLORSPACE_HSL) - - to_hex[choice] = list( - "lightness" = hsl[3], - "value" = "#[choice]", - ) - - data["to_hex"] = to_hex - - return data - -/datum/preference/choiced/fur_color/apply_to_human(mob/living/carbon/human/target, value) - if(target.dna.species.use_fur) - target.skin_tone = value - -/datum/preference/choiced/fur_color/is_accessible(datum/preferences/preferences) - if (!..(preferences)) - return FALSE - - var/datum/species/species_type = preferences.read_preference(/datum/preference/choiced/species) - return initial(species_type.use_fur) +/datum/preference/color/fur_color/apply_to_human(mob/living/carbon/human/target, value) + var/mob/user = usr + var/datum/species/species_type = user?.client.prefs.read_preference(/datum/preference/choiced/species) + if(initial(species_type.uses_fur)) + target.dna.features["mcolor"] = value /datum/preference/choiced/simian_tail savefile_key = "feature_tail_monkey" diff --git a/monkestation/code/modules/loadouts/items/under/under.dm b/monkestation/code/modules/loadouts/items/under/under.dm index e3cc7646ab7a..a8b52d2c1f44 100644 --- a/monkestation/code/modules/loadouts/items/under/under.dm +++ b/monkestation/code/modules/loadouts/items/under/under.dm @@ -477,3 +477,7 @@ GLOBAL_LIST_INIT(loadout_miscunders, generate_loadout_items(/datum/loadout_item/ /datum/loadout_item/under/donator donator_only = TRUE requires_purchase = FALSE + +/datum/loadout_item/under/miscellaneous/shrine + name = "Shrine Priestess Kimono" + item_path = /obj/item/clothing/under/dress/shrine_priestess diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm index 41a83238d5c8..5f4a06feda33 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm @@ -8,7 +8,8 @@ species_traits = list( EYECOLOR, LIPS, - NO_UNDERWEAR + NO_UNDERWEAR, + SPECIES_FUR, ) inherent_traits = list( TRAIT_VAULTING, @@ -17,7 +18,6 @@ ) use_skintones = FALSE - use_fur = TRUE inherent_biotypes = list( MOB_ORGANIC, @@ -30,6 +30,7 @@ skinned_type = /obj/item/stack/sheet/animalhide/monkey disliked_food = GROSS liked_food = FRUIT | MEAT + uses_fur = TRUE //deathsound = 'monkestation/sound/voice/simian/deathsound.ogg' species_language_holder = /datum/language_holder/monkey maxhealthmod = 0.85 //small = weak diff --git a/monkestation/code/modules/new_antagonists/slasher/ghost_role.dm b/monkestation/code/modules/new_antagonists/slasher/ghost_role.dm index 216e9d103eaf..a10fe8c00c5c 100644 --- a/monkestation/code/modules/new_antagonists/slasher/ghost_role.dm +++ b/monkestation/code/modules/new_antagonists/slasher/ghost_role.dm @@ -1,8 +1,11 @@ /datum/round_event_control/slasher name = "Slasher" typepath = /datum/round_event/ghost_role/slasher - weight = 0 // for now - max_occurrences = 3 + weight = 14 // for now + max_occurrences = 2 + track = EVENT_TRACK_MODERATE + tags = list(TAG_SPOOKY, TAG_COMBAT) + checks_antag_cap = TRUE /datum/round_event/ghost_role/slasher minimum_required = 1 diff --git a/monkestation/code/modules/new_antagonists/slasher/slasher_datum.dm b/monkestation/code/modules/new_antagonists/slasher/slasher_datum.dm index 103f96f82d2d..66f5d4a77a7d 100644 --- a/monkestation/code/modules/new_antagonists/slasher/slasher_datum.dm +++ b/monkestation/code/modules/new_antagonists/slasher/slasher_datum.dm @@ -154,9 +154,6 @@ if(linked_machette) linked_machette.force += 2.5 linked_machette.throwforce += 2.5 - if(owner.current.team_monitor.tracking[stalked_human.tracking_beacon]) - qdel(owner.current.team_monitor.tracking[stalked_human.tracking_beacon]) - qdel(stalked_human.tracking_beacon) stalked_human = null /datum/antagonist/slasher/proc/failed_stalking() @@ -164,7 +161,4 @@ if(linked_machette) linked_machette.force -= 5 linked_machette.throwforce -= 5 - if(owner.current.team_monitor.tracking[stalked_human.tracking_beacon]) - qdel(owner.current.team_monitor.tracking[stalked_human.tracking_beacon]) - qdel(stalked_human.tracking_beacon) stalked_human = null diff --git a/monkestation/code/modules/storytellers/config.dm b/monkestation/code/modules/storytellers/config.dm new file mode 100644 index 000000000000..121a512099d1 --- /dev/null +++ b/monkestation/code/modules/storytellers/config.dm @@ -0,0 +1,149 @@ +///Gamemode related configs below +// Point Gain Multipliers +/datum/config_entry/number/mundane_point_gain_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/moderate_point_gain_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/major_point_gain_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/roleset_point_gain_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/objectives_point_gain_multiplier + config_entry_value = 1 + min_val = 0 + +// Roundstart points Multipliers +/datum/config_entry/number/mundane_roundstart_point_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/moderate_roundstart_point_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/major_roundstart_point_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/roleset_roundstart_point_multiplier + config_entry_value = 1 + min_val = 0 + +/datum/config_entry/number/objectives_roundstart_point_multiplier + config_entry_value = 1 + min_val = 0 + +// Minimum population +/datum/config_entry/number/mundane_min_pop + config_entry_value = MUNDANE_MIN_POP + integer = TRUE + min_val = 0 + +/datum/config_entry/number/moderate_min_pop + config_entry_value = MODERATE_MIN_POP + integer = TRUE + min_val = 0 + +/datum/config_entry/number/major_min_pop + config_entry_value = MAJOR_MIN_POP + integer = TRUE + min_val = 0 + +/datum/config_entry/number/roleset_min_pop + config_entry_value = ROLESET_MIN_POP + integer = TRUE + min_val = 0 + +/datum/config_entry/number/objectives_min_pop + config_entry_value = OBJECTIVES_MIN_POP + integer = TRUE + min_val = 0 + +// Point Thresholds +/datum/config_entry/number/mundane_point_threshold + config_entry_value = MUNDANE_POINT_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/moderate_point_threshold + config_entry_value = MODERATE_POINT_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/major_point_threshold + config_entry_value = MAJOR_POINT_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/roleset_point_threshold + config_entry_value = ROLESET_POINT_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/objectives_point_threshold + config_entry_value = OBJECTIVES_POINT_THRESHOLD + integer = TRUE + min_val = 0 + + +/datum/config_entry/flag/allow_storyteller_pop_scaling // Allows storyteller to scale down the event frequency by population + +// Pop scalling thresholds +/datum/config_entry/number/mundane_pop_scale_threshold + config_entry_value = MUNDANE_POP_SCALE_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/moderate_pop_scale_threshold + config_entry_value = MODERATE_POP_SCALE_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/major_pop_scale_threshold + config_entry_value = MAJOR_POP_SCALE_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/roleset_pop_scale_threshold + config_entry_value = ROLESET_POP_SCALE_THRESHOLD + integer = TRUE + min_val = 0 + +/datum/config_entry/number/objectives_pop_scale_threshold + config_entry_value = OBJECTIVES_POP_SCALE_THRESHOLD + integer = TRUE + min_val = 0 + +// Pop scalling penalties +/datum/config_entry/number/mundane_pop_scale_penalty + config_entry_value = MUNDANE_POP_SCALE_PENALTY + integer = TRUE + min_val = 0 + +/datum/config_entry/number/moderate_pop_scale_penalty + config_entry_value = MODERATE_POP_SCALE_PENALTY + integer = TRUE + min_val = 0 + +/datum/config_entry/number/major_pop_scale_penalty + config_entry_value = MAJOR_POP_SCALE_PENALTY + integer = TRUE + min_val = 0 + +/datum/config_entry/number/roleset_pop_scale_penalty + config_entry_value = ROLESET_POP_SCALE_PENALTY + integer = TRUE + min_val = 0 + +/datum/config_entry/number/objectives_pop_scale_penalty + config_entry_value = OBJECTIVES_POP_SCALE_PENALTY + integer = TRUE + min_val = 0 diff --git a/monkestation/code/modules/storytellers/converted_events/_base_event.dm b/monkestation/code/modules/storytellers/converted_events/_base_event.dm new file mode 100644 index 000000000000..8f896a2e74cf --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/_base_event.dm @@ -0,0 +1,250 @@ +/datum/round_event_control + ///do we check against the antag cap before attempting a spawn? + var/checks_antag_cap = FALSE + /// List of enemy roles, will check if x amount of these exist exist + var/list/enemy_roles + ///required number of enemies in roles to exist + var/required_enemies = 0 + +/datum/round_event_control/proc/return_failure_string(players_amt) + var/string + if(roundstart && (world.time-SSticker.round_start_time >= 2 MINUTES)) + string += "Roundstart" + if(occurrences >= max_occurrences) + if(string) + string += "," + string += "Cap Reached" + if(earliest_start >= world.time-SSticker.round_start_time) + if(string) + string += "," + string +="Too Soon" + if(players_amt < min_players) + if(string) + string += "," + string += "Lack of players" + if(holidayID && !check_holidays(holidayID)) + if(string) + string += "," + string += "Holiday Event" + if(EMERGENCY_ESCAPED_OR_ENDGAMED) + if(string) + string += "," + string += "Round End" + if(checks_antag_cap) + if(!roundstart && !SSgamemode.can_inject_antags()) + if(string) + string += "," + string += "Too Many Antags" + return string + +/datum/round_event_control/antagonist/return_failure_string(players_amt) + . =..() + if(!check_enemies()) + if(.) + . += ", " + . += "No Enemies" + if(!check_required()) + if(.) + . += ", " + . += "No Required" + return . + +/datum/round_event_control/antagonist/solo/return_failure_string(players_amt) + . =..() + + var/antag_amt = get_antag_amount() + var/list/candidates = get_candidates() + if(candidates.len < antag_amt) + if(.) + . += ", " + . += "Not Enough Candidates!" + + return . + +/datum/round_event_control/antagonist + checks_antag_cap = TRUE + track = EVENT_TRACK_ROLESET + ///list of required roles, needed for this to form + var/list/exclusive_roles + /// Protected roles from the antag roll. People will not get those roles if a config is enabled + var/list/protected_roles + /// Restricted roles from the antag roll + var/list/restricted_roles + +/datum/round_event_control/antagonist/proc/check_required() + if(!length(exclusive_roles)) + return TRUE + for (var/mob/M in GLOB.alive_player_list) + if (M.stat == DEAD) + continue // Dead players cannot count as passing requirements + if(M.mind && (M.mind.assigned_role.title in exclusive_roles)) + return TRUE + +/datum/round_event_control/antagonist/proc/trim_candidates(list/candidates) + return candidates + +/datum/round_event_control/proc/check_enemies() + if(!length(enemy_roles)) + return TRUE + var/job_check = 0 + for (var/mob/M in GLOB.alive_player_list) + if (M.stat == DEAD) + continue // Dead players cannot count as opponents + if (M.mind && (M.mind.assigned_role.title in enemy_roles)) + job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it + + if(job_check >= required_enemies) + return TRUE + return FALSE + +/datum/round_event_control/antagonist/New() + . = ..() + if(CONFIG_GET(flag/protect_roles_from_antagonist)) + restricted_roles |= protected_roles + +/datum/round_event_control/antagonist/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) + . = ..() + if(!check_required()) + return FALSE + + if(!.) + return + +/datum/round_event_control/antagonist/solo + typepath = /datum/round_event/antagonist/solo + /// How many baseline antags do we spawn + var/base_antags = 1 + /// How many maximum antags can we spawn + var/maximum_antags = 3 + /// For this many players we'll add 1 up to the maximum antag amount + var/denominator = 20 + /// The antag flag to be used + var/antag_flag + /// The antag datum to be applied + var/antag_datum + /// Prompt players for consent to turn them into antags before doing so. Dont allow this for roundstart. + var/prompted_picking = FALSE + +/datum/round_event_control/antagonist/solo/from_ghosts/get_candidates() + var/round_started = SSticker.HasRoundStarted() + var/midround_antag_pref_arg = round_started ? FALSE : TRUE + + var/list/candidates = SSgamemode.get_candidates(antag_flag, antag_flag, observers = TRUE, midround_antag_pref = midround_antag_pref_arg, restricted_roles = restricted_roles) + candidates = trim_candidates(candidates) + return candidates + +/datum/round_event_control/antagonist/solo/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) + . = ..() + if(!.) + return + var/antag_amt = get_antag_amount() + var/list/candidates = get_candidates() + if(candidates.len < antag_amt) + return FALSE + +/datum/round_event_control/antagonist/solo/proc/get_antag_amount() + var/people = SSgamemode.get_correct_popcount() + var/amount = base_antags + FLOOR(people / denominator, 1) + return min(amount, maximum_antags) + +/datum/round_event_control/antagonist/solo/proc/get_candidates() + var/round_started = SSticker.HasRoundStarted() + var/new_players_arg = round_started ? FALSE : TRUE + var/living_players_arg = round_started ? TRUE : FALSE + var/midround_antag_pref_arg = round_started ? FALSE : TRUE + + var/list/candidates = SSgamemode.get_candidates(antag_flag, antag_flag, ready_newplayers = new_players_arg, living_players = living_players_arg, midround_antag_pref = midround_antag_pref_arg, restricted_roles = restricted_roles) + candidates = trim_candidates(candidates) + return candidates + +/datum/round_event + var/excute_round_end_reports = FALSE + +/datum/round_event/proc/round_end_report() + return + +/datum/round_event/setup() + . = ..() + if(excute_round_end_reports) + SSgamemode.round_end_data |= src + +/datum/round_event/antagonist + fakeable = FALSE + end_when = 60 //This is so prompted picking events have time to run //TODO: refactor events so they can be the masters of themselves, instead of relying on some weirdly timed vars + +/datum/round_event/antagonist/solo + // ALL of those variables are internal. Check the control event to change them + /// The antag flag passed from control + var/antag_flag + /// The antag datum passed from control + var/antag_datum + /// The antag count passed from control + var/antag_count + /// The restricted roles (jobs) passed from control + var/list/restricted_roles + /// The minds we've setup in setup() and need to finalize in start() + var/list/setup_minds = list() + /// Whether we prompt the players before picking them. + var/prompted_picking = FALSE //TODO: Implement this + +/datum/round_event/antagonist/solo/setup() + var/datum/round_event_control/antagonist/solo/cast_control = control + antag_count = cast_control.get_antag_amount() + antag_flag = cast_control.antag_flag + antag_datum = cast_control.antag_datum + restricted_roles = cast_control.restricted_roles + prompted_picking = cast_control.prompted_picking + var/list/candidates = cast_control.get_candidates() + if(prompted_picking) + candidates = poll_candidates("Would you like to be a [cast_control.name]", antag_flag, antag_flag, 20 SECONDS, FALSE, FALSE, candidates) + + for(var/i in 1 to antag_count) + if(!candidates.len) + break + var/mob/candidate = pick_n_take(candidates) + if(!candidate.mind) + candidate.mind = new /datum/mind(candidate.key) + + setup_minds += candidate.mind + candidate.mind.special_role = antag_flag + candidate.mind.restricted_roles = restricted_roles + setup = TRUE + + +/datum/round_event/antagonist/solo/ghost/setup() + var/datum/round_event_control/antagonist/solo/cast_control = control + antag_count = cast_control.get_antag_amount() + antag_flag = cast_control.antag_flag + antag_datum = cast_control.antag_datum + restricted_roles = cast_control.restricted_roles + prompted_picking = cast_control.prompted_picking + var/list/candidates = cast_control.get_candidates() + if(prompted_picking) + candidates = poll_candidates("Would you like to be a [cast_control.name]", antag_flag, antag_flag, 20 SECONDS, FALSE, FALSE, candidates) + + for(var/i in 1 to antag_count) + if(!candidates.len) + break + var/mob/candidate = pick_n_take(candidates) + if(!candidate.mind) + candidate.mind = new /datum/mind(candidate.key) + + setup_minds += candidate.mind + var/mob/living/carbon/human/new_human = make_body(candidate) + candidate.mind.set_current(new_human) + candidate.mind.special_role = antag_flag + candidate.mind.restricted_roles = restricted_roles + setup = TRUE + + +/datum/round_event/antagonist/solo/start() + for(var/datum/mind/antag_mind as anything in setup_minds) + add_datum_to_mind(antag_mind, antag_mind.current) + +/datum/round_event/antagonist/solo/proc/add_datum_to_mind(datum/mind/antag_mind) + antag_mind.add_antag_datum(antag_datum) + +/datum/round_event/antagonist/solo/ghost/start() + for(var/datum/mind/antag_mind as anything in setup_minds) + add_datum_to_mind(antag_mind) + diff --git a/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm b/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm new file mode 100644 index 000000000000..f76463ae9e06 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm @@ -0,0 +1,75 @@ +/datum/round_event_control/antagonist/solo/bloodcult + name = "Blood Cult" + tags = list(TAG_SPOOKY, TAG_DESTRUCTIVE, TAG_COMBAT, TAG_TEAM_ANTAG) + antag_flag = ROLE_CULTIST + antag_datum = /datum/antagonist/cult + typepath = /datum/round_event/antagonist/solo/bloodcult + restricted_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_CHAPLAIN, + JOB_CYBORG, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + maximum_antags = 3 + enemy_roles = list( + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + required_enemies = 5 + base_antags = 2 + // I give up, just there should be enough heads with 35 players... + min_players = 30 + roundstart = TRUE + earliest_start = 0 SECONDS + weight = 4 + max_occurrences = 3 + +/datum/round_event/antagonist/solo/bloodcult + excute_round_end_reports = TRUE + end_when = 60000 + var/static/datum/team/cult/main_cult + +/datum/round_event/antagonist/solo/bloodcult/setup() + . = ..() + if(!main_cult) + main_cult = new() + +/datum/round_event/antagonist/solo/bloodcult/start() + . = ..() + main_cult.setup_objectives() + +/datum/round_event/antagonist/solo/bloodcult/add_datum_to_mind(datum/mind/antag_mind) + var/datum/antagonist/cult/new_cultist = new antag_datum() + new_cultist.cult_team = main_cult + new_cultist.give_equipment = TRUE + antag_mind.add_antag_datum(new_cultist) + +/datum/round_event/antagonist/solo/bloodcult/round_end_report() + if(main_cult.check_cult_victory()) + SSticker.mode_result = "win - cult win" + SSticker.news_report = CULT_SUMMON + return + + SSticker.mode_result = "loss - staff stopped the cult" + + if(main_cult.size_at_maximum == 0) + CRASH("Cult team existed with a size_at_maximum of 0 at round end!") + + // If more than a certain ratio of our cultists have escaped, give the "cult escape" resport. + // Otherwise, give the "cult failure" report. + var/ratio_to_be_considered_escaped = 0.5 + var/escaped_cultists = 0 + for(var/datum/mind/escapee as anything in main_cult.members) + if(considered_escaped(escapee)) + escaped_cultists++ + + SSticker.news_report = (escaped_cultists / main_cult.size_at_maximum) >= ratio_to_be_considered_escaped ? CULT_ESCAPE : CULT_FAILURE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm b/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm new file mode 100644 index 000000000000..b1d19ed354f5 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/bloodsuckers.dm @@ -0,0 +1,39 @@ +/datum/round_event_control/antagonist/solo/bloodsucker + antag_flag = ROLE_BLOODSUCKER + tags = list(TAG_COMBAT) + antag_datum = /datum/antagonist/bloodsucker + protected_roles = list( + JOB_CAPTAIN, + JOB_HEAD_OF_PERSONNEL, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_RESEARCH_DIRECTOR, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + restricted_roles = list( + JOB_AI, + JOB_CYBORG, + ) + min_players = 20 + weight = 5 + maximum_antags = 2 + +/datum/round_event_control/antagonist/solo/bloodsucker/roundstart + name = "Bloodsuckers" + roundstart = TRUE + earliest_start = 0 SECONDS + +/datum/round_event_control/antagonist/solo/bloodsucker/midround + typepath = /datum/round_event/antagonist/solo/bloodsucker + antag_flag = ROLE_VAMPIRICACCIDENT + name = "Vampiric Accident" + prompted_picking = TRUE + max_occurrences = 1 + +/datum/round_event/antagonist/solo/bloodsucker/add_datum_to_mind(datum/mind/antag_mind) + var/datum/antagonist/bloodsucker/bloodsuckerdatum = antag_mind.make_bloodsucker() + bloodsuckerdatum.bloodsucker_level_unspent = rand(2,3) diff --git a/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm b/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm new file mode 100644 index 000000000000..0171f36d42ae --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/changeling.dm @@ -0,0 +1,30 @@ +/datum/round_event_control/antagonist/solo/changeling + antag_flag = ROLE_CHANGELING + tags = list(TAG_COMBAT) + antag_datum = /datum/antagonist/changeling + protected_roles = list( + JOB_CAPTAIN, + JOB_HEAD_OF_PERSONNEL, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_RESEARCH_DIRECTOR, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + restricted_roles = list( + JOB_AI, + JOB_CYBORG, + ) + min_players = 20 + +/datum/round_event_control/antagonist/solo/changeling/roundstart + name = "Changelings" + roundstart = TRUE + earliest_start = 0 + +/datum/round_event_control/antagonist/solo/changeling/midround + name = "Genome Awakening (Changelings)" + prompted_picking = TRUE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm b/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm new file mode 100644 index 000000000000..e19bd8f800f3 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm @@ -0,0 +1,46 @@ +/datum/round_event_control/antagonist/solo/clockcult + name = "Clock Cult" + tags = list(TAG_SPOOKY, TAG_DESTRUCTIVE, TAG_COMBAT, TAG_TEAM_ANTAG) + antag_flag = ROLE_CLOCK_CULTIST + antag_datum = /datum/antagonist/clock_cultist + typepath = /datum/round_event/antagonist/solo/clockcult + restricted_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_CHAPLAIN, + JOB_CYBORG, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + maximum_antags = 3 + enemy_roles = list( + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + required_enemies = 3 + base_antags = 4 + maximum_antags = 4 + // I give up, just there should be enough heads with 35 players... + min_players = 30 + roundstart = TRUE + earliest_start = 0 SECONDS + weight = 4 + max_occurrences = 3 + +/datum/round_event/antagonist/solo/clockcult + end_when = 60000 + +/datum/round_event/antagonist/solo/clockcult/setup() + . = ..() + INVOKE_ASYNC(GLOBAL_PROC, GLOBAL_PROC_REF(spawn_reebe)) + +/datum/round_event/antagonist/solo/clockcult/add_datum_to_mind(datum/mind/antag_mind) + antag_mind.special_role = ROLE_CLOCK_CULTIST + antag_mind.add_antag_datum(antag_datum) diff --git a/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm b/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm new file mode 100644 index 000000000000..03d1866b32f4 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/clown_operative.dm @@ -0,0 +1,116 @@ +/datum/round_event_control/antagonist/solo/clown_operative + name = "Roundstart Clown Operative" + tags = list(TAG_DESTRUCTIVE, TAG_COMBAT, TAG_TEAM_ANTAG) + antag_flag = ROLE_CLOWN_OPERATIVE + antag_datum = /datum/antagonist/nukeop/clownop + typepath = /datum/round_event/antagonist/solo/clown_operative + restricted_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_CYBORG, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_RESEARCH_DIRECTOR, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + base_antags = 3 + maximum_antags = 5 + enemy_roles = list( + JOB_AI, + JOB_CYBORG, + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + required_enemies = 5 + // I give up, just there should be enough heads with 35 players... + min_players = 35 + roundstart = TRUE + earliest_start = 0 SECONDS + weight = 4 + max_occurrences = 1 + +/datum/round_event/antagonist/solo/clown_operative + excute_round_end_reports = TRUE + end_when = 60000 /// we will end on our own when revs win + var/static/datum/team/nuclear/nuke_team + var/datum/antagonist/antag_leader_datum = /datum/antagonist/nukeop/leader + var/set_leader = FALSE + var/required_role = ROLE_CLOWN_OPERATIVE + +/datum/round_event/antagonist/solo/clown_operative/setup() + . = ..() + var/obj/machinery/nuclearbomb/syndicate/syndicate_nuke = locate() in GLOB.nuke_list + if(syndicate_nuke) + var/turf/nuke_turf = get_turf(syndicate_nuke) + if(nuke_turf) + new /obj/machinery/nuclearbomb/syndicate/bananium(nuke_turf) + qdel(syndicate_nuke) + +/datum/round_event/antagonist/solo/clown_operative/add_datum_to_mind(datum/mind/antag_mind) + var/mob/living/current_mob = antag_mind.current + SSjob.FreeRole(antag_mind.assigned_role.title) + var/list/items = current_mob.get_equipped_items(TRUE) + current_mob.unequip_everything() + for(var/obj/item/item as anything in items) + qdel(item) + + antag_mind.set_assigned_role(SSjob.GetJobType(/datum/job/clown_operative)) + antag_mind.special_role = ROLE_CLOWN_OPERATIVE + + var/datum/mind/most_experienced = get_most_experienced(setup_minds, required_role) + if(!most_experienced) + most_experienced = antag_mind + + if(!set_leader) + set_leader = TRUE + var/datum/antagonist/nukeop/leader/leader = most_experienced.add_antag_datum(antag_leader_datum) + nuke_team = leader.nuke_team + + if(antag_mind == most_experienced) + return + + var/datum/antagonist/nukeop/new_op = new antag_datum() + antag_mind.add_antag_datum(new_op) + + +/datum/round_event/antagonist/solo/clown_operative/round_end_report() + var/result = nuke_team.get_result() + switch(result) + if(NUKE_RESULT_FLUKE) + SSticker.mode_result = "loss - syndicate nuked - disk secured" + SSticker.news_report = NUKE_SYNDICATE_BASE + if(NUKE_RESULT_NUKE_WIN) + SSticker.mode_result = "win - syndicate nuke" + SSticker.news_report = STATION_DESTROYED_NUKE + if(NUKE_RESULT_NOSURVIVORS) + SSticker.mode_result = "halfwin - syndicate nuke - did not evacuate in time" + SSticker.news_report = STATION_DESTROYED_NUKE + if(NUKE_RESULT_WRONG_STATION) + SSticker.mode_result = "halfwin - blew wrong station" + SSticker.news_report = NUKE_MISS + if(NUKE_RESULT_WRONG_STATION_DEAD) + SSticker.mode_result = "halfwin - blew wrong station - did not evacuate in time" + SSticker.news_report = NUKE_MISS + if(NUKE_RESULT_CREW_WIN_SYNDIES_DEAD) + SSticker.mode_result = "loss - evacuation - disk secured - syndi team dead" + SSticker.news_report = OPERATIVES_KILLED + if(NUKE_RESULT_CREW_WIN) + SSticker.mode_result = "loss - evacuation - disk secured" + SSticker.news_report = OPERATIVES_KILLED + if(NUKE_RESULT_DISK_LOST) + SSticker.mode_result = "halfwin - evacuation - disk not secured" + SSticker.news_report = OPERATIVE_SKIRMISH + if(NUKE_RESULT_DISK_STOLEN) + SSticker.mode_result = "halfwin - detonation averted" + SSticker.news_report = OPERATIVE_SKIRMISH + else + SSticker.mode_result = "halfwin - interrupted" + SSticker.news_report = OPERATIVE_SKIRMISH diff --git a/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm b/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm new file mode 100644 index 000000000000..90dfba4182be --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/ghosts/nuclear_operative_ghost.dm @@ -0,0 +1,103 @@ +/datum/round_event_control/antagonist/solo/from_ghosts/nuclear_operative + name = "Nuclear Assault" + tags = list(TAG_DESTRUCTIVE, TAG_COMBAT, TAG_TEAM_ANTAG) + antag_flag = ROLE_OPERATIVE_MIDROUND + antag_datum = /datum/antagonist/nukeop + typepath = /datum/round_event/antagonist/solo/ghost/nuclear_operative + restricted_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_CYBORG, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_RESEARCH_DIRECTOR, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + base_antags = 3 + maximum_antags = 4 + enemy_roles = list( + JOB_AI, + JOB_CYBORG, + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + required_enemies = 5 + // I give up, just there should be enough heads with 35 players... + min_players = 35 + roundstart = TRUE + earliest_start = 45 MINUTES + weight = 4 + max_occurrences = 1 + +/datum/round_event/antagonist/solo/ghost/nuclear_operative + excute_round_end_reports = TRUE + end_when = 60000 /// we will end on our own when revs win + var/static/datum/team/nuclear/nuke_team + var/datum/antagonist/antag_leader_datum = /datum/antagonist/nukeop/leader + var/set_leader = FALSE + var/required_role = ROLE_NUCLEAR_OPERATIVE + +/datum/round_event/antagonist/solo/ghost/nuclear_operative/add_datum_to_mind(datum/mind/antag_mind) + var/mob/living/current_mob = antag_mind.current + var/list/items = current_mob.get_equipped_items(TRUE) + current_mob.unequip_everything() + for(var/obj/item/item as anything in items) + qdel(item) + + var/datum/mind/most_experienced = get_most_experienced(setup_minds, required_role) + if(!most_experienced) + most_experienced = antag_mind + + if(!set_leader) + set_leader = TRUE + var/datum/antagonist/nukeop/leader/leader = most_experienced.add_antag_datum(antag_leader_datum) + nuke_team = leader.nuke_team + + if(antag_mind == most_experienced) + return + + var/datum/antagonist/nukeop/new_op = new antag_datum() + antag_mind.add_antag_datum(new_op) + + +/datum/round_event/antagonist/solo/ghost/nuclear_operative/round_end_report() + var/result = nuke_team.get_result() + switch(result) + if(NUKE_RESULT_FLUKE) + SSticker.mode_result = "loss - syndicate nuked - disk secured" + SSticker.news_report = NUKE_SYNDICATE_BASE + if(NUKE_RESULT_NUKE_WIN) + SSticker.mode_result = "win - syndicate nuke" + SSticker.news_report = STATION_DESTROYED_NUKE + if(NUKE_RESULT_NOSURVIVORS) + SSticker.mode_result = "halfwin - syndicate nuke - did not evacuate in time" + SSticker.news_report = STATION_DESTROYED_NUKE + if(NUKE_RESULT_WRONG_STATION) + SSticker.mode_result = "halfwin - blew wrong station" + SSticker.news_report = NUKE_MISS + if(NUKE_RESULT_WRONG_STATION_DEAD) + SSticker.mode_result = "halfwin - blew wrong station - did not evacuate in time" + SSticker.news_report = NUKE_MISS + if(NUKE_RESULT_CREW_WIN_SYNDIES_DEAD) + SSticker.mode_result = "loss - evacuation - disk secured - syndi team dead" + SSticker.news_report = OPERATIVES_KILLED + if(NUKE_RESULT_CREW_WIN) + SSticker.mode_result = "loss - evacuation - disk secured" + SSticker.news_report = OPERATIVES_KILLED + if(NUKE_RESULT_DISK_LOST) + SSticker.mode_result = "halfwin - evacuation - disk not secured" + SSticker.news_report = OPERATIVE_SKIRMISH + if(NUKE_RESULT_DISK_STOLEN) + SSticker.mode_result = "halfwin - detonation averted" + SSticker.news_report = OPERATIVE_SKIRMISH + else + SSticker.mode_result = "halfwin - interrupted" + SSticker.news_report = OPERATIVE_SKIRMISH diff --git a/monkestation/code/modules/storytellers/converted_events/solo/ghosts/wizard.dm b/monkestation/code/modules/storytellers/converted_events/solo/ghosts/wizard.dm new file mode 100644 index 000000000000..a8720fcf90fa --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/ghosts/wizard.dm @@ -0,0 +1,28 @@ +/datum/round_event_control/antagonist/solo/from_ghosts/wizard + name = "Ghost Wizard" + tags = list(TAG_COMBAT, TAG_DESTRUCTIVE) + typepath = /datum/round_event/antagonist/solo/ghost/wizard + antag_flag = ROLE_WIZARD + antag_datum = /datum/antagonist/wizard + restricted_roles = list( + JOB_CAPTAIN, + JOB_HEAD_OF_SECURITY, + ) // Just to be sure that a wizard getting picked won't ever imply a Captain or HoS not getting drafted + maximum_antags = 1 + weight = 2 + min_players = 35 + max_occurrences = 1 + prompted_picking = TRUE + +/datum/round_event_control/antagonist/solo/ghost/wizard/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) + . = ..() + if(!.) + return + if(GLOB.wizardstart.len == 0) + return FALSE + +/datum/round_event/antagonist/solo/ghost/wizard + +/datum/round_event/antagonist/solo/ghost/wizard/add_datum_to_mind(datum/mind/antag_mind) + . = ..() + antag_mind.current.forceMove(pick(GLOB.wizardstart)) diff --git a/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm b/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm new file mode 100644 index 000000000000..cb0c244a83d7 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/heretic.dm @@ -0,0 +1,32 @@ +/datum/round_event_control/antagonist/solo/heretic + antag_flag = ROLE_HERETIC + tags = list(TAG_COMBAT, TAG_SPOOKY) + antag_datum = /datum/antagonist/heretic + protected_roles = list( + JOB_CAPTAIN, + JOB_HEAD_OF_PERSONNEL, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_RESEARCH_DIRECTOR, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + restricted_roles = list( + JOB_AI, + JOB_CYBORG, + ) + weight = 4 + min_players = 20 + +/datum/round_event_control/antagonist/solo/heretic/roundstart + name = "Heretics" + roundstart = TRUE + earliest_start = 0 + +/datum/round_event_control/antagonist/solo/heretic/midround + name = "Midround Heretics" + prompted_picking = TRUE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/malf.dm b/monkestation/code/modules/storytellers/converted_events/solo/malf.dm new file mode 100644 index 000000000000..0c17035a1c46 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/malf.dm @@ -0,0 +1,41 @@ +/datum/round_event_control/antagonist/solo/malf + antag_datum = /datum/antagonist/malf_ai + tags = list(TAG_COMBAT, TAG_DESTRUCTIVE) + antag_flag = ROLE_MALF + enemy_roles = list( + JOB_CHEMIST, + JOB_CHIEF_ENGINEER, + JOB_HEAD_OF_SECURITY, + JOB_RESEARCH_DIRECTOR, + JOB_SCIENTIST, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + exclusive_roles = list(JOB_AI) + required_enemies = 4 + weight = 4 + max_occurrences = 1 + +/datum/round_event_control/antagonist/solo/malf/trim_candidates(list/candidates) + for(var/mob/living/player in candidates) + if(!isAI(player)) + candidates -= player + continue + + if(is_centcom_level(player.z)) + candidates -= player + continue + + if(player.mind && (player.mind.special_role || player.mind.antag_datums?.len > 0)) + candidates -= player + + return candidates + +/datum/round_event_control/antagonist/solo/malf/midround + name = "Malfunctioning AI Midround" + antag_flag = ROLE_MALF_MIDROUND + +/datum/round_event_control/antagonist/solo/malf/roundstart + name = "Roundstart Malf AI" + roundstart = TRUE + earliest_start = 0 diff --git a/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm b/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm new file mode 100644 index 000000000000..6646c502a4a7 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/nuclear_operative.dm @@ -0,0 +1,104 @@ +/datum/round_event_control/antagonist/solo/nuclear_operative + name = "Roundstart Nuclear Operative" + tags = list(TAG_DESTRUCTIVE, TAG_COMBAT, TAG_TEAM_ANTAG) + antag_flag = ROLE_OPERATIVE + antag_datum = /datum/antagonist/nukeop + typepath = /datum/round_event/antagonist/solo/nuclear_operative + restricted_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_CYBORG, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_RESEARCH_DIRECTOR, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + base_antags = 3 + maximum_antags = 5 + enemy_roles = list( + JOB_AI, + JOB_CYBORG, + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + required_enemies = 5 + // I give up, just there should be enough heads with 35 players... + min_players = 35 + roundstart = TRUE + earliest_start = 0 SECONDS + weight = 4 + max_occurrences = 3 + +/datum/round_event/antagonist/solo/nuclear_operative + excute_round_end_reports = TRUE + end_when = 60000 /// we will end on our own when revs win + var/static/datum/team/nuclear/nuke_team + var/datum/antagonist/antag_leader_datum = /datum/antagonist/nukeop/leader + var/set_leader = FALSE + var/required_role = ROLE_NUCLEAR_OPERATIVE + +/datum/round_event/antagonist/solo/nuclear_operative/add_datum_to_mind(datum/mind/antag_mind) + var/mob/living/current_mob = antag_mind.current + SSjob.FreeRole(antag_mind.assigned_role.title) + var/list/items = current_mob.get_equipped_items(TRUE) + current_mob.unequip_everything() + for(var/obj/item/item as anything in items) + qdel(item) + + var/datum/mind/most_experienced = get_most_experienced(setup_minds, required_role) + if(!most_experienced) + most_experienced = antag_mind + + if(!set_leader) + set_leader = TRUE + var/datum/antagonist/nukeop/leader/leader = most_experienced.add_antag_datum(antag_leader_datum) + nuke_team = leader.nuke_team + + if(antag_mind == most_experienced) + return + + var/datum/antagonist/nukeop/new_op = new antag_datum() + antag_mind.add_antag_datum(new_op) + + +/datum/round_event/antagonist/solo/nuclear_operative/round_end_report() + var/result = nuke_team.get_result() + switch(result) + if(NUKE_RESULT_FLUKE) + SSticker.mode_result = "loss - syndicate nuked - disk secured" + SSticker.news_report = NUKE_SYNDICATE_BASE + if(NUKE_RESULT_NUKE_WIN) + SSticker.mode_result = "win - syndicate nuke" + SSticker.news_report = STATION_DESTROYED_NUKE + if(NUKE_RESULT_NOSURVIVORS) + SSticker.mode_result = "halfwin - syndicate nuke - did not evacuate in time" + SSticker.news_report = STATION_DESTROYED_NUKE + if(NUKE_RESULT_WRONG_STATION) + SSticker.mode_result = "halfwin - blew wrong station" + SSticker.news_report = NUKE_MISS + if(NUKE_RESULT_WRONG_STATION_DEAD) + SSticker.mode_result = "halfwin - blew wrong station - did not evacuate in time" + SSticker.news_report = NUKE_MISS + if(NUKE_RESULT_CREW_WIN_SYNDIES_DEAD) + SSticker.mode_result = "loss - evacuation - disk secured - syndi team dead" + SSticker.news_report = OPERATIVES_KILLED + if(NUKE_RESULT_CREW_WIN) + SSticker.mode_result = "loss - evacuation - disk secured" + SSticker.news_report = OPERATIVES_KILLED + if(NUKE_RESULT_DISK_LOST) + SSticker.mode_result = "halfwin - evacuation - disk not secured" + SSticker.news_report = OPERATIVE_SKIRMISH + if(NUKE_RESULT_DISK_STOLEN) + SSticker.mode_result = "halfwin - detonation averted" + SSticker.news_report = OPERATIVE_SKIRMISH + else + SSticker.mode_result = "halfwin - interrupted" + SSticker.news_report = OPERATIVE_SKIRMISH diff --git a/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm b/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm new file mode 100644 index 000000000000..4509b33a8ab0 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/obsessed.dm @@ -0,0 +1,16 @@ +/datum/round_event_control/antagonist/solo/obsessed + antag_flag = ROLE_TRAITOR + tags = list(TAG_COMBAT) + antag_datum = /datum/antagonist/obsessed + restricted_roles = list( + JOB_AI, + JOB_CYBORG, + ROLE_POSITRONIC_BRAIN, + ) + weight = 4 + max_occurrences = 3 + +/datum/round_event_control/antagonist/solo/obsessed/midround + name = "Compulsive Obsession" + prompted_picking = TRUE + maximum_antags = 4 diff --git a/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm b/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm new file mode 100644 index 000000000000..5bf9e1d81fcd --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/revolutionary.dm @@ -0,0 +1,65 @@ +/datum/round_event_control/antagonist/solo/revolutionary + name = "Roundstart Revolution" + tags = list(TAG_COMMUNAL, TAG_DESTRUCTIVE, TAG_COMBAT, TAG_TEAM_ANTAG) + antag_flag = ROLE_REV_HEAD + antag_datum = /datum/antagonist/rev/head/event_trigger + typepath = /datum/round_event/antagonist/solo/revolutionary + restricted_roles = list( + JOB_AI, + JOB_CAPTAIN, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_CYBORG, + JOB_DETECTIVE, + JOB_HEAD_OF_PERSONNEL, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_RESEARCH_DIRECTOR, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + base_antags = 2 + enemy_roles = list( + JOB_CAPTAIN, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + required_enemies = 6 + // I give up, just there should be enough heads with 35 players... + min_players = 35 + roundstart = TRUE + earliest_start = 0 SECONDS + weight = 4 + max_occurrences = 1 + +/datum/antagonist/rev/head/event_trigger + remove_clumsy = TRUE + give_flash = TRUE + +/datum/round_event/antagonist/solo/revolutionary + excute_round_end_reports = TRUE + end_when = 60000 /// we will end on our own when revs win + var/static/datum/team/revolution/revolution + var/static/finished = FALSE + +/datum/round_event/antagonist/solo/revolutionary/setup() + . = ..() + if(!revolution) + revolution = new() + +/datum/round_event/antagonist/solo/revolutionary/add_datum_to_mind(datum/mind/antag_mind) + antag_mind.add_antag_datum(antag_datum, revolution) + if(revolution.members.len) + revolution.update_objectives() + revolution.update_heads() + SSshuttle.registerHostileEnvironment(revolution) + + +/datum/round_event/antagonist/solo/revolutionary/round_end_report() + var/winner = revolution.process_victory() + if (isnull(winner)) + return + finished = TRUE + revolution.round_result(finished) diff --git a/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm b/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm new file mode 100644 index 000000000000..3100c3a50250 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/traitor.dm @@ -0,0 +1,29 @@ +/datum/round_event_control/antagonist/solo/traitor + antag_flag = ROLE_TRAITOR + tags = list(TAG_COMBAT) + antag_datum = /datum/antagonist/traitor + protected_roles = list( + JOB_CAPTAIN, + JOB_HEAD_OF_PERSONNEL, + JOB_CHIEF_ENGINEER, + JOB_CHIEF_MEDICAL_OFFICER, + JOB_RESEARCH_DIRECTOR, + JOB_DETECTIVE, + JOB_HEAD_OF_SECURITY, + JOB_PRISONER, + JOB_SECURITY_OFFICER, + JOB_WARDEN, + ) + restricted_roles = list( + JOB_AI, + JOB_CYBORG, + ) + +/datum/round_event_control/antagonist/solo/traitor/roundstart + name = "Traitors" + roundstart = TRUE + earliest_start = 0 SECONDS + +/datum/round_event_control/antagonist/solo/traitor/midround + name = "Sleeper Agents (Traitors)" + prompted_picking = TRUE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/wizard.dm b/monkestation/code/modules/storytellers/converted_events/solo/wizard.dm new file mode 100644 index 000000000000..a0069ece6634 --- /dev/null +++ b/monkestation/code/modules/storytellers/converted_events/solo/wizard.dm @@ -0,0 +1,36 @@ +/datum/round_event_control/antagonist/solo/wizard + name = "Wizard" + tags = list(TAG_COMBAT, TAG_DESTRUCTIVE) + typepath = /datum/round_event/antagonist/solo/wizard + antag_flag = ROLE_WIZARD + antag_datum = /datum/antagonist/wizard + restricted_roles = list( + JOB_CAPTAIN, + JOB_HEAD_OF_SECURITY, + ) // Just to be sure that a wizard getting picked won't ever imply a Captain or HoS not getting drafted + maximum_antags = 1 + roundstart = TRUE + earliest_start = 0 SECONDS + weight = 2 + min_players = 35 + max_occurrences = 1 + +/datum/round_event_control/antagonist/solo/wizard/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) + . = ..() + if(!.) + return + if(GLOB.wizardstart.len == 0) + return FALSE + +/datum/round_event/antagonist/solo/wizard + +/datum/round_event/antagonist/solo/wizard/add_datum_to_mind(datum/mind/antag_mind) + . = ..() + var/mob/living/current_mob = antag_mind.current + SSjob.FreeRole(antag_mind.assigned_role.title) + var/list/items = current_mob.get_equipped_items(TRUE) + current_mob.unequip_everything() + for(var/obj/item/item as anything in items) + qdel(item) + + antag_mind.current.forceMove(pick(GLOB.wizardstart)) diff --git a/monkestation/code/modules/storytellers/gamemode_subsystem.dm b/monkestation/code/modules/storytellers/gamemode_subsystem.dm new file mode 100644 index 000000000000..c49d02243962 --- /dev/null +++ b/monkestation/code/modules/storytellers/gamemode_subsystem.dm @@ -0,0 +1,1154 @@ +#define INIT_ORDER_GAMEMODE 70 + +SUBSYSTEM_DEF(gamemode) + name = "Gamemode" + init_order = INIT_ORDER_GAMEMODE + runlevels = RUNLEVEL_GAME + flags = SS_BACKGROUND | SS_KEEP_TIMING + wait = 2 SECONDS + + /// List of our event tracks for fast access during for loops. + var/list/event_tracks = EVENT_TRACKS + /// Our storyteller. He progresses our trackboards and picks out events + var/datum/storyteller/storyteller + /// Result of the storyteller vote. Defaults to the guide. + var/voted_storyteller = /datum/storyteller/guide + /// List of all the storytellers. Populated at init. Associative from type + var/list/storytellers = list() + /// Next process for our storyteller. The wait time is STORYTELLER_WAIT_TIME + var/next_storyteller_process = 0 + /// Associative list of even track points. + var/list/event_track_points = list( + EVENT_TRACK_MUNDANE = 0, + EVENT_TRACK_MODERATE = 0, + EVENT_TRACK_MAJOR = 0, + EVENT_TRACK_ROLESET = 0, + EVENT_TRACK_OBJECTIVES = 0 + ) + /// Last point amount gained of each track. Those are recorded for purposes of estimating how long until next event. + var/list/last_point_gains = list( + EVENT_TRACK_MUNDANE = 0, + EVENT_TRACK_MODERATE = 0, + EVENT_TRACK_MAJOR = 0, + EVENT_TRACK_ROLESET = 0, + EVENT_TRACK_OBJECTIVES = 0 + ) + /// Point thresholds at which the events are supposed to be rolled, it is also the base cost for events. + var/list/point_thresholds = list( + EVENT_TRACK_MUNDANE = MUNDANE_POINT_THRESHOLD, + EVENT_TRACK_MODERATE = MODERATE_POINT_THRESHOLD, + EVENT_TRACK_MAJOR = MAJOR_POINT_THRESHOLD, + EVENT_TRACK_ROLESET = ROLESET_POINT_THRESHOLD, + EVENT_TRACK_OBJECTIVES = OBJECTIVES_POINT_THRESHOLD + ) + + /// Minimum population thresholds for the tracks to fire off events. + var/list/min_pop_thresholds = list( + EVENT_TRACK_MUNDANE = MUNDANE_MIN_POP, + EVENT_TRACK_MODERATE = MODERATE_MIN_POP, + EVENT_TRACK_MAJOR = MAJOR_MIN_POP, + EVENT_TRACK_ROLESET = ROLESET_MIN_POP, + EVENT_TRACK_OBJECTIVES = OBJECTIVES_MIN_POP + ) + + /// Configurable multipliers for point gain over time. + var/list/point_gain_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1, + EVENT_TRACK_MAJOR = 1, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1 + ) + /// Configurable multipliers for roundstart points. + var/list/roundstart_point_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1, + EVENT_TRACK_MAJOR = 1, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1 + ) + /// Whether we allow pop scaling. This is configured by config, or the storyteller UI + var/allow_pop_scaling = TRUE + + /// Associative list of pop scale thresholds. + var/list/pop_scale_thresholds = list( + EVENT_TRACK_MUNDANE = MUNDANE_POP_SCALE_THRESHOLD, + EVENT_TRACK_MODERATE = MODERATE_POP_SCALE_THRESHOLD, + EVENT_TRACK_MAJOR = MAJOR_POP_SCALE_THRESHOLD, + EVENT_TRACK_ROLESET = ROLESET_POP_SCALE_THRESHOLD, + EVENT_TRACK_OBJECTIVES = OBJECTIVES_POP_SCALE_THRESHOLD + ) + + /// Associative list of pop scale penalties. + var/list/pop_scale_penalties = list( + EVENT_TRACK_MUNDANE = MUNDANE_POP_SCALE_PENALTY, + EVENT_TRACK_MODERATE = MODERATE_POP_SCALE_PENALTY, + EVENT_TRACK_MAJOR = MAJOR_POP_SCALE_PENALTY, + EVENT_TRACK_ROLESET = ROLESET_POP_SCALE_PENALTY, + EVENT_TRACK_OBJECTIVES = OBJECTIVES_POP_SCALE_PENALTY + ) + + /// Associative list of active multipliers from pop scale penalty. + var/list/current_pop_scale_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1, + EVENT_TRACK_MAJOR = 1, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1, + ) + + + + /// Associative list of control events by their track category. Compiled in Init + var/list/event_pools = list() + + /// Events that we have scheduled to run in the nearby future + var/list/scheduled_events = list() + + /// Associative list of tracks to forced event controls. For admins to force events (though they can still invoke them freely outside of the track system) + var/list/forced_next_events = list() + + var/list/control = list() //list of all datum/round_event_control. Used for selecting events based on weight and occurrences. + var/list/running = list() //list of all existing /datum/round_event + var/list/round_end_data = list() //list of all reports that need to add round end reports + var/list/currentrun = list() + + /// List of all uncategorized events, because they were wizard or holiday events + var/list/uncategorized = list() + + var/list/holidays //List of all holidays occuring today or null if no holidays + + /// Event frequency multiplier, it exists because wizard, eugh. + var/event_frequency_multiplier = 1 + + /// Current preview page for the statistics UI. + var/statistics_track_page = EVENT_TRACK_MUNDANE + /// Page of the UI panel. + var/panel_page = GAMEMODE_PANEL_MAIN + /// Whether we are viewing the roundstart events or not + var/roundstart_event_view = TRUE + + /// Whether the storyteller has been halted + var/halted_storyteller = FALSE + + /// Ready players for roundstart events. + var/ready_players = 0 + var/active_players = 0 + var/head_crew = 0 + var/eng_crew = 0 + var/sec_crew = 0 + var/med_crew = 0 + + var/wizardmode = FALSE + + var/datum/round_event_control/current_roundstart_event + var/list/last_round_events = list() + var/ran_roundstart = FALSE + var/list/triggered_round_events = list() + + var/total_valid_antags = 0 + +/datum/controller/subsystem/gamemode/Initialize(time, zlevel) + // Populate event pools + for(var/track in event_tracks) + event_pools[track] = list() + + // Populate storytellers + for(var/type in subtypesof(/datum/storyteller)) + storytellers[type] = new type() + + for(var/type in typesof(/datum/round_event_control)) + var/datum/round_event_control/event = new type() + if(!event.typepath || !event.name) + continue //don't want this one! leave it for the garbage collector + if(!event.valid_for_map()) + continue // event isn't good for this map no point in trying to add it to the list + control += event //add it to the list of all events (controls) + getHoliday() + + load_config_vars() + load_event_config_vars() + + ///Seeding events into track event pools needs to happen after event config vars are loaded + for(var/datum/round_event_control/event as anything in control) + if(event.holidayID || event.wizardevent) + uncategorized += event + continue + event_pools[event.track] += event //Add it to the categorized event pools + + load_roundstart_data() + +// return ..() + + +/datum/controller/subsystem/gamemode/fire(resumed = FALSE) + if(!resumed) + src.currentrun = running.Copy() + + ///Handle scheduled events + for(var/datum/scheduled_event/sch_event in scheduled_events) + if(world.time >= sch_event.start_time) + sch_event.try_fire() + else if(!sch_event.alerted_admins && world.time >= sch_event.start_time - 1 MINUTES) + ///Alert admins 1 minute before running and allow them to cancel or refund the event, once again. + sch_event.alerted_admins = TRUE + message_admins("Scheduled Event: [sch_event.event] will run in [(sch_event.start_time - world.time) / 10] seconds. (CANCEL) (REFUND)") + + if(!halted_storyteller && next_storyteller_process <= world.time && storyteller) + // We update crew information here to adjust population scalling and event thresholds for the storyteller. + update_crew_infos() + next_storyteller_process = world.time + STORYTELLER_WAIT_TIME + storyteller.process(STORYTELLER_WAIT_TIME * 0.1) + + //cache for sanic speed (lists are references anyways) + var/list/currentrun = src.currentrun + + while(currentrun.len) + var/datum/thing = currentrun[currentrun.len] + currentrun.len-- + if(thing) + thing.process(wait * 0.1) + else + running.Remove(thing) + if (MC_TICK_CHECK) + return + +/// Gets the number of antagonists the antagonist injection events will stop rolling after. +/datum/controller/subsystem/gamemode/proc/get_antag_cap() + var/cap = FLOOR((get_correct_popcount() / ANTAG_CAP_DENOMINATOR), 1) + ANTAG_CAP_FLAT + return cap + +/// Whether events can inject more antagonists into the round +/datum/controller/subsystem/gamemode/proc/can_inject_antags() + total_valid_antags = 0 + for(var/mob/checked_mob in GLOB.mob_list) + if(!checked_mob.mind) + continue + if(!checked_mob.mind.special_role) + continue + if(checked_mob.stat == DEAD) + continue + total_valid_antags++ + + + return (get_antag_cap() > total_valid_antags) + +/// Gets candidates for antagonist roles. +/datum/controller/subsystem/gamemode/proc/get_candidates(be_special, job_ban, observers, ready_newplayers, living_players, required_time, inherit_required_time = TRUE, midround_antag_pref, no_antags = TRUE, list/restricted_roles) + var/list/candidates = list() + var/list/candidate_candidates = list() //lol + + for(var/mob/player as anything in GLOB.player_list) + if(ready_newplayers && isnewplayer(player)) + var/mob/dead/new_player/new_player = player + if(new_player.ready == PLAYER_READY_TO_PLAY && new_player.mind && new_player.check_preferences()) + candidate_candidates += player + else if (observers && isobserver(player)) + candidate_candidates += player + else if (living_players && isliving(player)) + if(!ishuman(player)) + continue + if(!(player.z in SSmapping.levels_by_trait(ZTRAIT_STATION))) + continue + candidate_candidates += player + + for(var/mob/candidate as anything in candidate_candidates) + if(QDELETED(candidate) || !candidate.key || !candidate.client || (!observers && !candidate.mind)) + continue + if(!observers) + if(no_antags && candidate.mind.special_role) + continue + if(restricted_roles && (candidate.mind.assigned_role.title in restricted_roles)) + continue + if(be_special) + if(!(candidate.client.prefs) || !(be_special in candidate.client.prefs.be_special)) + continue + + var/time_to_check + if(required_time) + time_to_check = required_time + else if (inherit_required_time) + time_to_check = GLOB.special_roles[be_special] + + if(time_to_check && candidate.client.get_remaining_days(time_to_check) > 0) + continue + + //if(midround_antag_pref) + //continue + + if(job_ban && is_banned_from(candidate.ckey, list(job_ban, ROLE_SYNDICATE))) + continue + candidates += candidate + return candidates + +/// Gets the correct popcount, returning READY people if roundstart, and active people if not. +/datum/controller/subsystem/gamemode/proc/get_correct_popcount() + if(SSticker.HasRoundStarted()) + update_crew_infos() + return active_players + else + calculate_ready_players() + return ready_players + +/// Refunds and removes a scheduled event. +/datum/controller/subsystem/gamemode/proc/refund_scheduled_event(datum/scheduled_event/refunded) + if(refunded.cost) + var/track_type = refunded.event.track + event_track_points[track_type] += refunded.cost + remove_scheduled_event(refunded) + +/// Removes a scheduled event. +/datum/controller/subsystem/gamemode/proc/remove_scheduled_event(datum/scheduled_event/removed) + scheduled_events -= removed + qdel(removed) + +/// We need to calculate ready players for the sake of roundstart events becoming eligible. +/datum/controller/subsystem/gamemode/proc/calculate_ready_players() + ready_players = 0 + for(var/mob/dead/new_player/player as anything in GLOB.new_player_list) + if(player.ready == PLAYER_READY_TO_PLAY) + ready_players++ + +/// We roll points to be spent for roundstart events, including antagonists. +/datum/controller/subsystem/gamemode/proc/roll_pre_setup_points() + if(storyteller.disable_distribution || halted_storyteller) + return + /// Distribute points + for(var/track in event_track_points) + var/base_amt + var/gain_amt + switch(track) + if(EVENT_TRACK_MUNDANE) + base_amt = ROUNDSTART_MUNDANE_BASE + gain_amt = ROUNDSTART_MUNDANE_GAIN + if(EVENT_TRACK_MODERATE) + base_amt = ROUNDSTART_MODERATE_BASE + gain_amt = ROUNDSTART_MODERATE_GAIN + if(EVENT_TRACK_MAJOR) + base_amt = ROUNDSTART_MAJOR_BASE + gain_amt = ROUNDSTART_MAJOR_GAIN + if(EVENT_TRACK_ROLESET) + base_amt = ROUNDSTART_ROLESET_BASE + gain_amt = ROUNDSTART_ROLESET_GAIN + if(EVENT_TRACK_OBJECTIVES) + base_amt = ROUNDSTART_OBJECTIVES_BASE + gain_amt = ROUNDSTART_OBJECTIVES_GAIN + var/calc_value = base_amt + (gain_amt * ready_players) + calc_value *= roundstart_point_multipliers[track] + calc_value *= storyteller.starting_point_multipliers[track] + calc_value *= (rand(100 - storyteller.roundstart_points_variance,100 + storyteller.roundstart_points_variance)/100) + event_track_points[track] = round(calc_value) + + /// If the storyteller guarantees an antagonist roll, add points to make it so. + if(storyteller.guarantees_roundstart_roleset && event_track_points[EVENT_TRACK_ROLESET] < point_thresholds[EVENT_TRACK_ROLESET]) + event_track_points[EVENT_TRACK_ROLESET] = point_thresholds[EVENT_TRACK_ROLESET] + + /// If we have any forced events, ensure we get enough points for them + for(var/track in event_tracks) + if(forced_next_events[track] && event_track_points[track] < point_thresholds[track]) + event_track_points[track] = point_thresholds[track] + +/// At this point we've rolled roundstart events and antags and we handle leftover points here. +/datum/controller/subsystem/gamemode/proc/handle_post_setup_points() + for(var/track in event_track_points) //Just halve the points for now. + event_track_points[track] *= 0.5 + +/// Because roundstart events need 2 steps of firing for purposes of antags, here is the first step handled, happening before occupation division. +/datum/controller/subsystem/gamemode/proc/handle_pre_setup_roundstart_events() + if(storyteller.disable_distribution) + return + if(halted_storyteller) + message_admins("WARNING: Didn't roll roundstart events (including antagonists) due to the storyteller being halted.") + return + while(TRUE) + if(!storyteller.handle_tracks()) + break + +/// Second step of handlind roundstart events, happening after people spawn. +/datum/controller/subsystem/gamemode/proc/handle_post_setup_roundstart_events() + /// Start all roundstart events on post_setup immediately + for(var/datum/round_event/event as anything in running) + if(!event.control.roundstart) + continue + ASYNC + event.try_start() +// INVOKE_ASYNC(event, /datum/round_event.proc/try_start) + +/// Schedules an event to run later. +/datum/controller/subsystem/gamemode/proc/schedule_event(datum/round_event_control/passed_event, passed_time, passed_cost, passed_ignore, passed_announce, _forced = FALSE) + if(_forced) + passed_ignore = TRUE + var/datum/scheduled_event/scheduled = new (passed_event, world.time + passed_time, passed_cost, passed_ignore, passed_announce) + var/round_started = SSticker.HasRoundStarted() + if(round_started) + message_admins("Event: [passed_event] has been scheduled to run in [passed_time / 10] seconds. (CANCEL) (REFUND)") + else //Only roundstart events can be scheduled before round start + message_admins("Event: [passed_event] has been scheduled to run on roundstart. (CANCEL)") + scheduled_events += scheduled + +/datum/controller/subsystem/gamemode/proc/update_crew_infos() + // Very similar logic to `get_active_player_count()` + active_players = 0 + head_crew = 0 + eng_crew = 0 + med_crew = 0 + sec_crew = 0 + for(var/mob/player_mob as anything in GLOB.player_list) + if(!player_mob.client) + continue + if(player_mob.stat) //If they're alive + continue + if(player_mob.client.is_afk()) //If afk + continue + if(!ishuman(player_mob)) + continue + active_players++ + if(player_mob.mind?.assigned_role) + var/datum/job/player_role = player_mob.mind.assigned_role + if(player_role.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND) + head_crew++ + if(player_role.departments_bitflags & DEPARTMENT_BITFLAG_ENGINEERING) + eng_crew++ + if(player_role.departments_bitflags & DEPARTMENT_BITFLAG_MEDICAL) + med_crew++ + if(player_role.departments_bitflags & DEPARTMENT_BITFLAG_SECURITY) + sec_crew++ + update_pop_scaling() + +/datum/controller/subsystem/gamemode/proc/update_pop_scaling() + for(var/track in event_tracks) + var/low_pop_bound = min_pop_thresholds[track] + var/high_pop_bound = pop_scale_thresholds[track] + var/scale_penalty = pop_scale_penalties[track] + + var/perceived_pop = max(low_pop_bound, active_players) // after max pop we start generating even more threat + + var/divisor = high_pop_bound - low_pop_bound + /// If the bounds are equal, we'd be dividing by zero or worse, if upper is smaller than lower, we'd be increasing the factor, just make it 1 and continue. + /// this is only a problem for bad configs + if(divisor <= 0) + current_pop_scale_multipliers[track] = 1 + continue + var/scalar = (perceived_pop - low_pop_bound) / divisor + var/penalty = scale_penalty - (scale_penalty * scalar) + var/calculated_multiplier = 1 - (penalty / 100) + + current_pop_scale_multipliers[track] = calculated_multiplier + +/datum/controller/subsystem/gamemode/proc/TriggerEvent(datum/round_event_control/event, forced = FALSE) + . = event.preRunEvent(forced) + if(. == EVENT_CANT_RUN)//we couldn't run this event for some reason, set its max_occurrences to 0 + event.max_occurrences = 0 + else if(. == EVENT_READY) + event.runEvent(random = TRUE) // fallback to dynamic + +///Resets frequency multiplier. +/datum/controller/subsystem/gamemode/proc/resetFrequency() + event_frequency_multiplier = 1 + +/client/proc/forceEvent() + set name = "Trigger Event" + set category = "Admin.Events" + if(!holder ||!check_rights(R_FUN)) + return + holder.forceEvent(usr) + +/datum/admins/proc/forceEvent(mob/user) + SSgamemode.event_panel(user) + +/client/proc/forceGamemode() + set name = "Open Gamemode Panel" + set category = "Admin.Events" + if(!holder ||!check_rights(R_FUN)) + return + holder.forceGamemode(usr) + +/datum/admins/proc/forceGamemode(mob/user) + SSgamemode.admin_panel(user) + + +////////////// +// HOLIDAYS // +////////////// +//Uncommenting ALLOW_HOLIDAYS in config.txt will enable holidays + +//It's easy to add stuff. Just add a holiday datum in code/modules/holiday/holidays.dm +//You can then check if it's a special day in any code in the game by doing if(SSgamemode.holidays["Groundhog Day"]) + +//You can also make holiday random events easily thanks to Pete/Gia's system. +//simply make a random event normally, then assign it a holidayID string which matches the holiday's name. +//Anything with a holidayID, which isn't in the holidays list, will never occur. + +//Please, Don't spam stuff up with stupid stuff (key example being april-fools Pooh/ERP/etc), +//And don't forget: CHECK YOUR CODE!!!! We don't want any zero-day bugs which happen only on holidays and never get found/fixed! + +////////////////////////////////////////////////////////////////////////////////////////////////////////// +//ALSO, MOST IMPORTANTLY: Don't add stupid stuff! Discuss bonus content with Project-Heads first please!// +////////////////////////////////////////////////////////////////////////////////////////////////////////// + + +//sets up the holidays and holidays list +/datum/controller/subsystem/gamemode/proc/getHoliday() + if(!CONFIG_GET(flag/allow_holidays)) + return // Holiday stuff was not enabled in the config! + for(var/H in subtypesof(/datum/holiday)) + var/datum/holiday/holiday = new H() + var/delete_holiday = TRUE + for(var/timezone in holiday.timezones) + var/time_in_timezone = world.realtime + timezone HOURS + + var/YYYY = text2num(time2text(time_in_timezone, "YYYY")) // get the current year + var/MM = text2num(time2text(time_in_timezone, "MM")) // get the current month + var/DD = text2num(time2text(time_in_timezone, "DD")) // get the current day + var/DDD = time2text(time_in_timezone, "DDD") // get the current weekday + + if(holiday.shouldCelebrate(DD, MM, YYYY, DDD)) + holiday.celebrate() + LAZYSET(holidays, holiday.name, holiday) + delete_holiday = FALSE + break + if(delete_holiday) + qdel(holiday) + + if(holidays) + holidays = shuffle(holidays) + // regenerate station name because holiday prefixes. + set_station_name(new_station_name()) + world.update_status() + +/datum/controller/subsystem/gamemode/proc/toggleWizardmode() + wizardmode = !wizardmode //TODO: decide what to do with wiz events + message_admins("Summon Events has been [wizardmode ? "enabled, events will occur [SSgamemode.event_frequency_multiplier] times as fast" : "disabled"]!") + log_game("Summon Events was [wizardmode ? "enabled" : "disabled"]!") + +///Attempts to select players for special roles the mode might have. +/datum/controller/subsystem/gamemode/proc/pre_setup() + calculate_ready_players() + roll_pre_setup_points() + //handle_pre_setup_roundstart_events() + return TRUE + +///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things +/datum/controller/subsystem/gamemode/proc/post_setup(report) //Gamemodes can override the intercept report. Passing TRUE as the argument will force a report. + if(!report) + report = !CONFIG_GET(flag/no_intercept_report) + addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME) + + if(CONFIG_GET(flag/reopen_roundstart_suicide_roles)) + var/delay = CONFIG_GET(number/reopen_roundstart_suicide_roles_delay) + if(delay) + delay = (delay SECONDS) + else + delay = (4 MINUTES) //default to 4 minutes if the delay isn't defined. + addtimer(CALLBACK(GLOBAL_PROC, .proc/reopen_roundstart_suicide_roles), delay) + + if(SSdbcore.Connect()) + var/list/to_set = list() + var/arguments = list() + if(storyteller) + to_set += "game_mode = :game_mode" + arguments["game_mode"] = storyteller.name + if(GLOB.revdata.originmastercommit) + to_set += "commit_hash = :commit_hash" + arguments["commit_hash"] = GLOB.revdata.originmastercommit + if(to_set.len) + arguments["round_id"] = GLOB.round_id + var/datum/db_query/query_round_game_mode = SSdbcore.NewQuery( + "UPDATE [format_table_name("round")] SET [to_set.Join(", ")] WHERE id = :round_id", + arguments + ) + query_round_game_mode.Execute() + qdel(query_round_game_mode) + generate_station_goals() + handle_post_setup_roundstart_events() + handle_post_setup_points() + roundstart_event_view = FALSE + return TRUE + + +///Handles late-join antag assignments +/datum/controller/subsystem/gamemode/proc/make_antag_chance(mob/living/carbon/human/character) + return + +/datum/controller/subsystem/gamemode/proc/check_finished(force_ending) //to be called by SSticker + if(!SSticker.setup_done) + return FALSE + if(SSshuttle.emergency && (SSshuttle.emergency.mode == SHUTTLE_ENDGAME)) + return TRUE + if(GLOB.station_was_nuked) + return TRUE + if(force_ending) + return TRUE + +/* + * Generate a list of station goals available to purchase to report to the crew. + * + * Returns a formatted string all station goals that are available to the station. + */ +/datum/controller/subsystem/gamemode/proc/generate_station_goal_report() + if(!GLOB.station_goals.len) + return + . = "
Special Orders for [station_name()]:
" + for(var/datum/station_goal/station_goal as anything in GLOB.station_goals) + station_goal.on_report() + . += station_goal.get_report() + return + +/* + * Generate a list of active station traits to report to the crew. + * + * Returns a formatted string of all station traits (that are shown) affecting the station. + */ +/datum/controller/subsystem/gamemode/proc/generate_station_trait_report() + if(!SSstation.station_traits.len) + return + . = "
Identified shift divergencies:
" + for(var/datum/station_trait/station_trait as anything in SSstation.station_traits) + if(!station_trait.show_in_report) + continue + . += "[station_trait.get_report()]
" + return + +/* /proc/reopen_roundstart_suicide_roles() + var/include_command = CONFIG_GET(flag/reopen_roundstart_suicide_roles_command_positions) + var/list/reopened_jobs = list() + for(var/mob/living/quitter in GLOB.suicided_mob_list) + var/datum/job/job = SSjob.GetJob(quitter.job) + if(!job || !(job.job_flags & JOB_REOPEN_ON_ROUNDSTART_LOSS)) + continue + if(!include_command && job.departments_bitflags & DEPARTMENT_BITFLAG_COMMAND) + continue + job.current_positions = max(job.current_positions - 1, 0) + reopened_jobs += quitter.job + if(CONFIG_GET(flag/reopen_roundstart_suicide_roles_command_report)) + if(reopened_jobs.len) + var/reopened_job_report_positions + for(var/dead_dudes_job in reopened_jobs) + reopened_job_report_positions = "[reopened_job_report_positions ? "[reopened_job_report_positions]\n":""][dead_dudes_job]" + var/suicide_command_report = "Central Command Human Resources Board
\ + Notice of Personnel Change

\ + To personnel management staff aboard [station_name()]:

\ + Our medical staff have detected a series of anomalies in the vital sensors \ + of some of the staff aboard your station.

\ + Further investigation into the situation on our end resulted in us discovering \ + a series of rather... unforturnate decisions that were made on the part of said staff.

\ + As such, we have taken the liberty to automatically reopen employment opportunities for the positions of the crew members \ + who have decided not to partake in our research. We will be forwarding their cases to our employment review board \ + to determine their eligibility for continued service with the company (and of course the \ + continued storage of cloning records within the central medical backup server.)

\ + The following positions have been reopened on our behalf:

\ + [reopened_job_report_positions]
" + print_command_report(suicide_command_report, "Central Command Personnel Update") */ + +////////////////////////// +//Reports player logouts// +////////////////////////// +/* /proc/display_roundstart_logout_report() + var/list/msg = list("[SPAN_BOLDNOTICE("Roundstart logout report")]\n\n") + for(var/i in GLOB.mob_living_list) + var/mob/living/L = i + var/mob/living/carbon/C = L + if (istype(C) && !C.last_mind) + continue // never had a client + if(L.ckey && !GLOB.directory[L.ckey]) + msg += "[L.name] ([L.key]), the [L.job] (Disconnected)\n" + if(L.ckey && L.client) + var/failed = FALSE + if(L.client.inactivity >= (ROUNDSTART_LOGOUT_REPORT_TIME / 2)) //Connected, but inactive (alt+tabbed or something) + msg += "[L.name] ([L.key]), the [L.job] (Connected, Inactive)\n" + failed = TRUE //AFK client + if(!failed && L.stat) + if(L.suiciding) //Suicider + msg += "[L.name] ([L.key]), the [L.job] ([SPAN_BOLDANNOUNCE("Suicide")])\n" + failed = TRUE //Disconnected client + if(!failed && (L.stat == UNCONSCIOUS || L.stat == HARD_CRIT)) + msg += "[L.name] ([L.key]), the [L.job] (Dying)\n" + failed = TRUE //Unconscious + if(!failed && L.stat == DEAD) + msg += "[L.name] ([L.key]), the [L.job] (Dead)\n" + failed = TRUE //Dead + continue //Happy connected client + for(var/mob/dead/observer/D in GLOB.dead_mob_list) + if(D.mind && D.mind.current == L) + if(L.stat == DEAD) + if(L.suiciding) //Suicider + msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] ([SPAN_BOLDANNOUNCE("Suicide")])\n" + continue //Disconnected client + else + msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] (Dead)\n" + continue //Dead mob, ghost abandoned + else + if(D.can_reenter_corpse) + continue //Adminghost, or cult/wizard ghost + else + msg += "[L.name] ([ckey(D.mind.key)]), the [L.job] ([SPAN_BOLDANNOUNCE("Ghosted")])\n" + continue //Ghosted while alive + for (var/C in GLOB.admins) + to_chat(C, msg.Join()) */ + +/datum/controller/subsystem/gamemode/proc/generate_station_goals() + var/list/possible = subtypesof(/datum/station_goal) + var/goal_weights = 0 + while(possible.len && goal_weights < 1) // station goal budget is 1 + var/datum/station_goal/picked = pick_n_take(possible) + goal_weights += initial(picked.weight) + GLOB.station_goals += new picked + +//Set result and news report here +/datum/controller/subsystem/gamemode/proc/set_round_result() + SSticker.mode_result = "undefined" + if(GLOB.station_was_nuked) + SSticker.news_report = STATION_DESTROYED_NUKE + if(EMERGENCY_ESCAPED_OR_ENDGAMED) + SSticker.news_report = STATION_EVACUATED + if(SSshuttle.emergency.is_hijacked()) + SSticker.news_report = SHUTTLE_HIJACK + +/// Loads json event config values from events.txt +/datum/controller/subsystem/gamemode/proc/load_event_config_vars() + var/json_file = file("[global.config.directory]/events.json") + if(!fexists(json_file)) + return + var/list/decoded = json_decode(file2text(json_file)) + for(var/event_text_path in decoded) + var/event_path = text2path(event_text_path) + var/datum/round_event_control/event + for(var/datum/round_event_control/iterated_event as anything in control) + if(iterated_event.type == event_path) + event = iterated_event + break + if(!event) + continue + var/list/var_list = decoded[event_text_path] + for(var/variable in var_list) + var/value = var_list[variable] + switch(variable) + if("weight") + event.weight = value + if("min_players") + event.min_players = value + if("max_occurrences") + event.max_occurrences = value + if("earliest_start") + event.earliest_start = value * (1 MINUTES) + if("track") + if(value in event_tracks) + event.track = value + if("cost") + event.cost = value + if("reoccurence_penalty_multiplier") + event.reoccurence_penalty_multiplier = value + if("shared_occurence_type") + if(!isnull(value)) + value = text2path(value) + event.shared_occurence_type = value + +/// Loads config values from game_options.txt +/datum/controller/subsystem/gamemode/proc/load_config_vars() + point_gain_multipliers[EVENT_TRACK_MUNDANE] = CONFIG_GET(number/mundane_point_gain_multiplier) + point_gain_multipliers[EVENT_TRACK_MODERATE] = CONFIG_GET(number/moderate_point_gain_multiplier) + point_gain_multipliers[EVENT_TRACK_MAJOR] = CONFIG_GET(number/major_point_gain_multiplier) + point_gain_multipliers[EVENT_TRACK_ROLESET] = CONFIG_GET(number/roleset_point_gain_multiplier) + point_gain_multipliers[EVENT_TRACK_OBJECTIVES] = CONFIG_GET(number/objectives_point_gain_multiplier) + + roundstart_point_multipliers[EVENT_TRACK_MUNDANE] = CONFIG_GET(number/mundane_roundstart_point_multiplier) + roundstart_point_multipliers[EVENT_TRACK_MODERATE] = CONFIG_GET(number/moderate_roundstart_point_multiplier) + roundstart_point_multipliers[EVENT_TRACK_MAJOR] = CONFIG_GET(number/major_roundstart_point_multiplier) + roundstart_point_multipliers[EVENT_TRACK_ROLESET] = CONFIG_GET(number/roleset_roundstart_point_multiplier) + roundstart_point_multipliers[EVENT_TRACK_OBJECTIVES] = CONFIG_GET(number/objectives_roundstart_point_multiplier) + + min_pop_thresholds[EVENT_TRACK_MUNDANE] = CONFIG_GET(number/mundane_min_pop) + min_pop_thresholds[EVENT_TRACK_MODERATE] = CONFIG_GET(number/moderate_min_pop) + min_pop_thresholds[EVENT_TRACK_MAJOR] = CONFIG_GET(number/major_min_pop) + min_pop_thresholds[EVENT_TRACK_ROLESET] = CONFIG_GET(number/roleset_min_pop) + min_pop_thresholds[EVENT_TRACK_OBJECTIVES] = CONFIG_GET(number/objectives_min_pop) + + point_thresholds[EVENT_TRACK_MUNDANE] = CONFIG_GET(number/mundane_point_threshold) + point_thresholds[EVENT_TRACK_MODERATE] = CONFIG_GET(number/moderate_point_threshold) + point_thresholds[EVENT_TRACK_MAJOR] = CONFIG_GET(number/major_point_threshold) + point_thresholds[EVENT_TRACK_ROLESET] = CONFIG_GET(number/roleset_point_threshold) + point_thresholds[EVENT_TRACK_OBJECTIVES] = CONFIG_GET(number/objectives_point_threshold) + +/datum/controller/subsystem/gamemode/proc/storyteller_vote_choices() + var/client_amount = GLOB.clients.len + var/list/choices = list() + for(var/storyteller_type in storytellers) + var/datum/storyteller/storyboy = storytellers[storyteller_type] + if(!storyboy.votable) + continue + if((storyboy.population_min && storyboy.population_min > client_amount) || (storyboy.population_max && storyboy.population_max < client_amount)) + continue + choices += storyboy.name + choices[storyboy.name] = 0 + return choices + +/datum/controller/subsystem/gamemode/proc/storyteller_desc(storyteller_name) + for(var/storyteller_type in storytellers) + var/datum/storyteller/storyboy = storytellers[storyteller_type] + if(storyboy.name != storyteller_name) + continue + return storyboy.desc + + +/datum/controller/subsystem/gamemode/proc/storyteller_vote_result(winner_name) + for(var/storyteller_type in storytellers) + var/datum/storyteller/storyboy = storytellers[storyteller_type] + if(storyboy.name == winner_name) + voted_storyteller = storyteller_type + break + +/datum/controller/subsystem/gamemode/proc/init_storyteller() + set_storyteller(voted_storyteller) + +/datum/controller/subsystem/gamemode/proc/set_storyteller(passed_type) + if(!storytellers[passed_type]) + message_admins("Attempted to set an invalid storyteller type: [passed_type].") + CRASH("Attempted to set an invalid storyteller type: [passed_type].") + storyteller = storytellers[passed_type] + to_chat(world, span_notice("Storyteller is [storyteller.name]!")) + to_chat(world, span_notice("[storyteller.welcome_text]")) + +/// Panel containing information, variables and controls about the gamemode and scheduled event +/datum/controller/subsystem/gamemode/proc/admin_panel(mob/user) + update_crew_infos() + total_valid_antags = 0 + for(var/mob/checked_mob in GLOB.mob_list) + if(!checked_mob.mind) + continue + if(!checked_mob.mind.special_role) + continue + if(checked_mob.stat == DEAD) + continue + total_valid_antags++ + + var/round_started = SSticker.HasRoundStarted() + var/list/dat = list() + dat += "Storyteller: [storyteller ? "[storyteller.name]" : "None"] " + dat += " HALT Storyteller Event Panel Set Storyteller Refresh" + dat += "
Storyteller determines points gained, event chances, and is the entity responsible for rolling events." + dat += "
Active Players: [active_players] (Head: [head_crew], Sec: [sec_crew], Eng: [eng_crew], Med: [med_crew])" + dat += "
Antagonist Count vs Maximum: [total_valid_antags] / [get_antag_cap()]" + dat += "
" + dat += "Main" + dat += " Variables" + dat += "
" + switch(panel_page) + if(GAMEMODE_PANEL_VARIABLES) + dat += "Reload Config Vars Configs located in game_options.txt." + dat += "
Point Gains Multipliers (only over time):" + dat += "
This affects points gained over time towards scheduling new events of the tracks." + for(var/track in event_tracks) + dat += "
[track]: [point_gain_multipliers[track]]" + dat += "
" + + dat += "Roundstart Points Multipliers:" + dat += "
This affects points generated for roundstart events and antagonists." + for(var/track in event_tracks) + dat += "
[track]: [roundstart_point_multipliers[track]]" + dat += "
" + + dat += "Minimum Population for Tracks:" + dat += "
This are the minimum population caps for events to be able to run." + for(var/track in event_tracks) + dat += "
[track]: [min_pop_thresholds[track]]" + dat += "
" + + dat += "Point Thresholds:" + dat += "
Those are thresholds the tracks require to reach with points to make an event." + for(var/track in event_tracks) + dat += "
[track]: [point_thresholds[track]]" + + if(GAMEMODE_PANEL_MAIN) + var/even = TRUE + dat += "

Event Tracks:

" + dat += "Every track represents progression towards scheduling an event of it's severity" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + for(var/track in event_tracks) + even = !even + var/background_cl = even ? "#17191C" : "#23273C" + var/lower = event_track_points[track] + var/upper = point_thresholds[track] + var/percent = round((lower/upper)*100) + var/next = 0 + var/last_points = last_point_gains[track] + if(last_points) + next = round(((upper - lower) / last_points / STORYTELLER_WAIT_TIME)) + dat += "" + dat += "" //Track + dat += "" //Progress + dat += "" //Next + var/datum/round_event_control/forced_event = forced_next_events[track] + var/forced = forced_event ? "[forced_event.name] X" : "" + dat += "" //Forced + dat += "" //Actions + dat += "" + dat += "
TrackProgressNextForcedActions
[track] - [last_points] per process.[percent]% ([lower]/[upper])~[next] seconds[forced]Set Pts. Next Event
" + + dat += "

Scheduled Events:

" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + var/sorted_scheduled = list() + for(var/datum/scheduled_event/scheduled as anything in scheduled_events) + sorted_scheduled[scheduled] = scheduled.start_time + sortTim(sorted_scheduled, cmp=/proc/cmp_numeric_asc, associative = TRUE) + even = TRUE + for(var/datum/scheduled_event/scheduled as anything in sorted_scheduled) + even = !even + var/background_cl = even ? "#17191C" : "#23273C" + dat += "" + dat += "" //Name + dat += "" //Severity + var/time = (scheduled.event.roundstart && !round_started) ? "ROUNDSTART" : "[(scheduled.start_time - world.time) / (1 SECONDS)] s." + dat += "" //Time + dat += "" //Actions + dat += "" + dat += "
NameSeverityTimeActions
[scheduled.event.name][scheduled.event.track][time][scheduled.get_href_actions()]
" + + dat += "

Running Events:

" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + even = TRUE + for(var/datum/round_event/event as anything in running) + even = !even + var/background_cl = even ? "#17191C" : "#23273C" + dat += "" + dat += "" //Name + dat += "" //Actions + dat += "" + dat += "
NameActions
[event.control.name]-TBA-
" + + var/datum/browser/popup = new(user, "gamemode_admin_panel", "Gamemode Panel", 670, 650) + popup.set_content(dat.Join()) + popup.open() + + /// Panel containing information and actions regarding events +/datum/controller/subsystem/gamemode/proc/event_panel(mob/user) + var/list/dat = list() + if(storyteller) + dat += "Storyteller: [storyteller.name]" + dat += "
Repetition penalty multiplier: [storyteller.event_repetition_multiplier]" + dat += "
Cost variance: [storyteller.cost_variance]" + if(storyteller.tag_multipliers) + dat += "
Tag multipliers:" + for(var/tag in storyteller.tag_multipliers) + dat += "[tag]:[storyteller.tag_multipliers[tag]] | " + storyteller.calculate_weights(statistics_track_page) + else + dat += "Storyteller: None
Weight and chance statistics will be inaccurate due to the present lack of a storyteller." + dat += "
Roundstart Events Forced Roundstart events will use rolled points, and are guaranteed to trigger (even if the used points are not enough)" + dat += "
Avg. event intervals: " + for(var/track in event_tracks) + if(last_point_gains[track]) + var/est_time = round(point_thresholds[track] / last_point_gains[track] / STORYTELLER_WAIT_TIME * 40 / 6) / 10 + dat += "[track]: ~[est_time] m. | " + dat += "
" + for(var/track in EVENT_PANEL_TRACKS) + dat += "[track]" + dat += "
" + /// Create event info and stats table + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + var/even = TRUE + var/total_weight = 0 + var/list/event_lookup + switch(statistics_track_page) + if(ALL_EVENTS) + event_lookup = control + if(UNCATEGORIZED_EVENTS) + event_lookup = uncategorized + else + event_lookup = event_pools[statistics_track_page] + var/list/assoc_spawn_weight = list() + for(var/datum/round_event_control/event as anything in event_lookup) + var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) + if(event.roundstart != roundstart_event_view) + continue + if(event.can_spawn_event(players_amt)) + total_weight += event.calculated_weight + assoc_spawn_weight[event] = event.calculated_weight + else + assoc_spawn_weight[event] = 0 + sortTim(assoc_spawn_weight, cmp=/proc/cmp_numeric_dsc, associative = TRUE) + for(var/datum/round_event_control/event as anything in assoc_spawn_weight) + even = !even + var/background_cl = even ? "#17191C" : "#23273C" + dat += "" + dat += "" //Name + dat += "" + var/occurence_string = "[event.occurrences]" + if(event.shared_occurence_type) + occurence_string += " (shared: [event.get_occurences()])" + var/max_occurence_string = "[event.max_occurrences]" + dat += "" //Occurences + dat += "" //Max Occurences + dat += "" //Minimum pop + dat += "" //Minimum time + dat += "" //Can happen? + dat += "" //Why can't happen? + var/weight_string = "(new.[event.calculated_weight] /raw.[event.weight])" + if(assoc_spawn_weight[event]) + var/percent = round((event.calculated_weight / total_weight) * 100) + weight_string = "[percent]% - [weight_string]" + dat += "" //Weight + dat += "" //Actions + dat += "" + dat += "
NameTagsOccurencesMax OccurencesM.PopM.TimeCan OccurFailure ReasonWeightActions
[event.name]" //Tags + for(var/tag in event.tags) + dat += "[tag] " + dat += "[occurence_string][max_occurence_string][event.min_players][event.earliest_start / (1 MINUTES)] m.[assoc_spawn_weight[event] ? "Yes" : "No"][event.return_failure_string(active_players)][weight_string][event.get_href_actions()]
" + var/datum/browser/popup = new(user, "gamemode_event_panel", "Event Panel", 1100, 600) + popup.set_content(dat.Join()) + popup.open() + +/datum/controller/subsystem/gamemode/Topic(href, href_list) + . = ..() + var/mob/user = usr + if(!check_rights(R_ADMIN)) + return + switch(href_list["panel"]) + if("main") + switch(href_list["action"]) + if("set_storyteller") + message_admins("[key_name_admin(usr)] is picking a new Storyteller.") + var/list/name_list = list() + for(var/storyteller_type in storytellers) + var/datum/storyteller/storyboy = storytellers[storyteller_type] + name_list[storyboy.name] = storyboy.type + var/new_storyteller_name = input(usr, "Choose new storyteller (circumvents voted one):", "Storyteller") as null|anything in name_list + if(!new_storyteller_name) + message_admins("[key_name_admin(usr)] has cancelled picking a Storyteller.") + return + message_admins("[key_name_admin(usr)] has chosen [new_storyteller_name] as the new Storyteller.") + var/new_storyteller_type = name_list[new_storyteller_name] + set_storyteller(new_storyteller_type) + if("halt_storyteller") + halted_storyteller = !halted_storyteller + message_admins("[key_name_admin(usr)] has [halted_storyteller ? "HALTED" : "un-halted"] the Storyteller.") + if("vars") + var/track = href_list["track"] + switch(href_list["var"]) + if("pts_multiplier") + var/new_value = input(usr, "New value:", "Set new value") as num|null + if(isnull(new_value) || new_value < 0) + return + message_admins("[key_name_admin(usr)] set point gain multiplier for [track] track to [new_value].") + point_gain_multipliers[track] = new_value + if("roundstart_pts") + var/new_value = input(usr, "New value:", "Set new value") as num|null + if(isnull(new_value) || new_value < 0) + return + message_admins("[key_name_admin(usr)] set roundstart pts multiplier for [track] track to [new_value].") + roundstart_point_multipliers[track] = new_value + if("min_pop") + var/new_value = input(usr, "New value:", "Set new value") as num|null + if(isnull(new_value) || new_value < 0) + return + message_admins("[key_name_admin(usr)] set minimum population for [track] track to [new_value].") + min_pop_thresholds[track] = new_value + if("pts_threshold") + var/new_value = input(usr, "New value:", "Set new value") as num|null + if(isnull(new_value) || new_value < 0) + return + message_admins("[key_name_admin(usr)] set point threshold of [track] track to [new_value].") + point_thresholds[track] = new_value + if("reload_config_vars") + message_admins("[key_name_admin(usr)] reloaded gamemode config vars.") + load_config_vars() + if("tab") + var/tab = href_list["tab"] + panel_page = tab + if("open_stats") + event_panel(user) + return + if("track_action") + var/track = href_list["track"] + if(!(track in event_tracks)) + return + switch(href_list["track_action"]) + if("remove_forced") + if(forced_next_events[track]) + var/datum/round_event_control/event = forced_next_events[track] + message_admins("[key_name_admin(usr)] removed forced event [event.name] from track [track].") + forced_next_events -= track + if("set_pts") + var/set_pts = input(usr, "New point amount ([point_thresholds[track]]+ invokes event):", "Set points for [track]") as num|null + if(isnull(set_pts)) + return + event_track_points[track] = set_pts + message_admins("[key_name_admin(usr)] set points of [track] track to [set_pts].") + log_admin_private("[key_name(usr)] set points of [track] track to [set_pts].") + if("next_event") + message_admins("[key_name_admin(usr)] invoked next event for [track] track.") + log_admin_private("[key_name(usr)] invoked next event for [track] track.") + event_track_points[track] = point_thresholds[track] + if(storyteller) + storyteller.handle_tracks() + admin_panel(user) + if("stats") + switch(href_list["action"]) + if("set_roundstart") + roundstart_event_view = !roundstart_event_view + if("set_cat") + var/new_category = href_list["cat"] + if(new_category in EVENT_PANEL_TRACKS) + statistics_track_page = new_category + event_panel(user) + +/datum/controller/subsystem/gamemode/proc/round_end_report() + if(!length(round_end_data)) + return + for(var/datum/round_event/event as anything in round_end_data) + if(!istype(event)) + continue + event.round_end_report() + + +/datum/controller/subsystem/gamemode/proc/store_roundend_data() + var/congealed_string = "" + for(var/event_name as anything in triggered_round_events) + congealed_string += event_name + congealed_string += "," + text2file(congealed_string, "data/last_round_events.txt") + +/datum/controller/subsystem/gamemode/proc/load_roundstart_data() + var/massive_string = trim(file2text("data/last_round_events.txt")) + if(fexists("data/last_round_events.txt")) + fdel("data/last_round_events.txt") + if(!massive_string) + return + last_round_events = splittext(massive_string, ",") + + if(!length(last_round_events)) + return + for(var/event_name as anything in last_round_events) + for(var/datum/round_event_control/listed as anything in control) + if(listed.name != event_name) + continue + listed.occurrences++ + listed.occurrences++ diff --git a/monkestation/code/modules/storytellers/readme.md b/monkestation/code/modules/storytellers/readme.md new file mode 100644 index 000000000000..ace62b725afa --- /dev/null +++ b/monkestation/code/modules/storytellers/readme.md @@ -0,0 +1,44 @@ +## Title: + + +MODULE ID: STORYTELLERS + +### Description: + +This PR adds adds on to the current dynamic system by having events be guided by storytellers, this also caches the events ran last round and depending on severity cuts their weights by x % to make rounds not repeat as often. + + + + +### TG Proc/File Changes: + + + - N/A + +### Defines: + + + - code\__DEFINES\~monkestation\storytellers.dm + +### Master file additions + +- code\modules\events\_event.dm +- code\modules\admin\topic.dm +- code\controllers\subsystem\ticker.dm +- code\controllers\subsystem\statpanel.dm +- all event files + + + +### Included files that are not contained in this module: + +- N/A + + +### Credits: + + + +Made by Unknown Coders on Horizon (Horizon's Repo atleast as of 10/14/2023 no longer exists if this changes please let me know on discord #Borbop) + +Ported by Dwasint diff --git a/monkestation/code/modules/storytellers/scheduled_events.dm b/monkestation/code/modules/storytellers/scheduled_events.dm new file mode 100644 index 000000000000..cfb67a2dcf72 --- /dev/null +++ b/monkestation/code/modules/storytellers/scheduled_events.dm @@ -0,0 +1,94 @@ +///Scheduled event datum for SSgamemode to put events into. +/datum/scheduled_event + /// What event are scheduling. + var/datum/round_event_control/event + /// When do we start our event + var/start_time = 0 + /// If we were created by a storyteller, here's a cost to refund in case. + var/cost + /// Whether we alerted admins about this schedule when it's close to being invoked. + var/alerted_admins = FALSE + /// Whether we are faking an occurence or not + var/fakes_occurence = TRUE + /// Whether this ignores event can run checks. If bussed by an admin, you want to ignore checks + var/ignores_checks + /// Whether the scheduled event will override the announcement change. If null it won't. TRUE = force yes. FALSE = force no. + var/announce_change + +/datum/scheduled_event/New(datum/round_event_control/passed_event, passed_time, passed_cost, passed_ignore, passed_announce) + . = ..() + event = passed_event + start_time = passed_time + cost = passed_cost + ignores_checks = passed_ignore + announce_change = passed_announce + /// Add a fake occurence to make the weightings/checks properly respect the scheduled event. + event.add_occurence() + fakes_occurence = TRUE + +/datum/scheduled_event/proc/remove_occurence() + if(fakes_occurence) + /// Remove the fake occurence if we still have it + event.subtract_occurence() + fakes_occurence = FALSE + +/// For admins who want to reschedule the event. +/datum/scheduled_event/proc/reschedule(new_time) + start_time = new_time + alerted_admins = FALSE + +/datum/scheduled_event/proc/get_href_actions() + var/round_started = SSticker.HasRoundStarted() + if(round_started) + return "Fire Reschedule Cancel Refund" + else + return "Cancel" + +/// Try and fire off the scheduled event +/datum/scheduled_event/proc/try_fire() + /// Remove our fake occurence pre-emptively for the checks. + remove_occurence() + + ///If we can't spawn the scheduled event, refund it. + if(!ignores_checks && !event.can_spawn_event(1000)) //FALSE argument to ignore popchecks, to prevent scheduled events from failing from people dying/cryoing etc. + message_admins("Scheduled Event: [event] was unable to run and has been refunded.") + SSgamemode.refund_scheduled_event(src) + return + + ///Trigger the event and remove the scheduled datum + message_admins("Scheduled Event: [event] successfully triggered.") + SSgamemode.TriggerEvent(event, ignores_checks) + SSgamemode.remove_scheduled_event(src) + +/datum/scheduled_event/Destroy() + remove_occurence() + event = null + return ..() + +/datum/scheduled_event/Topic(href, href_list) + . = ..() + if(QDELETED(src)) + return + var/round_started = SSticker.HasRoundStarted() + switch(href_list["action"]) + if("cancel") + message_admins("[key_name_admin(usr)] cancelled scheduled event [event.name].") + log_admin_private("[key_name(usr)] cancelled scheduled event [event.name].") + SSgamemode.remove_scheduled_event(src) + if("refund") + message_admins("[key_name_admin(usr)] refunded scheduled event [event.name].") + log_admin_private("[key_name(usr)] refunded scheduled event [event.name].") + SSgamemode.refund_scheduled_event(src) + if("reschedule") + var/new_schedule = input(usr, "New schedule time (in seconds):", "Reschedule Event") as num|null + if(isnull(new_schedule) || QDELETED(src)) + return + start_time = world.time + new_schedule * 1 SECONDS + message_admins("[key_name_admin(usr)] rescheduled event [event.name] to [new_schedule] seconds.") + log_admin_private("[key_name(usr)] rescheduled event [event.name] to [new_schedule] seconds.") + if("fire") + if(!round_started) + return + message_admins("[key_name_admin(usr)] has fired scheduled event [event.name].") + log_admin_private("[key_name(usr)] has fired scheduled event [event.name].") + try_fire() diff --git a/monkestation/code/modules/storytellers/storytellers/_storyteller.dm b/monkestation/code/modules/storytellers/storytellers/_storyteller.dm new file mode 100644 index 000000000000..893089a255a1 --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/_storyteller.dm @@ -0,0 +1,179 @@ + +///The storyteller datum. He operates with the SSgamemode data to run events +/datum/storyteller + /// Name of our storyteller. + var/name = "Badly coded storyteller" + /// Description of our storyteller. + var/desc = "Report this to the coders." + /// Text that the players will be greeted with when this storyteller is chosen. + var/welcome_text = "Set your eyes on the horizon." + /// This is the multiplier for repetition penalty in event weight. The lower the harsher it is + var/event_repetition_multiplier = 0.6 + /// Multipliers for starting points. + var/list/starting_point_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1, + EVENT_TRACK_MAJOR = 1, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1 + ) + /// Multipliers for point gains. + var/list/point_gains_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1, + EVENT_TRACK_MAJOR = 1, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1 + ) + /// Multipliers of weight to apply for each tag of an event. + var/list/tag_multipliers + + /// Variance in cost of the purchased events. Effectively affects frequency of events + var/cost_variance = 15 + + /// Variance in the budget of roundstart points. + var/roundstart_points_variance = 15 + + /// Whether the storyteller guaranteed a roleset roll (antag) on roundstart. (Still needs to pass pop check) + var/guarantees_roundstart_roleset = TRUE + + /// Whether the storyteller has the distributions disabled. Important for ghost storytellers + var/disable_distribution = FALSE + + /// Whether people can vote for the storyteller + var/votable = TRUE + /// If defined, will need a minimum of population to be votable + var/population_min + /// If defined, it will not be votable if exceeding the population + var/population_max + /// has the round gotten to the point where jobs are pre-created? + var/round_started = FALSE + ///have we done roundstart checks? + var/roundstart_checks = FALSE + ///prob of roundstart antag + var/roundstart_prob = 25 + ///do we ignore ran_roundstart + var/ignores_roundstart = FALSE + +/datum/storyteller/process(delta_time) + if(!round_started) // we are differing roundstarted ones until base roundstart so we can get cooler stuff + return + if(disable_distribution) + return + if(!guarantees_roundstart_roleset && prob(roundstart_prob) && !roundstart_checks) + roundstart_checks = TRUE + if(!ignores_roundstart) + SSgamemode.ran_roundstart = TRUE + + add_points(delta_time) + handle_tracks() + +/// Add points to all tracks while respecting the multipliers. +/datum/storyteller/proc/add_points(delta_time) + var/datum/controller/subsystem/gamemode/mode = SSgamemode + var/base_point = EVENT_POINT_GAINED_PER_SECOND * delta_time * mode.event_frequency_multiplier + for(var/track in mode.event_track_points) + var/point_gain = base_point * point_gains_multipliers[track] * mode.point_gain_multipliers[track] + if(mode.allow_pop_scaling) + point_gain *= mode.current_pop_scale_multipliers[track] + mode.event_track_points[track] += point_gain + mode.last_point_gains[track] = point_gain + +/// Goes through every track of the gamemode and checks if it passes a threshold to buy an event, if does, buys one. +/datum/storyteller/proc/handle_tracks() + . = FALSE //Has return value for the roundstart loop + var/datum/controller/subsystem/gamemode/mode = SSgamemode + for(var/track in mode.event_track_points) + var/points = mode.event_track_points[track] + if(points >= mode.point_thresholds[track] && find_and_buy_event_from_track(track)) + . = TRUE + +/// Find and buy a valid event from a track. +/datum/storyteller/proc/find_and_buy_event_from_track(track) + . = FALSE + var/are_forced = FALSE + var/datum/controller/subsystem/gamemode/mode = SSgamemode + var/datum/round_event_control/picked_event + if(mode.forced_next_events[track]) //Forced event by admin + /// Dont check any prerequisites, it has been forced by an admin + picked_event = mode.forced_next_events[track] + mode.forced_next_events -= track + are_forced = TRUE + else + mode.update_crew_infos() + var/pop_required = mode.min_pop_thresholds[track] + if(mode.active_players < pop_required) + message_admins("Storyteller failed to pick an event for track of [track] due to insufficient population. (required: [pop_required] active pop for [track]. Current: [mode.active_players])") + mode.event_track_points[track] *= TRACK_FAIL_POINT_PENALTY_MULTIPLIER + return + calculate_weights(track) + var/list/valid_events = list() + // Determine which events are valid to pick + for(var/datum/round_event_control/event as anything in mode.event_pools[track]) + var/players_amt = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1) + if(event.can_spawn_event(players_amt)) + if(QDELETED(event)) + message_admins("[event.name] was deleted!") + continue + valid_events[event] = round(event.calculated_weight * 10) //multiply weight by 10 to get first decimal value + ///If we didn't get any events, remove the points inform admins and dont do anything + if(!length(valid_events)) + message_admins("Storyteller failed to pick an event for track of [track].") + mode.event_track_points[track] *= TRACK_FAIL_POINT_PENALTY_MULTIPLIER + return + picked_event = pick_weight(valid_events) + if(!picked_event) + if(length(valid_events)) + var/added_string = "" + for(var/datum/round_event_control/item as anything in valid_events) + added_string += "[item.name]:[valid_events[item]]; " + stack_trace("WARNING: Storyteller picked a null from event pool, defaulting to option 1, look at weights:[added_string]") + shuffle_inplace(valid_events) + picked_event = valid_events[1] + else + message_admins("WARNING: Storyteller picked a null from event pool. Aborting event roll.") + stack_trace("WARNING: Storyteller picked a null from event pool.") + SSgamemode.event_track_points[track] = 0 + return + buy_event(picked_event, track, are_forced) + . = TRUE + +/// Find and buy a valid event from a track. +/datum/storyteller/proc/buy_event(datum/round_event_control/bought_event, track, forced = FALSE) + var/datum/controller/subsystem/gamemode/mode = SSgamemode + // Perhaps use some bell curve instead of a flat variance? + var/total_cost = bought_event.cost * mode.point_thresholds[track] + if(!bought_event.roundstart) + total_cost *= (1 + (rand(-cost_variance, cost_variance)/100)) //Apply cost variance if not roundstart event + mode.event_track_points[track] -= total_cost + message_admins("Storyteller purchased and triggered [bought_event] event, on [track] track, for [total_cost] cost.") + if(bought_event.roundstart) + if(!ignores_roundstart) + SSgamemode.ran_roundstart = TRUE + SSgamemode.current_roundstart_event = bought_event + mode.TriggerEvent(bought_event, forced) + else + mode.schedule_event(bought_event, 3 MINUTES, total_cost, _forced = forced) + SSgamemode.triggered_round_events |= bought_event.name + +/// Calculates the weights of the events from a passed track. +/datum/storyteller/proc/calculate_weights(track) + var/datum/controller/subsystem/gamemode/mode = SSgamemode + for(var/datum/round_event_control/event as anything in mode.event_pools[track]) + var/weight_total = event.weight + /// Apply tag multipliers if able + if(tag_multipliers) + for(var/tag in tag_multipliers) + if(tag in event.tags) + weight_total *= tag_multipliers[tag] + /// Apply occurence multipliers if able + var/occurences = event.get_occurences() + if(occurences) + ///If the event has occured already, apply a penalty multiplier based on amount of occurences + weight_total -= event.reoccurence_penalty_multiplier * weight_total * (1 - (event_repetition_multiplier ** occurences)) + /// Write it + event.calculated_weight = weight_total + +/datum/storyteller/guide + name = "The Guide" + desc = "The Guide will provide a balanced and varied experience. Consider this the default experience." diff --git a/monkestation/code/modules/storytellers/storytellers/ghost.dm b/monkestation/code/modules/storytellers/storytellers/ghost.dm new file mode 100644 index 000000000000..b5f697567ae7 --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/ghost.dm @@ -0,0 +1,6 @@ + +/datum/storyteller/ghost + name = "The Ghost" + desc = "The Ghost will not run a single event or create an antagonist." + disable_distribution = TRUE + population_max = 10 diff --git a/monkestation/code/modules/storytellers/storytellers/jester.dm b/monkestation/code/modules/storytellers/storytellers/jester.dm new file mode 100644 index 000000000000..de7ef07e901c --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/jester.dm @@ -0,0 +1,14 @@ + +/datum/storyteller/jester + name = "The Jester" + desc = "The Jester will create much more events, with higher possibilities of them repeating." + event_repetition_multiplier = 0.8 + point_gains_multipliers = list( + EVENT_TRACK_MUNDANE = 1.2, + EVENT_TRACK_MODERATE = 1.4, + EVENT_TRACK_MAJOR = 1.4, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1 + ) + population_min = 10 + ignores_roundstart = TRUE diff --git a/monkestation/code/modules/storytellers/storytellers/sleeper.dm b/monkestation/code/modules/storytellers/storytellers/sleeper.dm new file mode 100644 index 000000000000..5455566b544b --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/sleeper.dm @@ -0,0 +1,13 @@ + +/datum/storyteller/sleeper + name = "The Sleeper" + desc = "The Sleeper will create less impactful events, especially ones involving combat or destruction. The chill experience." + point_gains_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 0.7, + EVENT_TRACK_MAJOR = 0.7, + EVENT_TRACK_ROLESET = 0.7, + EVENT_TRACK_OBJECTIVES = 1 + ) + guarantees_roundstart_roleset = FALSE + tag_multipliers = list(TAG_COMBAT = 0.6, TAG_DESTRUCTIVE = 0.7) diff --git a/monkestation/code/modules/storytellers/storytellers/vote.dm b/monkestation/code/modules/storytellers/storytellers/vote.dm new file mode 100644 index 000000000000..705b9a5f733b --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/vote.dm @@ -0,0 +1,30 @@ +/datum/vote/var/has_desc = FALSE + +/datum/vote/proc/return_desc(vote_name) + return "" + +/datum/vote/storyteller + name = "Storyteller" + message = "Vote for the storyteller!" + has_desc = TRUE + + +/datum/vote/storyteller/New() + . = ..() + default_choices = list() + default_choices = SSgamemode.storyteller_vote_choices() + + +/datum/vote/storyteller/return_desc(vote_name) + return SSgamemode.storyteller_desc(vote_name) + +/datum/vote/storyteller/create_vote() + . = ..() + if((length(choices) == 1)) // Only one choice, no need to vote. Let's just auto-rotate it to the only remaining map because it would just happen anyways. + var/de_facto_winner = choices[1] + SSgamemode.storyteller_vote_result(de_facto_winner) + to_chat(world, span_boldannounce("The storyteller vote has been skipped because there is only one storyteller left to vote for. The map has been changed to [de_facto_winner].")) + return FALSE + +/datum/vote/storyteller/finalize_vote(winning_option) + SSgamemode.storyteller_vote_result(winning_option) diff --git a/monkestation/code/modules/storytellers/storytellers/warrior.dm b/monkestation/code/modules/storytellers/storytellers/warrior.dm new file mode 100644 index 000000000000..d1eb510aac66 --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/warrior.dm @@ -0,0 +1,12 @@ +/datum/storyteller/warrior + name = "The Warrior" + desc = "The Warrior will create more impactful events, often focused on combat." + point_gains_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1.3, + EVENT_TRACK_MAJOR = 1.3, + EVENT_TRACK_ROLESET = 1, + EVENT_TRACK_OBJECTIVES = 1 + ) + tag_multipliers = list(TAG_COMBAT = 1.5) + population_min = 10 diff --git a/tgstation.dme b/tgstation.dme index 276f151ca04f..f433de28f8f6 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -390,6 +390,7 @@ #include "code\__DEFINES\~monkestation\smoothing.dm" #include "code\__DEFINES\~monkestation\span.dm" #include "code\__DEFINES\~monkestation\status_effects.dm" +#include "code\__DEFINES\~monkestation\storytellers.dm" #include "code\__DEFINES\~monkestation\traits.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_atom.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_carbon.dm" @@ -5468,7 +5469,6 @@ #include "interface\skin.dmf" #include "monkestation\code\__DEFINES\projectile.dm" #include "monkestation\code\__HELPERS\_lists.dm" -#include "monkestation\code\__HELPERS\mobs.dm" #include "monkestation\code\__HELPERS\reagents.dm" #include "monkestation\code\__HELPERS\turfs.dm" #include "monkestation\code\_onclick\hud\alert.dm" @@ -6277,6 +6277,30 @@ #include "monkestation\code\modules\store\store_items\suits.dm" #include "monkestation\code\modules\store\store_items\toys.dm" #include "monkestation\code\modules\store\store_items\under.dm" +#include "monkestation\code\modules\storytellers\config.dm" +#include "monkestation\code\modules\storytellers\gamemode_subsystem.dm" +#include "monkestation\code\modules\storytellers\scheduled_events.dm" +#include "monkestation\code\modules\storytellers\converted_events\_base_event.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\bloodcult.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\bloodsuckers.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\changeling.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\clockwork_cult.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\clown_operative.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\heretic.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\malf.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\nuclear_operative.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\obsessed.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\revolutionary.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\traitor.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\wizard.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\ghosts\nuclear_operative_ghost.dm" +#include "monkestation\code\modules\storytellers\converted_events\solo\ghosts\wizard.dm" +#include "monkestation\code\modules\storytellers\storytellers\_storyteller.dm" +#include "monkestation\code\modules\storytellers\storytellers\ghost.dm" +#include "monkestation\code\modules\storytellers\storytellers\jester.dm" +#include "monkestation\code\modules\storytellers\storytellers\sleeper.dm" +#include "monkestation\code\modules\storytellers\storytellers\vote.dm" +#include "monkestation\code\modules\storytellers\storytellers\warrior.dm" #include "monkestation\code\modules\surgery\bodyparts\arachnid_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\clockwork_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\ipc_bodyparts.dm" diff --git a/tgui/packages/tgui/interfaces/Changelog.js b/tgui/packages/tgui/interfaces/Changelog.js index f5974964b081..9ee1a7b49719 100644 --- a/tgui/packages/tgui/interfaces/Changelog.js +++ b/tgui/packages/tgui/interfaces/Changelog.js @@ -193,7 +193,7 @@ export class Changelog extends Component {

{'You can also join our discord '} - here. + here.

{dateDropdown} diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts index 5e9dcb01ab15..b648b8054644 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/data.ts @@ -43,7 +43,6 @@ export type Species = { icon: string; use_skintones: BooleanLike; - use_fur: BooleanLike; sexes: BooleanLike; enabled_features: string[]; diff --git a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/monkestation/fur.tsx b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/monkestation/fur.tsx index d896df9f2195..6b0458613f7b 100644 --- a/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/monkestation/fur.tsx +++ b/tgui/packages/tgui/interfaces/PreferencesMenu/preferences/features/character_preferences/monkestation/fur.tsx @@ -1,60 +1,34 @@ -import { sortBy } from 'common/collections'; -import { Box, Stack } from '../../../../../../components'; -import { Feature, FeatureChoicedServerData, FeatureValueProps, StandardizedDropdown } from '../../base'; - -type HexValue = { - lightness: number; - value: string; -}; - -type FurServerData = FeatureChoicedServerData & { - display_names: NonNullable; - to_hex: Record; +import { Feature, FeatureValueProps, StandardizedPalette } from '../../base'; + +const furPresets = { + // these need to be short color (3 byte) compatible + '#ffffff': 'Albino', + '#ffb089': 'Chimp', + '#aeafb3': 'Grey', + '#bfd0ca': 'Snow', + '#ce7d54': 'Orange', + '#c47373': 'Red', + '#f4e2d5': 'Cream', }; -const sortHexValues = sortBy<[string, HexValue]>( - ([_, hexValue]) => -hexValue.lightness -); - -export const fur: Feature = { - name: 'Fur coloring', - component: (props: FeatureValueProps) => { - const { handleSetValue, serverData, value } = props; - - if (!serverData) { - return null; - } +export const fur: Feature = { + name: 'Fur Color', + small_supplemental: false, + predictable: false, + component: (props: FeatureValueProps) => { + const { handleSetValue, value, featureId, act } = props; return ( - key - )} - displayNames={Object.fromEntries( - Object.entries(serverData.display_names).map(([key, displayName]) => { - const hexColor = serverData.to_hex[key]; - - return [ - key, - - - - - - {displayName} - , - ]; - }) - )} + ); }, diff --git a/tgui/packages/tgui/interfaces/VotePanel.tsx b/tgui/packages/tgui/interfaces/VotePanel.tsx index 0b4dfbe76383..13eacc5d1a9f 100644 --- a/tgui/packages/tgui/interfaces/VotePanel.tsx +++ b/tgui/packages/tgui/interfaces/VotePanel.tsx @@ -19,6 +19,7 @@ type Vote = { type Option = { name: string; votes: number; + desc: string; }; type ActiveVote = { @@ -180,6 +181,7 @@ const ChoicesPanel = (props, context) => { textAlign="right" buttons={