diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000000..5547f1b61f6 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,8 @@ +{ + "workbench.editorAssociations": [ + { + "filenamePattern": "*.dmi", + "viewType": "imagePreview.previewEditor" + } + ] +} diff --git a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm deleted file mode 100644 index 93415236e34..00000000000 --- a/_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm +++ /dev/null @@ -1,9161 +0,0 @@ -//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE -"aa" = ( -/turf/template_noop, -/area/template_noop) -"ab" = ( -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"ac" = ( -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/lavaland/surface/outdoors) -"ad" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_virology"; - name = "interior access button"; - pixel_x = 25; - pixel_y = -25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ae" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"af" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ag" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ah" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/beer/upgraded{ - dir = 1 - }, -/obj/structure/sign/barsign{ - pixel_y = -32; - req_access = null; - req_access_txt = "0" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ai" = ( -/obj/structure/table/wood, -/obj/machinery/chem_dispenser/soda/upgraded{ - dir = 1 - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"aj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical/syndicate_access, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ak" = ( -/obj/machinery/vending/boozeomat/syndicate_access, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) -"al" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/medical/syndicate_access, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"am" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"an" = ( -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ao" = ( -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ap" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aq" = ( -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"ar" = ( -/obj/effect/decal/cleanable/dirt, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"as" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"at" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_chemistry" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"au" = ( -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"av" = ( -/obj/machinery/light/small, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/mob/living/carbon/human/monkey{ - faction = list("neutral","syndicate") - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aw" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"ax" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 1; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ay" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"az" = ( -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_west_south"; - pixel_x = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_west_south_exterior"; - tag_interior_door = "syndicate_base_west_south_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aA" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/obj/structure/closet/emcloset/anchored, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/flashlight/seclite, -/obj/item/clothing/mask/gas, -/obj/structure/sign/vacuum{ - pixel_x = 0; - pixel_y = 32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aB" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_interior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aC" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_west_south"; - name = "interior access button"; - pixel_x = 25; - pixel_y = 25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aF" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aG" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_south_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aH" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aI" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - frequency = 1449; - id_tag = "syndicate_base_virology_interior"; - locked = 1; - name = "Virology Lab Interior Airlock"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"aJ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - frequency = 1449; - id_tag = "syndicate_base_virology_exterior"; - locked = 1; - name = "Virology Lab Exterior Airlock"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"aK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_virology"; - name = "exterior access button"; - pixel_x = -25; - pixel_y = 25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"aL" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"aM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/chem_dispenser/upgraded, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"aN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_south"; - name = "interior access button"; - pixel_x = 25; - pixel_y = -25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aO" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_south_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aP" = ( -/obj/structure/sign/vacuum{ - pixel_x = -32 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_south"; - pixel_x = 25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_south_exterior"; - tag_interior_door = "syndicate_base_south_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aR" = ( -/obj/structure/sign/xeno_warning_mining{ - pixel_x = -32 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aS" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_south"; - name = "exterior access button"; - pixel_x = 20; - pixel_y = 21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"aT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_west_north"; - name = "interior access button"; - pixel_x = 25; - pixel_y = -8; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"aU" = ( -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_west_north"; - pixel_x = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_west_north_exterior"; - tag_interior_door = "syndicate_base_west_north_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aV" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/sign/fire{ - pixel_x = 32 - }, -/obj/structure/closet/emcloset/anchored, -/obj/item/tank/internals/emergency_oxygen/engi, -/obj/item/flashlight/seclite, -/obj/item/clothing/mask/gas, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/vacuum{ - pixel_x = 0; - pixel_y = -32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aW" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_arrivals"; - name = "Arrivals Blast Door Control"; - pixel_y = -26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"aX" = ( -/obj/effect/turf_decal/caution/red{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 2; - icon_state = "pipe-c" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"aY" = ( -/obj/structure/fans/tiny, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_north_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"aZ" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_south_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"ba" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_south_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"bb" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_west_south_interior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"bc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/mapping_helpers/no_lava, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_west_north"; - name = "exterior access button"; - pixel_x = -21; - pixel_y = 21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"bd" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_virology"; - pixel_x = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_virology_exterior"; - tag_interior_door = "syndicate_base_virology_interior" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"be" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Engineering APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 8; - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bf" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass{ - frequency = 1449; - id_tag = "syndicate_base_incinerator_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_incinerator"; - name = "interior access button"; - pixel_x = -25; - pixel_y = 0; - req_access_txt = "150" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bg" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bi" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/binary/pump{ - name = "Incinerator Input" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bj" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/door/airlock/glass{ - frequency = 1449; - id_tag = "syndicate_base_incinerator_exterior"; - locked = 1; - req_access_txt = "150" - }, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_incinerator"; - name = "exterior access button"; - pixel_x = -25; - pixel_y = 0; - req_access_txt = "150" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bk" = ( -/obj/structure/rack, -/obj/item/flashlight{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/flashlight, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bl" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution/stand_clear{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/access_button{ - command = "cycle_interior"; - frequency = 1449; - master_tag = "syndicate_base_east"; - name = "interior access button"; - pixel_x = 25; - pixel_y = 25; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bn" = ( -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_east_interior"; - locked = 1; - req_access_txt = "150" - }, -/obj/structure/fans/tiny, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bo" = ( -/obj/structure/sign/vacuum{ - pixel_y = -32 - }, -/obj/machinery/light/small, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_east"; - pixel_x = 0; - pixel_y = 25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_east_exterior"; - tag_interior_door = "syndicate_base_east_interior" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bp" = ( -/obj/structure/fans/tiny, -/obj/machinery/door/airlock/external{ - frequency = 1449; - id_tag = "syndicate_base_east_exterior"; - locked = 1; - req_access_txt = "150" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bq" = ( -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_east"; - name = "exterior access button"; - pixel_x = -21; - pixel_y = 21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"br" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/trinary/mixer/flipped{ - dir = 8; - node1_concentration = 0.2; - node2_concentration = 0.8; - on = 1; - target_pressure = 4500 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bs" = ( -/obj/machinery/air_sensor{ - frequency = 1442; - id_tag = "syndie_lavaland_n2_sensor" - }, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bt" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bu" = ( -/obj/machinery/atmospherics/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1442; - id_tag = "syndie_lavaland_n2_out"; - name = "nitrogen out" - }, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/effect/mapping_helpers/no_lava, -/obj/machinery/access_button{ - command = "cycle_exterior"; - frequency = 1449; - master_tag = "syndicate_base_west_south"; - name = "exterior access button"; - pixel_x = -21; - pixel_y = -21; - req_access_txt = "150" - }, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"bw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/bookcase/random, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"bx" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/turretid/lethal{ - ailock = 1; - check_synth = 0; - control_area = "Syndicate Lavaland Primary Hallway"; - dir = 1; - faction = "syndicate"; - name = "Base turret controls"; - pixel_y = 30; - req_access = null; - req_access_txt = "150"; - syndicate = 1 - }, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"by" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bz" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 6; - initialize_directions = 6; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bA" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/scrubber, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bB" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4; - level = 2 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bC" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bD" = ( -/obj/machinery/atmospherics/pipe/simple/visible/universal, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bE" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bF" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/visible/supply{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bH" = ( -/obj/machinery/atmospherics/pipe/simple/visible/cyan, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bI" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"bJ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/cyan, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bK" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/visible/cyan{ - dir = 4; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bL" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/yellow{ - dir = 8; - level = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bM" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/binary/pump{ - dir = 8; - name = "Plasma to Incinerator" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 10; - level = 2 - }, -/obj/structure/reagent_dispensers/fueltank, -/obj/item/clothing/head/welding, -/obj/item/weldingtool/largetank, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bO" = ( -/obj/machinery/ignition_switch{ - id = "syndicate_base_incinerator"; - pixel_x = 6; - pixel_y = -24 - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/embedded_controller/radio/airlock/access_controller{ - frequency = 1449; - id_tag = "syndicate_base_incinerator"; - pixel_x = -6; - pixel_y = -25; - req_access_txt = "150"; - tag_exterior_door = "syndicate_base_incinerator_exterior"; - tag_interior_door = "syndicate_base_incinerator_interior" - }, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bP" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bQ" = ( -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"bR" = ( -/obj/machinery/optable, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"bS" = ( -/obj/machinery/vending/toyliberationstation{ - req_access_txt = "150" - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bT" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"bU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi"; - name = "Syndicate Experimentation Lockdown Control"; - pixel_y = 26; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"bV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/white/corner{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"bW" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"bX" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"bY" = ( -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"bZ" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ca" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/visible/yellow{ - dir = 6; - level = 2 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cb" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"cc" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"cd" = ( -/obj/machinery/light/small, -/obj/structure/extinguisher_cabinet{ - pixel_y = -29 - }, -/obj/structure/cable/yellow, -/obj/machinery/power/apc/syndicate{ - dir = 4; - name = "Medbay APC"; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/baseturf_helper/lava_land/surface, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ce" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/main) -"cg" = ( -/obj/machinery/portable_atmospherics/canister/nitrogen, -/turf/simulated/floor/engine/n2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ch" = ( -/obj/machinery/air_sensor{ - frequency = 1442; - id_tag = "syndie_lavaland_o2_sensor" - }, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ci" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cj" = ( -/obj/machinery/atmospherics/unary/vent_pump/siphon/on{ - dir = 8; - frequency = 1442; - id_tag = "syndie_lavaland_o2_out"; - name = "oxygen out" - }, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ck" = ( -/obj/machinery/portable_atmospherics/canister/oxygen, -/turf/simulated/floor/engine/o2, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cl" = ( -/obj/machinery/atmospherics/unary/vent_pump/siphon/on{ - dir = 1; - frequency = 1442; - id_tag = "syndie_lavaland_tox_out"; - name = "toxin out" - }, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cm" = ( -/obj/machinery/air_sensor{ - frequency = 1442; - id_tag = "syndie_lavaland_tox_sensor" - }, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cn" = ( -/obj/machinery/portable_atmospherics/canister/toxins, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"co" = ( -/obj/machinery/light/small, -/turf/simulated/floor/engine/plasma, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cp" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/igniter{ - id = "syndicate_base_incinerator" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cq" = ( -/obj/machinery/atmospherics/unary/outlet_injector/on{ - dir = 1; - id = "syndie_lavaland_inc_in" - }, -/obj/structure/sign/vacuum/external{ - pixel_y = -32 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cr" = ( -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_incineratorinput" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cs" = ( -/obj/structure/cable, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/compressor{ - comp_id = "syndie_lavaland_incineratorturbine"; - dir = 1; - luminosity = 2 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ct" = ( -/obj/structure/cable, -/obj/machinery/power/turbine{ - dir = 2; - luminosity = 2 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cu" = ( -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_incineratoroutput" - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"cA" = ( -/obj/structure/table/reinforced, -/obj/item/clothing/glasses/science, -/obj/item/clothing/glasses/science, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"cG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/chem_master, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dc" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"di" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"do" = ( -/obj/structure/closet/secure_closet/medical1{ - req_access = null; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/beakers/bluespace, -/obj/item/storage/box/beakers/bluespace, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"du" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_chemistry"; - name = "Chemistry Blast Door Control"; - pixel_y = 26; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/chem_heater, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dw" = ( -/obj/structure/chair/office/light{ - dir = 1 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/stripes/line, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dy" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dA" = ( -/obj/structure/closet/l3closet, -/obj/machinery/power/apc/syndicate{ - dir = 8; - name = "Chemistry APC"; - pixel_x = -24 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dB" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dC" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dE" = ( -/obj/structure/table/glass, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5; - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5; - pixel_y = 2 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5; - pixel_x = 2; - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/reagent_containers/glass/bottle/charcoal{ - pixel_x = 6 - }, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/turf/simulated/floor/plasteel/white/corner{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dG" = ( -/obj/structure/lattice/catwalk, -/turf/simulated/floor/plating/lava/smooth/lava_land_surface, -/area/lavaland/surface/outdoors) -"dI" = ( -/obj/structure/table/glass, -/obj/machinery/reagentgrinder{ - pixel_y = 5 - }, -/obj/item/reagent_containers/glass/beaker/large, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dK" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate/secure/gear{ - req_access_txt = "150" - }, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/gloves/combat, -/obj/item/clothing/under/syndicate/combat, -/obj/item/clothing/under/syndicate/combat, -/obj/item/storage/belt/military, -/obj/item/storage/belt/military, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/shoes/combat, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/glasses/night, -/obj/item/clothing/glasses/night, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dL" = ( -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/structure/closet/crate, -/obj/item/extinguisher{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/extinguisher{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/extinguisher{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/flashlight{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/flashlight{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/flashlight{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dM" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets{ - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dP" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"dQ" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"dR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/hatch{ - heat_proof = 1; - name = "Experimentation Room"; - req_access_txt = "150" - }, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi"; - name = "Syndicate Research Experimentation Shutters" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"dS" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi"; - name = "Syndicate Research Experimentation Shutters" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"dT" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dU" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dX" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dY" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"dZ" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/table/glass, -/obj/item/folder/white, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3 - }, -/obj/item/reagent_containers/glass/beaker/large{ - pixel_x = -3 - }, -/obj/item/reagent_containers/dropper, -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/screwdriver/nuke{ - pixel_y = 18 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ea" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/structure/closet/crate/secure/weapon{ - req_access_txt = "150" - }, -/obj/item/ammo_box/c10mm{ - pixel_y = 6 - }, -/obj/item/ammo_box/c10mm, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/item/ammo_box/magazine/m10mm{ - pixel_x = 4; - pixel_y = -4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eb" = ( -/obj/structure/closet/crate, -/obj/item/storage/toolbox/electrical{ - pixel_y = 4 - }, -/obj/item/storage/toolbox/mechanical, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ec" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/structure/closet/crate/medical, -/obj/item/storage/firstaid/fire{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/brute, -/obj/item/storage/firstaid/regular{ - pixel_x = -3; - pixel_y = -3 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ed" = ( -/obj/structure/table, -/obj/item/pen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper_bin/syndicate, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ef" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Cargo Bay APC"; - pixel_y = 24 - }, -/obj/structure/closet/emcloset/anchored, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eg" = ( -/obj/structure/closet/firecloset/full{ - anchored = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eh" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ei" = ( -/obj/structure/disposaloutlet{ - dir = 1 - }, -/obj/structure/disposalpipe/trunk, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ek" = ( -/obj/effect/spawner/window/plastitanium, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"el" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eo" = ( -/obj/structure/table/reinforced, -/obj/item/storage/toolbox/syndicate, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper/crumpled{ - info = "Explosive testing on site is STRICTLY forbidden, as this outpost's walls are lined with explosives intended for intentional self-destruct purposes that may be set off prematurely through careless experiments."; - name = "Explosives Testing Warning"; - pixel_x = -6; - pixel_y = -3 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"ep" = ( -/obj/structure/table/reinforced, -/obj/effect/decal/cleanable/dirt, -/obj/item/pen, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/paper_bin/syndicate, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eq" = ( -/obj/structure/table/reinforced, -/obj/item/restraints/handcuffs, -/obj/item/taperecorder, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"er" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"es" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"et" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/chem_heater, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ev" = ( -/turf/simulated/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ew" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/syndichem, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"ex" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ey" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ez" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eA" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/mining/glass{ - name = "Warehouse"; - req_access_txt = "150" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eB" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eC" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eD" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eE" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/table, -/obj/item/storage/box/lights/bulbs, -/obj/item/wrench, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eF" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_cargo" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eG" = ( -/obj/structure/closet/secure_closet/personal/patient, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eH" = ( -/obj/structure/bed, -/obj/item/bedsheet, -/obj/machinery/light/small{ - dir = 1 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eI" = ( -/obj/effect/spawner/window/plastitanium, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eJ" = ( -/obj/structure/disposalpipe/segment, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) -"eL" = ( -/obj/machinery/door/airlock/hatch{ - name = "Monkey Pen"; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eM" = ( -/obj/machinery/firealarm/syndicate{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eN" = ( -/obj/machinery/alarm/syndicate{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eO" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eP" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eQ" = ( -/obj/machinery/light/small, -/obj/structure/table/reinforced, -/obj/item/storage/box/monkeycubes/syndicate, -/obj/item/storage/box/monkeycubes/syndicate, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"eR" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/chem_master, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eT" = ( -/obj/effect/turf_decal/bot, -/obj/structure/chair/office/light, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eU" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/chem_dispenser/upgraded, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eV" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"eW" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eX" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 1 - }, -/obj/structure/closet/crate/internals, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/oxygen/yellow, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/tank/internals/emergency_oxygen/double, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/obj/item/clothing/mask/gas, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eY" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/storage/box/donkpockets{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets{ - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"eZ" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/stack/sheet/cardboard{ - amount = 3 - }, -/obj/item/stack/rods/twentyfive, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fa" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/crate, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fd" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ff" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fg" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fh" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fi" = ( -/obj/structure/table/glass, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 2 - }, -/obj/item/storage/box/syringes, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Virology APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fj" = ( -/obj/structure/table/glass, -/obj/structure/reagent_dispensers/virusfood{ - pixel_y = 28 - }, -/obj/item/clothing/gloves/color/latex, -/obj/item/healthanalyzer, -/obj/item/clothing/glasses/hud/health, -/obj/structure/disposalpipe/segment, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/syndicate{ - dir = 4; - pixel_x = 26 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fk" = ( -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Experimentation Lab APC"; - pixel_y = -24 - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"fl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/extinguisher_cabinet{ - pixel_x = 25 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"fm" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical{ - name = "Chemistry Lab"; - req_access_txt = "150" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fn" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fo" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 2; - icon_state = "left"; - name = "Chemistry" - }, -/obj/machinery/door/window/southleft{ - base_state = "left"; - dir = 1; - icon_state = "left"; - name = "Chemistry"; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fp" = ( -/obj/machinery/smartfridge/secure/chemistry/preloaded/syndicate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"fq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/assist, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fr" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fs" = ( -/obj/effect/turf_decal/box/white/corners{ - dir = 8 - }, -/obj/structure/closet/crate, -/obj/item/storage/box/stockparts/deluxe, -/obj/item/storage/box/stockparts/deluxe, -/obj/item/stack/sheet/metal/fifty, -/obj/item/stack/sheet/glass/fifty, -/obj/item/circuitboard/processor, -/obj/item/circuitboard/gibber, -/obj/item/circuitboard/deepfryer, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ft" = ( -/obj/effect/turf_decal/box/white/corners, -/obj/structure/closet/crate, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/reagent_containers/glass/beaker/waterbottle/large{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fu" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/table, -/obj/item/clothing/suit/storage/hazardvest, -/obj/item/clothing/suit/storage/hazardvest, -/obj/item/clothing/head/soft{ - pixel_x = -8 - }, -/obj/item/clothing/head/soft{ - pixel_x = -8 - }, -/obj/item/radio{ - pixel_x = 5 - }, -/obj/item/radio{ - pixel_x = 5 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fv" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fx" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fy" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Isolation B"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fz" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Isolation A"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fA" = ( -/obj/structure/table/glass, -/obj/item/reagent_containers/syringe/antiviral, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fB" = ( -/obj/structure/chair/stool, -/obj/structure/disposalpipe/segment, -/turf/simulated/floor/plasteel/white/corner{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fC" = ( -/obj/machinery/smartfridge/secure/chemistry/virology/preloaded/syndicate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fD" = ( -/obj/structure/sign/biohazard, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/virology) -"fE" = ( -/obj/effect/turf_decal/bot, -/obj/structure/closet/l3closet, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"fF" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/shower{ - pixel_y = 14 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"fG" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/hatch{ - name = "Experimentation Lab"; - req_access_txt = "150" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"fH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/main) -"fI" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/main) -"fO" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/main) -"fW" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/mining/glass{ - name = "Warehouse"; - req_access_txt = "150" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"fY" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/table, -/obj/item/folder/yellow, -/obj/item/stack/wrapping_paper{ - pixel_y = 5 - }, -/obj/item/stack/packageWrap, -/obj/item/hand_labeler, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gb" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gg" = ( -/obj/structure/sign/fire{ - pixel_y = 32 - }, -/obj/structure/sign/xeno_warning_mining{ - pixel_y = -32 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gj" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gq" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gr" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gs" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gv" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/disposalpipe/segment, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gy" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gz" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gE" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gF" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gG" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gH" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gI" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gJ" = ( -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gK" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gL" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gM" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"gO" = ( -/obj/structure/sign/cargo, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gP" = ( -/obj/machinery/photocopier, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gQ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gS" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 4 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_cargo"; - name = "Cargo Bay Blast Door Control"; - pixel_x = 26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"gT" = ( -/obj/machinery/door/airlock/medical/glass{ - name = "Monkey Pen"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gU" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/sink{ - dir = 8; - pixel_x = -12; - pixel_y = 2 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"gV" = ( -/obj/structure/chair/office/light, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ha" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"hb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hd" = ( -/obj/effect/turf_decal/tile/red, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"he" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hg" = ( -/obj/machinery/light/small, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hh" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hi" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hj" = ( -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hk" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hl" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hn" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"ho" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/computer/shuttle{ - desc = "Occasionally used to call in a resupply shuttle if one is in range."; - dir = 8; - icon_keyboard = "syndie_key"; - icon_screen = "syndishuttle"; - light_color = "#FA8282"; - name = "syndicate cargo shuttle terminal"; - possible_destinations = "syndielavaland_cargo"; - req_access_txt = "150"; - shuttleId = "syndie_cargo" - }, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hq" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hs" = ( -/obj/machinery/computer/pandemic, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door_control{ - id = "lavalandsyndi_virology"; - name = "Virology Blast Door Control"; - pixel_x = -26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"ht" = ( -/obj/structure/table, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 5 - }, -/obj/item/hand_labeler, -/obj/item/pen/red, -/obj/item/restraints/handcuffs, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/glasses/science, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hu" = ( -/obj/structure/table, -/obj/machinery/reagentgrinder, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/obj/item/stack/sheet/mineral/uranium{ - amount = 10 - }, -/obj/item/stack/sheet/mineral/gold{ - amount = 10 - }, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hv" = ( -/obj/machinery/disposal, -/obj/structure/sign/deathsposal{ - pixel_x = 32 - }, -/obj/effect/turf_decal/stripes/red/box, -/obj/structure/disposalpipe/trunk{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hx" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hy" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hz" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hA" = ( -/obj/structure/closet/emcloset/anchored, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hB" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hC" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/mining/glass{ - name = "Cargo Bay" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hD" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/rack, -/obj/item/storage/belt/utility, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hF" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hH" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi_virology" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/virology) -"hJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"hL" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hM" = ( -/obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, -/obj/item/ammo_box/magazine/sniper_rounds, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hN" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hO" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hP" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hQ" = ( -/obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"hR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"hS" = ( -/obj/structure/table/reinforced, -/obj/item/folder, -/obj/item/suppressor, -/obj/item/clothing/ears/earmuffs, -/obj/item/clothing/ears/earmuffs, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hU" = ( -/obj/machinery/light/small, -/obj/structure/filingcabinet/chestdrawer, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hV" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/brown, -/obj/effect/turf_decal/tile/brown{ - dir = 8 - }, -/obj/machinery/autolathe, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/cargo) -"hW" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 10 - }, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"hZ" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ia" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ib" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate{ - icon_state = "sleeper_s"; - dir = 4 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ic" = ( -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"id" = ( -/obj/structure/toilet{ - pixel_y = 18 - }, -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/mirror{ - pixel_x = 28 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ie" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate/comms{ - dir = 8; - icon_state = "sleeper_s" - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"if" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ig" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"ih" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"ii" = ( -/obj/structure/table, -/obj/item/storage/toolbox/emergency, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ij" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ik" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"il" = ( -/obj/machinery/door/airlock{ - name = "Cabin 2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"im" = ( -/obj/machinery/door/airlock{ - name = "Unisex Restrooms" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"in" = ( -/obj/machinery/door/airlock{ - name = "Cabin 4" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ip" = ( -/obj/effect/turf_decal/stripes/red/corner, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iq" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"ir" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 9 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"it" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 5 - }, -/obj/structure/filingcabinet, -/obj/item/folder/syndicate/mining, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"iu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"iv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"iw" = ( -/obj/structure/chair{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ix" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iy" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Dormitories" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iz" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iA" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iB" = ( -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iD" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/firealarm/syndicate{ - dir = 2; - pixel_y = 24 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iE" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iF" = ( -/obj/machinery/washing_machine, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iG" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iH" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/effect/turf_decal/caution/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iI" = ( -/obj/machinery/door/airlock/vault{ - id_tag = "syndie_lavaland_vault"; - req_access_txt = "150"; - locked = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"iJ" = ( -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"iK" = ( -/obj/machinery/syndicatebomb/self_destruct{ - anchored = 1 - }, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"iM" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"iN" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/main) -"iO" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iP" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"iR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Dormitories" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iS" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iT" = ( -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iU" = ( -/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Dormitories APC"; - pixel_y = -24 - }, -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 8; - icon_state = "0-8" - }, -/obj/effect/turf_decal/tile/neutral, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iW" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold4w/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iX" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel{ - heat_capacity = 1e+006 - }, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iY" = ( -/obj/structure/table, -/obj/structure/bedsheetbin, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"iZ" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ja" = ( -/obj/effect/turf_decal/stripes/red/corner{ - dir = 4 - }, -/obj/machinery/door_control{ - id = "syndie_lavaland_vault"; - name = "Vault Bolt Control"; - normaldoorcontrol = 1; - pixel_x = 24; - pixel_y = 8; - req_access_txt = "150"; - specialfunctions = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 10 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"jc" = ( -/obj/machinery/light/small, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"jd" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/red/line{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/main) -"je" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"jf" = ( -/obj/machinery/door/airlock{ - name = "Cabin 1" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jg" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jh" = ( -/obj/machinery/door/airlock{ - name = "Cabin 3" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"ji" = ( -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/power/apc/syndicate{ - dir = 8; - name = "Primary Hallway APC"; - pixel_x = -24 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jj" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jk" = ( -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"jl" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jm" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jn" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate{ - icon_state = "sleeper_s"; - dir = 4 - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jo" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"jq" = ( -/obj/effect/mob_spawn/human/lavaland_syndicate{ - dir = 8; - icon_state = "sleeper_s" - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jr" = ( -/obj/machinery/vending/snack, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"js" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jt" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/obj/structure/reagent_dispensers/watertank, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"ju" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jv" = ( -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/suit_storage_unit/radsuit, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jw" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/toolcloset{ - anchored = 1 - }, -/obj/item/crowbar, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jx" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi_bar" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jy" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jz" = ( -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jA" = ( -/obj/structure/table/wood, -/obj/item/ammo_box/magazine/m10mm, -/obj/item/ammo_box/magazine/sniper_rounds, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jB" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jC" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/turf/simulated/floor/plasteel/grimy, -/area/ruin/unpowered/syndicate_lava_base/dormitories) -"jD" = ( -/obj/machinery/vending/cola, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jE" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jF" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jG" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jH" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jI" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jJ" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers{ - dir = 6 - }, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jK" = ( -/obj/machinery/atmospherics/unary/outlet_injector/on{ - dir = 8; - volume_rate = 200; - id = "syndie_lavaland_waste" - }, -/turf/simulated/floor/plating/asteroid/basalt/lava_land_surface, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jL" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/lighter{ - pixel_x = 7; - pixel_y = 6 - }, -/obj/item/storage/fancy/cigarettes/cigpack_syndicate{ - pixel_x = -3 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jM" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_bar"; - name = "Bar Blast Door Control"; - pixel_y = 26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jN" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jO" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 25 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jP" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"jR" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jS" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jT" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset/full{ - anchored = 1 - }, -/obj/effect/turf_decal/tile/yellow, -/obj/effect/turf_decal/tile/yellow{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"jU" = ( -/obj/structure/sign/engineering, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/shower{ - desc = "The HS-452. Installed recently by the DonkCo Hygiene Division."; - dir = 4; - name = "emergency shower" - }, -/obj/structure/sign/radiation/rad_area{ - pixel_y = -32 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"jY" = ( -/obj/structure/chair{ - dir = 1 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"jZ" = ( -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ka" = ( -/obj/structure/closet/crate, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kb" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/box/lights/bulbs, -/obj/item/stack/rods{ - amount = 50 - }, -/obj/item/clothing/head/welding, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kc" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kd" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"ke" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kf" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kg" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kh" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"ki" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"kj" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 8 - }, -/obj/structure/chair{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/main) -"kk" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/door/airlock/engineering{ - name = "Engineering"; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kl" = ( -/obj/machinery/atmospherics/pipe/simple/visible/scrubbers, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"km" = ( -/obj/structure/cable/yellow{ - d1 = 0; - d2 = 2; - icon_state = "0-2" - }, -/obj/machinery/computer/monitor/secret, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ko" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kq" = ( -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/vending/coffee/free, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kr" = ( -/obj/machinery/door/airlock/maintenance{ - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ks" = ( -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/canister/oxygen, -/obj/structure/window/reinforced{ - dir = 8 - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"ku" = ( -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) -"kv" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) -"kw" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/item/clothing/gloves/combat{ - pixel_y = -6 - }, -/obj/item/tank/internals/emergency_oxygen{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/mask/breath{ - pixel_x = -2; - pixel_y = 4 - }, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/main) -"kx" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ky" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kz" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/visible/supply, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/manifold/visible/scrubbers{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kB" = ( -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kC" = ( -/obj/machinery/computer/general_air_control/large_tank_control{ - dir = 8; - frequency = 1442; - name = "Nitrogen Supply Control"; - output_tag = "syndie_lavaland_n2_out"; - sensors = list("syndie_lavaland_n2_sensor" = "Tank") - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kD" = ( -/obj/effect/spawner/window/plastitanium, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kG" = ( -/obj/structure/table, -/obj/item/reagent_containers/food/drinks/cans/beer, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kH" = ( -/obj/structure/chair{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kJ" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kK" = ( -/obj/structure/chair/stool/bar, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kL" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kM" = ( -/obj/machinery/firealarm/syndicate{ - dir = 4; - pixel_x = 26 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/vending/cigarette/syndicate/free, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sink/kitchen{ - pixel_y = 28 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kO" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"kP" = ( -/obj/structure/reagent_dispensers/watertank, -/obj/effect/decal/cleanable/dirt, -/obj/item/soap/syndie, -/obj/item/mop, -/obj/item/reagent_containers/glass/bucket, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"kQ" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kR" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kS" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kT" = ( -/obj/structure/sign/lifestar, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"kV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/power/smes/engineering, -/obj/structure/cable/yellow, -/obj/structure/sign/electricshock{ - pixel_x = -32 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"kW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/power/smes/engineering, -/obj/structure/cable/yellow, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lf" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/chair{ - dir = 1 - }, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lg" = ( -/obj/structure/chair/stool/bar, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lh" = ( -/obj/structure/table/wood, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"li" = ( -/obj/structure/table/wood, -/obj/item/toy/cards/deck/syndicate{ - pixel_x = -6; - pixel_y = 6 - }, -/turf/simulated/floor/wood{ - icon_state = "wood-broken4" - }, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lj" = ( -/obj/machinery/door/window/southleft{ - base_state = "right"; - dir = 1; - icon_state = "right"; - name = "Bar" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lk" = ( -/obj/structure/table/wood, -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/computer/security/telescreen/entertainment{ - pixel_x = 30 - }, -/obj/structure/window/reinforced{ - dir = 1; - pixel_y = 1 - }, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 - }, -/obj/item/reagent_containers/food/drinks/shaker, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ll" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/structure/reagent_dispensers/beerkeg, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lm" = ( -/obj/structure/closet/secure_closet/medical1{ - req_access = null; - req_access_txt = "150" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/defibrillator, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ln" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lo" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/structure/table, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/box/masks{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/storage/box/gloves{ - pixel_x = 5; - pixel_y = 5 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 5 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lp" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/power/terminal{ - dir = 1 - }, -/obj/structure/cable{ - d2 = 2; - icon_state = "0-2" - }, -/obj/structure/cable{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lu" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/portable_atmospherics/pump, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lw" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/mapping_helpers/no_lava, -/turf/simulated/floor/plating{ - baseturf = /turf/simulated/floor/plating/lava/smooth/lava_land_surface; - oxygen = 14; - nitrogen = 23; - temperature = 300 - }, -/area/lavaland/surface/outdoors) -"ly" = ( -/obj/structure/chair/stool/bar, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lz" = ( -/obj/structure/table/wood, -/obj/item/reagent_containers/glass/rag{ - pixel_x = -4; - pixel_y = 9 - }, -/obj/item/reagent_containers/food/drinks/cans/beer{ - pixel_x = 5; - pixel_y = -2 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lA" = ( -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lC" = ( -/obj/structure/table/wood, -/obj/machinery/reagentgrinder, -/obj/item/kitchen/rollingpin, -/obj/item/kitchen/knife{ - pixel_x = 6 - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lE" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lF" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/structure/closet/crate, -/obj/item/vending_refill/snack{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/vending_refill/snack{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/vending_refill/coffee, -/obj/item/vending_refill/cola, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lG" = ( -/obj/structure/table, -/obj/item/storage/box/syringes, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/gun/syringe/syndicate, -/obj/machinery/defibrillator_mount/loaded{ - pixel_x = -30 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 9 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lH" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/corner{ - dir = 1 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lI" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lJ" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lK" = ( -/obj/structure/table, -/obj/item/storage/firstaid/regular{ - pixel_x = -4; - pixel_y = -4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/item/storage/firstaid/fire{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"lL" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/table, -/obj/item/stack/sheet/metal/fifty{ - pixel_x = -1; - pixel_y = 1 - }, -/obj/item/stack/sheet/mineral/plastitanium{ - amount = 30 - }, -/obj/item/stack/sheet/glass/fifty{ - pixel_x = 1; - pixel_y = -1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lM" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lP" = ( -/obj/machinery/computer/general_air_control/large_tank_control{ - dir = 8; - frequency = 1442; - name = "Oxygen Supply Control"; - output_tag = "syndie_lavaland_o2_out"; - sensors = list("syndie_lavaland_o2_sensor" = "Tank") - }, -/obj/effect/turf_decal/tile/blue, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"lS" = ( -/obj/machinery/porta_turret/syndicate{ - dir = 9 - }, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/main) -"lU" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/structure/chair/stool, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lV" = ( -/obj/structure/chair/stool/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lW" = ( -/obj/structure/table/wood, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lX" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"lZ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"ma" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/door/airlock{ - name = "Bar Storage"; - req_access_txt = "150" - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mb" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mc" = ( -/obj/item/storage/box/donkpockets{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/storage/box/donkpockets{ - pixel_y = 3 - }, -/obj/item/storage/box/donkpockets{ - pixel_x = 2 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/secure_closet/freezer/kitchen/maintenance{ - req_access = null - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"md" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"me" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mf" = ( -/obj/structure/sink{ - dir = 4; - pixel_x = 11 - }, -/obj/machinery/alarm/syndicate{ - dir = 8; - pixel_x = 24 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mg" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/high/plus, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/obj/item/rpd{ - pixel_y = 3 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mh" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mj" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/binary/pump{ - dir = 8; - name = "O2 to Incinerator" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mn" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mo" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mp" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi_telecomms" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mr" = ( -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mt" = ( -/obj/machinery/computer/arcade/orion_trail, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mu" = ( -/obj/item/twohanded/required/kirbyplants{ - icon_state = "plant-22" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mv" = ( -/obj/structure/table/wood, -/obj/machinery/light/small, -/obj/structure/cable/yellow, -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Bar APC"; - pixel_y = -24 - }, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mw" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mx" = ( -/obj/structure/table/wood, -/obj/machinery/kitchen_machine/microwave, -/turf/simulated/floor/wood, -/area/ruin/unpowered/syndicate_lava_base/bar) -"my" = ( -/obj/structure/closet/secure_closet/freezer/fridge/open, -/obj/item/reagent_containers/food/condiment/enzyme, -/obj/item/reagent_containers/food/snacks/chocolatebar, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mz" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/main) -"mA" = ( -/obj/machinery/light/small{ - dir = 8 - }, -/obj/structure/bed/roller, -/obj/machinery/iv_drip, -/obj/item/reagent_containers/iv_bag/blood/OMinus, -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mB" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mC" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mD" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mE" = ( -/obj/structure/table/reinforced, -/obj/item/scalpel, -/obj/item/circular_saw{ - pixel_y = 9 - }, -/obj/machinery/light/small{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"mF" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = -27; - pixel_y = 1 - }, -/obj/structure/chair/stool, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mG" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mK" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/computer/general_air_control/large_tank_control{ - dir = 1; - frequency = 1442; - name = "Toxins Supply Control"; - output_tag = "syndie_lavaland_tox_out"; - sensors = list("syndie_lavaland_tox_sensor" = "Tank") - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"mN" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mP" = ( -/obj/structure/filingcabinet/security, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mQ" = ( -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mR" = ( -/obj/structure/table, -/obj/item/storage/toolbox/syndicate, -/obj/item/multitool, -/obj/machinery/door_control{ - id = "lavalandsyndi_telecomms"; - name = "Telecomms Blast Door Control"; - pixel_x = 26; - req_access_txt = "150" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"mT" = ( -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mU" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/bar) -"mX" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/toolbox/mechanical, -/obj/item/stack/cable_coil/yellow{ - pixel_x = 2; - pixel_y = -3 - }, -/obj/item/multitool, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mY" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"mZ" = ( -/obj/machinery/sleeper/syndie{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"na" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nc" = ( -/obj/machinery/computer/turbine_computer{ - dir = 1; - id = "syndie_lavaland_incineratorturbine" - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_incineratoroutput"; - name = "Incinerator Output Blast Door Control"; - pixel_x = -6; - pixel_y = -24; - req_access_txt = "150" - }, -/obj/machinery/door_control{ - id = "lavalandsyndi_incineratorinput"; - name = "Incinerator Input Blast Door Control"; - pixel_x = 6; - pixel_y = -24; - req_access_txt = "150" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"nd" = ( -/obj/structure/cable{ - d1 = 1; - d2 = 2; - icon_state = "1-2" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"nf" = ( -/obj/structure/sign/fire, -/turf/simulated/wall/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"ng" = ( -/obj/structure/table, -/obj/machinery/photocopier/faxmachine/longrange/syndie{ - department = "Syndicate Bioweapon Research Outpost" - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nk" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nl" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nm" = ( -/obj/machinery/light/small{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/obj/structure/noticeboard{ - dir = 8; - pixel_x = 27 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"no" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"np" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nq" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"ns" = ( -/obj/structure/closet/emcloset/anchored, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 6 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nt" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/power/apc/syndicate{ - dir = 1; - name = "Arrival Hallway APC"; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d2 = 4; - icon_state = "0-4" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nv" = ( -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nw" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 2 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 4; - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nx" = ( -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/machinery/door/airlock/medical/glass{ - name = "Medbay" - }, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ny" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel/white/side{ - dir = 8 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nz" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nA" = ( -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 8; - icon_state = "2-8" - }, -/turf/simulated/floor/plasteel/white/corner, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nB" = ( -/obj/structure/table/reinforced, -/obj/item/surgicaldrill, -/obj/effect/decal/cleanable/dirt, -/obj/item/bonegel, -/obj/item/bonesetter, -/obj/item/FixOVein, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nC" = ( -/obj/structure/table/reinforced, -/obj/item/retractor, -/obj/item/hemostat, -/obj/effect/decal/cleanable/dirt, -/obj/item/cautery, -/turf/simulated/floor/plasteel/white/side{ - dir = 6 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"nH" = ( -/obj/machinery/alarm/syndicate{ - dir = 4; - pixel_x = -24 - }, -/obj/machinery/light/small{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nI" = ( -/obj/machinery/computer/camera_advanced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nJ" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nK" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 5 - }, -/obj/structure/cable/yellow{ - d1 = 2; - d2 = 4; - icon_state = "2-4" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nL" = ( -/obj/machinery/door/airlock/hatch{ - name = "Telecommunications"; - req_access_txt = "150" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"nN" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nQ" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/machinery/light/small, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nR" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nS" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/firealarm/syndicate{ - dir = 2; - pixel_y = 24 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nT" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 1 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nU" = ( -/obj/machinery/light/small{ - dir = 1 - }, -/obj/machinery/alarm/syndicate{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/structure/cable/yellow{ - d1 = 4; - d2 = 8; - icon_state = "4-8" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nV" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 9 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 9 - }, -/obj/structure/cable/yellow{ - d1 = 1; - d2 = 8; - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nW" = ( -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nX" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"nZ" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 4 - }, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oa" = ( -/turf/simulated/floor/plasteel/white/side{ - dir = 10 - }, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ob" = ( -/obj/effect/decal/cleanable/dirt, -/turf/simulated/floor/plasteel/white/side, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"oh" = ( -/obj/machinery/firealarm/syndicate{ - dir = 8; - pixel_x = -26 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"oi" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ok" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/structure/cable/yellow, -/obj/machinery/power/apc/syndicate{ - dir = 2; - name = "Telecommunications APC"; - pixel_y = -24 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ol" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/rack{ - dir = 8 - }, -/obj/item/clothing/suit/space/syndicate, -/obj/item/clothing/mask/gas/syndicate, -/obj/item/clothing/head/helmet/space/syndicate, -/obj/item/mining_scanner, -/obj/item/pickaxe, -/turf/simulated/floor/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"om" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"on" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 1 - }, -/obj/structure/extinguisher_cabinet{ - pixel_y = -29 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oo" = ( -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"op" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/simulated/floor/plasteel, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"or" = ( -/obj/structure/rack{ - dir = 8 - }, -/obj/item/storage/belt/medical, -/obj/effect/decal/cleanable/dirt, -/obj/item/crowbar, -/obj/item/clothing/glasses/hud/health, -/obj/item/clothing/accessory/stethoscope, -/turf/simulated/floor/plasteel/white, -/area/ruin/unpowered/syndicate_lava_base/medbay) -"ou" = ( -/obj/machinery/computer/message_monitor{ - dir = 1 - }, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ov" = ( -/obj/structure/table/reinforced, -/obj/item/pen, -/obj/item/paper_bin/syndicate, -/turf/simulated/floor/plasteel/dark, -/area/ruin/unpowered/syndicate_lava_base/telecomms) -"ox" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor{ - id_tag = "lavalandsyndi_arrivals" - }, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oF" = ( -/obj/structure/sign/securearea, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/arrivals) -"oP" = ( -/obj/structure/sign/chemistry, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"pQ" = ( -/obj/structure/sign/explosives/alt{ - pixel_x = 32 - }, -/turf/simulated/floor/redgrid, -/area/ruin/unpowered/syndicate_lava_base/main) -"qG" = ( -/obj/structure/sign/explosives/alt{ - pixel_x = -32 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"vu" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"yd" = ( -/obj/machinery/atmospherics/pipe/simple/visible/yellow, -/turf/simulated/wall/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"yU" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/chemistry) -"Au" = ( -/turf/simulated/wall/mineral/plastitanium/explosive, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"BF" = ( -/obj/effect/spawner/window/plastitanium, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id_tag = "lavalandsyndi"; - name = "Syndicate Research Experimentation Shutters" - }, -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/plating, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"Cg" = ( -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"CG" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 10 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"DL" = ( -/obj/structure/sign/explosives/alt{ - pixel_x = 32 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"Lg" = ( -/obj/machinery/atmospherics/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"LQ" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/supply, -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"RI" = ( -/turf/simulated/wall/mineral/plastitanium, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"RV" = ( -/obj/structure/sign/fire, -/turf/simulated/wall/mineral/plastitanium/nodiagonal, -/area/ruin/unpowered/syndicate_lava_base/engineering) -"Tp" = ( -/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/unary/vent_pump/on{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) -"TC" = ( -/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ - dir = 4 - }, -/turf/simulated/floor/engine, -/area/ruin/unpowered/syndicate_lava_base/testlab) - -(1,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -aa -aa -"} -(2,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -"} -(3,1,1) = {" -aa -aa -aa -aa -aa -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(4,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(5,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(6,1,1) = {" -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(7,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -gj -eh -eh -eh -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mn -mN -mn -mn -mn -mn -ab -ab -ab -ab -ab -ab -ab -aa -"} -(8,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -eG -ff -eI -aj -eh -eh -eh -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -mP -cb -nH -oh -mn -mn -ab -ab -ab -ab -ab -ab -aa -"} -(9,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -eH -fg -fy -gp -eI -am -ao -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -ng -nk -nI -oi -ou -mn -ab -ab -ab -ab -ab -ab -ab -"} -(10,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -eI -eI -eI -gq -gT -hq -hF -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -mQ -nl -nJ -nJ -ov -mn -ab -ab -ab -ab -ab -ab -ab -"} -(11,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -eG -fh -eI -gr -eI -an -ar -eh -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -mp -mR -nm -nK -ok -mn -mn -ab -ab -ab -ab -ab -ab -ab -"} -(12,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -eH -fg -fz -gs -eh -gj -eh -eh -ab -ab -ab -ab -ab -ab -dG -dG -dG -dG -dG -dG -lS -mn -mn -mo -nL -mn -mn -ab -ab -ab -ab -ab -ab -ab -ab -"} -(13,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -eh -gj -eI -eI -gt -gU -hs -hH -ab -ab -ab -ab -ab -ab -dG -dG -ig -iu -iu -iu -bv -aZ -az -ba -nn -aE -mT -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(14,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ac -eh -fi -fA -bV -gV -ht -hH -ab -ab -ab -ab -ab -dG -dG -ig -je -iv -jk -aw -lw -aZ -mr -bb -aD -nN -ol -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(15,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ei -eJ -fj -fB -gv -ax -hu -hH -ab -ab -ab -ab -dG -dG -ig -je -jk -jx -jx -jy -jy -jy -aA -mT -no -nN -ol -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(16,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ac -ab -ac -ac -ae -ae -ae -ae -fC -ad -aX -hv -hH -ab -ab -ab -dG -dG -ig -je -jk -jx -jx -kG -lf -bw -jy -jy -jP -np -aH -mT -mT -mT -oF -ab -ab -ab -ab -ab -ab -"} -(17,1,1) = {" -ab -ab -ab -ab -ab -ae -ae -ae -ae -ae -ae -ae -au -av -aL -fD -aI -eh -eh -eh -hW -dG -dG -dG -ig -je -iv -jx -jx -kn -kH -jN -jZ -lU -mt -mU -np -aN -aO -aP -aR -aG -aS -ab -ab -ab -ab -aa -"} -(18,1,1) = {" -ab -ab -ab -ab -ae -aL -aq -aq -qG -dc -aq -dQ -ek -eL -ae -fE -gy -bd -ay -aU -aC -bc -iu -iu -je -jk -jx -jx -jN -jZ -jN -jZ -jN -jZ -kn -mU -nq -nQ -mT -mT -mT -oF -ab -ab -ab -ab -ab -aa -"} -(19,1,1) = {" -ab -ab -ab -ab -ae -ap -aq -Lg -aq -Lg -aq -dR -el -eM -ae -fF -gz -aT -aB -hJ -aY -ih -iv -iM -iv -iv -jx -jL -jY -jN -bZ -lg -ly -lV -mu -mU -cc -nR -om -mT -ab -ab -ab -ab -ab -ab -aa -aa -"} -(20,1,1) = {" -aa -ab -ab -ab -ae -aq -aq -aF -aq -aF -aq -ae -bU -eN -ae -ae -aJ -ha -ha -aV -ha -ha -ha -ha -ha -ha -jy -jM -jN -jZ -kJ -lh -lz -lW -mv -jy -jy -nS -on -mT -ab -ab -ab -ab -ab -ab -ab -aa -"} -(21,1,1) = {" -aa -ab -ab -ab -ae -aq -aq -Tp -aq -Cg -aq -dS -eo -eO -fk -ae -aK -hb -ha -iN -ha -ii -iw -iO -hB -jl -jz -jN -jZ -ko -kK -li -lA -lX -mw -ah -jy -nu -oo -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(22,1,1) = {" -aa -ab -ab -ab -ae -ap -aq -CG -vu -TC -LQ -BF -ep -eP -fl -fG -gE -hc -hx -hL -hZ -ij -ix -iP -hd -jm -jz -jO -jN -kp -kL -lj -lB -lY -lA -ai -jP -nT -op -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(23,1,1) = {" -aa -ab -ab -ab -ae -ae -aq -aq -DL -di -aq -dS -eq -eQ -ae -dQ -gF -hd -hy -hy -ia -ik -if -iQ -hz -hz -jP -jy -ka -kq -kM -lk -lC -lZ -mx -jy -jy -nU -oo -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(24,1,1) = {" -aa -ab -ab -ab -ab -ae -ae -ae -ae -ae -aL -ae -ae -ae -oP -fH -gG -he -hz -hz -hz -hz -iy -iR -hz -jn -jA -jy -jy -jy -jy -jy -ak -ma -jy -jy -ns -nV -oo -ox -ab -ab -ab -ab -ab -ab -ab -ab -"} -(25,1,1) = {" -aa -ab -ab -ab -ab -ab -ac -ac -as -do -dA -dT -er -eR -fm -fI -gH -he -hz -hM -ib -hz -iz -iS -jf -jo -jB -hz -kb -jy -kN -jZ -lE -mb -my -jy -nt -nW -aW -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(26,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -as -as -du -dB -dU -es -eS -fn -fO -gG -hf -hz -hN -ic -il -iA -iT -hz -hz -hz -hz -kc -kr -kO -ll -lF -mc -jy -jy -nu -nX -oo -mT -ab -ab -ab -ab -ab -ab -ab -ab -"} -(27,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -at -aM -dv -dC -bI -et -eT -fo -fO -gG -hg -hz -hz -hz -hz -iB -iU -jg -jp -jp -jQ -kd -jy -jy -jy -jy -jy -jy -mX -nv -aQ -mT -mT -ab -ab -ab -ab -ab -ab -ab -aa -"} -(28,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -at -cA -dw -dC -dX -eu -eU -fn -fH -gG -he -hA -hO -id -im -bX -iV -hz -hz -hz -hz -ke -jQ -jQ -jQ -jp -jp -mz -mY -nw -nZ -mT -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(29,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -at -cG -dx -dE -dY -ev -eV -fp -fH -gI -he -hz -hz -hz -hz -iD -iW -jh -jo -jC -hz -kf -ks -kP -kQ -kQ -kQ -kQ -kT -nx -kR -kQ -kQ -ab -ab -ab -ab -ab -ab -ab -ab -"} -(30,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -as -as -as -dI -dZ -ew -as -yU -as -gJ -hh -hz -hP -ic -in -iE -iX -hz -jq -jA -hz -kg -kt -kQ -bT -lG -md -mA -mZ -ny -oa -or -kQ -ab -ab -ab -ab -ab -ab -ab -ab -"} -(31,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ac -as -as -as -as -as -fq -dy -gK -he -hz -hQ -ie -hz -iF -iY -hz -hO -hz -hz -kh -ha -kQ -lm -lH -me -mB -na -nz -ob -al -kQ -ab -ab -ab -ab -ab -ab -ab -ab -"} -(32,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ac -dy -dK -ea -ex -eW -fr -fW -gL -he -hz -hz -hz -hz -hz -hz -hz -jr -jD -jR -iQ -ku -kR -ln -lI -lI -mC -lI -nA -cd -kQ -kQ -ac -ab -ab -ab -ab -ab -ab -ab -"} -(33,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -dy -dL -eb -ey -eX -fs -fa -gM -hi -hB -hB -hB -ag -iG -iZ -ji -js -jE -jS -ki -kv -kS -ln -lJ -mf -mD -lI -nB -kQ -kQ -ac -ab -ab -ab -ab -ab -ab -ab -ab -"} -(34,1,1) = {" -aa -aa -aa -ab -ab -ab -ab -ab -ab -dy -dM -ec -ez -eY -ft -dP -gN -hj -hj -hR -af -ip -iH -ja -bY -jj -gI -if -kj -kw -kT -lo -lK -kQ -mE -bR -nC -kQ -ac -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(35,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -dy -dy -ed -ey -eZ -dy -dy -gO -hk -hC -dy -ha -ce -iI -iq -ha -jt -jF -jT -ju -ju -ju -ju -ju -Au -ju -ju -RI -RI -RI -RI -RI -ab -ab -ab -ab -ab -ab -ab -"} -(36,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ac -dy -dy -eA -fa -dy -fY -gP -gQ -hl -hS -ha -ir -iJ -jb -ha -ju -jG -jU -ju -kx -kV -lp -lL -mg -mF -nc -RI -bg -RI -bQ -RI -RI -nf -ab -ab -ab -ab -aa -"} -(37,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -bk -eB -fb -fu -gb -gQ -hl -bW -bS -ha -bx -iK -jc -ha -jv -jH -jV -ju -ky -kW -lq -lM -mh -mG -nd -bf -bh -bj -cp -cs -ct -cu -ab -ab -ab -ab -ab -"} -(38,1,1) = {" -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -ef -eC -fc -fv -fv -gR -gQ -hl -hU -ha -it -pQ -jd -ha -jw -jI -jW -kk -kz -by -bC -bF -ca -bL -bO -yd -bi -yd -cq -RI -RI -nf -ab -ab -ab -ab -ab -"} -(39,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -eg -eD -fd -bl -bm -gS -hn -gQ -hV -ha -ha -ha -ha -ha -ju -jJ -kl -kl -be -bz -bD -bG -mj -bM -RV -RI -RI -RI -cr -nf -ab -ab -ab -ab -ab -ab -ab -"} -(40,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -dP -eE -fe -dy -bn -dy -ho -hD -dy -dy -ac -ab -ab -ab -ac -jK -ju -km -kB -br -bE -bH -bJ -bN -bP -cl -cn -RI -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(41,1,1) = {" -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -eF -eF -dy -bo -dy -eF -eF -dy -ab -ab -ab -ab -ab -ab -ab -ju -ju -kC -bA -lu -lP -bK -mK -kD -cm -co -RI -ab -ab -ab -ab -ab -ab -ab -ab -ab -"} -(42,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -dy -gg -dy -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -kD -bB -Au -kD -bB -ju -ju -ju -ju -RI -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(43,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -fx -bp -fx -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -bs -bu -ju -ch -cj -ju -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(44,1,1) = {" -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -bq -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -bt -cg -ju -ci -ck -ju -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(45,1,1) = {" -aa -aa -aa -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ju -ju -ju -ju -ju -ju -ju -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -"} -(46,1,1) = {" -aa -aa -aa -aa -aa -ab -ab -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(47,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -"} -(48,1,1) = {" -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -aa -aa -aa -"} diff --git a/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm new file mode 100644 index 00000000000..6f97ce3e9f8 --- /dev/null +++ b/_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm @@ -0,0 +1,8654 @@ +//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE +"aj" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"ap" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"ar" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"at" = ( +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"av" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"aT" = ( +/obj/effect/decal/cleanable/blood, +/obj/item/clothing/mask/gas/clown_hat{ + desc = "What is this? A secret syndie space face, inside the secret syndie space base?"; + name = "syndicate clown mask" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"aX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"be" = ( +/obj/machinery/atmospherics/binary/pump/on{ + name = "Air To Distro" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"br" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/door_control{ + id = "syndie_lavaland_vault"; + name = "Vault Bolt Control"; + normaldoorcontrol = 1; + pixel_x = 24; + pixel_y = -24; + req_access_txt = "150"; + specialfunctions = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"bw" = ( +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"bO" = ( +/obj/structure/rack, +/obj/item/rpd{ + pixel_y = 3 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"bS" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"bT" = ( +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"bY" = ( +/obj/structure/table, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"cg" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ch" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"cj" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"cs" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"cB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"cC" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"cD" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"cE" = ( +/obj/machinery/atmospherics/binary/valve, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"cH" = ( +/obj/machinery/door/window/eastright{ + name = "Animal Storage"; + req_access_txt = "150"; + req_one_access_txt = "150" + }, +/obj/structure/window/basic{ + dir = 1 + }, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"cJ" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 5; + level = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"cL" = ( +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Medical APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whiteblue"; + tag = "icon-whiteblue (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"cO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"cS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"cU" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/large, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"di" = ( +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"dl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ds" = ( +/obj/structure/sign/poster/contraband/hacking_guide, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"dH" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"dP" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/portable_atmospherics/canister/sleeping_agent, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"dS" = ( +/obj/structure/closet/crate, +/obj/item/extinguisher{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/extinguisher{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/extinguisher{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/flashlight{ + pixel_x = -5; + pixel_y = 5 + }, +/obj/item/flashlight{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/item/flashlight{ + pixel_x = 1; + pixel_y = -1 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"dW" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"el" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/obj/item/storage/box/monkeycubes/syndicate, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"em" = ( +/obj/structure/table, +/obj/machinery/door_control{ + id = "SSBrestricted"; + name = "Shutters Control"; + pixel_x = 6; + req_access_txt = "151" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"eC" = ( +/obj/machinery/atmospherics/unary/thermomachine/freezer, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"eN" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"eQ" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"eV" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whiteblue"; + tag = "icon-whiteblue (NORTH)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"fb" = ( +/obj/machinery/kitchen_machine/microwave, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"fe" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"ff" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"fi" = ( +/obj/machinery/atmospherics/pipe/simple/visible, +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"fn" = ( +/obj/machinery/vending/syndichem, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"fu" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/chem_master, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whitepurple"; + tag = "icon-whitepurple (SOUTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"fx" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"fF" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"fH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"fP" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"fQ" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"fU" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"fX" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ge" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"gg" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"gh" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"gj" = ( +/obj/structure/sign/securearea{ + name = "\improper STAY CLEAR HEAVY MACHINERY"; + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"gl" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"gn" = ( +/obj/structure/sign/poster/contraband/syndicate_pistol, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/cargo) +"gs" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"gu" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/toxins, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"gD" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/medbay) +"gS" = ( +/obj/machinery/light/small{ + dir = 8 + }, +/obj/structure/bed/roller, +/obj/machinery/iv_drip, +/obj/item/reagent_containers/iv_bag/blood/OMinus, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"gY" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/redgrid, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"gZ" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"hc" = ( +/obj/machinery/atmospherics/binary/volume_pump, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"hp" = ( +/obj/structure/table/glass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/item/reagent_containers/glass/beaker/large, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Chemistry APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"hq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"hr" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"hB" = ( +/obj/machinery/plantgenes, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"hK" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"hO" = ( +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30; + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30 + }, +/obj/item/stack/sheet/mineral/plastitanium{ + amount = 30; + pixel_x = -5; + pixel_y = -5 + }, +/obj/structure/rack{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"hR" = ( +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"hS" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"hX" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"ia" = ( +/turf/simulated/mineral, +/area/ruin/unpowered/syndicate_space_base/testlab) +"ic" = ( +/turf/template_noop, +/area/template_noop) +"id" = ( +/obj/machinery/atmospherics/unary/passive_vent, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ii" = ( +/obj/machinery/hydroponics/constructable, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"ik" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"in" = ( +/obj/machinery/kitchen_machine/oven, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"ir" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"it" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"iy" = ( +/obj/structure/table, +/obj/machinery/photocopier/faxmachine/longrange/syndie{ + department = "Syndicate Bioweapon Research Outpost" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"iA" = ( +/obj/machinery/atmospherics/pipe/simple/visible/universal{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"iF" = ( +/obj/structure/table, +/obj/item/pen, +/obj/item/paper_bin, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"iH" = ( +/obj/machinery/atmospherics/unary/thermomachine/heater, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ji" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"jl" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"jm" = ( +/obj/machinery/light/small, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"jq" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"jt" = ( +/obj/structure/table, +/obj/item/storage/box/masks{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/storage/box/gloves{ + pixel_x = 5; + pixel_y = 5 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"jy" = ( +/obj/structure/toilet{ + dir = 8 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"jB" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/soap/syndie, +/obj/item/soap/syndie, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"jC" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"jI" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"jO" = ( +/obj/structure/chair/stool/bar, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"jS" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"jW" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/beer/upgraded{ + dir = 1 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"kg" = ( +/obj/machinery/computer/cryopod{ + pixel_x = -32; + req_one_access = null + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"kk" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"ks" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"ku" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/structure/reagent_dispensers/watertank/high, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"kC" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"kD" = ( +/obj/structure/table, +/obj/item/paper_bin, +/obj/item/pen, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"kE" = ( +/obj/effect/spawner/window/reinforced, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"kI" = ( +/obj/machinery/portable_atmospherics/canister/toxins, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"kU" = ( +/obj/structure/table/glass, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/storage/box/syringes, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"kY" = ( +/obj/structure/cable/yellow{ + d1 = 2; + d2 = 8; + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"lf" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/main) +"lm" = ( +/obj/machinery/atmospherics/unary/passive_vent, +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"lo" = ( +/obj/machinery/optable, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"lr" = ( +/obj/machinery/smartfridge, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"lu" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"lv" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/stack/sheet/cardboard{ + amount = 3 + }, +/obj/item/stack/rods/twentyfive, +/obj/item/stock_parts/cell/high/plus, +/obj/item/storage/box/stockparts/deluxe, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"lw" = ( +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ly" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"lB" = ( +/obj/machinery/smartfridge/secure/chemistry/virology/preloaded/syndicate, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"lM" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"lZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"mh" = ( +/obj/structure/table/glass, +/obj/structure/reagent_dispensers/virusfood{ + pixel_y = 28 + }, +/obj/item/clothing/gloves/color/latex, +/obj/item/healthanalyzer, +/obj/item/clothing/glasses/hud/health, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "whitegreen"; + tag = "icon-whitegreen (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"mi" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"mB" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Telecomms APC"; + pixel_y = 24 + }, +/obj/structure/filingcabinet/chestdrawer, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"mE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) +"mP" = ( +/obj/machinery/power/generator, +/obj/structure/cable/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"mX" = ( +/obj/structure/sink{ + dir = 4; + icon_state = "sink"; + pixel_x = 10; + pixel_y = 0 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"nc" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on{ + dir = 8 + }, +/turf/simulated/floor/plating/airless, +/area/ruin/unpowered/syndicate_space_base/engineering) +"ne" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"nf" = ( +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"nj" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"nm" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/structure/cable/yellow{ + d1 = 4; + d2 = 8; + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"nr" = ( +/obj/machinery/door/airlock/vault{ + id_tag = "syndie_lavaland_vault"; + locked = 1; + req_access_txt = "150" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"nv" = ( +/obj/machinery/light, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"ny" = ( +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "whitegreen"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"nA" = ( +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"nD" = ( +/obj/machinery/hydroponics/constructable, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"nG" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"nT" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"nY" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"nZ" = ( +/obj/machinery/reagentgrinder, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5 + }, +/obj/item/stack/sheet/mineral/uranium{ + amount = 10 + }, +/obj/item/stack/sheet/mineral/gold{ + amount = 10 + }, +/obj/structure/table/glass, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"ob" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"oi" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"oj" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Storage APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"ol" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"ow" = ( +/obj/structure/closet/crate/medical, +/obj/item/storage/firstaid/fire{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/brute, +/obj/item/storage/firstaid/regular{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/structure/window/basic, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"oO" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"oW" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/machinery/biogenerator, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/obj/item/reagent_containers/glass/bucket, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"oZ" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/binary/pump{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"pa" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ph" = ( +/obj/machinery/light, +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"pp" = ( +/obj/machinery/vending/hydronutrients, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"pA" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"pG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"pI" = ( +/obj/structure/table/reinforced, +/obj/item/retractor, +/obj/item/hemostat, +/obj/effect/decal/cleanable/dirt, +/obj/item/cautery, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"pK" = ( +/obj/item/flag/syndi, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"pR" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"qs" = ( +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"qt" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/computer/operating, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"qv" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"qz" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"qF" = ( +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"qN" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"qQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"qT" = ( +/obj/machinery/conveyor_switch/oneway{ + id = "syndiegarbage"; + name = "disposal coveyor" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"qY" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 10 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"rp" = ( +/obj/machinery/vending/toyliberationstation{ + req_access_txt = "150" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"rr" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) +"rw" = ( +/obj/item/gun/energy/floragun, +/obj/item/gun/energy/floragun, +/obj/item/gun/energy/floragun, +/obj/item/gun/energy/floragun, +/obj/structure/closet/crate/hydroponics, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"rD" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/item/reagent_containers/spray/cleaner, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"rK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"rN" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"rV" = ( +/obj/machinery/seed_extractor, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"rW" = ( +/obj/effect/decal/warning_stripes/north, +/obj/machinery/atmospherics/binary/pump, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"sb" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 5 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"sr" = ( +/obj/effect/decal/warning_stripes/blue, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"ss" = ( +/obj/structure/bookcase/random, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"sw" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"sz" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBSE"; + location = "SBNE" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"sH" = ( +/obj/machinery/vending/artvend, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"sR" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"te" = ( +/obj/machinery/computer/camera_advanced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"tf" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"th" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"tj" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"tv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 6; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"tz" = ( +/obj/structure/closet/secure_closet/medical1{ + req_access = null; + req_access_txt = "150" + }, +/obj/item/defibrillator, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"tL" = ( +/obj/structure/closet/firecloset/full, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"tQ" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"tW" = ( +/obj/structure/table, +/obj/machinery/computer/library/checkout, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"uk" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"un" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/fans/tiny, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) +"uq" = ( +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"ur" = ( +/obj/structure/reagent_dispensers/watertank, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"uu" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"uz" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"uF" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/stack/sheet/metal/fifty{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/item/stack/sheet/metal/fifty{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/stack/sheet/metal/fifty, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"uJ" = ( +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"uL" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/item/storage/box/monkeycubes/syndicate, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"uN" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"uX" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"uZ" = ( +/obj/machinery/monkey_recycler, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "whitegreen"; + tag = "icon-whitegreen (SOUTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"ve" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"vk" = ( +/obj/machinery/kitchen_machine/grill, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"vn" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vq" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"vs" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 8; + icon_state = "2-8"; + tag = "" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vt" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"vv" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/soda/upgraded{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"vE" = ( +/obj/machinery/atmospherics/binary/volume_pump{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vF" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/grille, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"vJ" = ( +/obj/structure/closet/l3closet, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"vK" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/reagent_containers/glass/bucket, +/obj/item/mop, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"vL" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"vM" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"vP" = ( +/obj/machinery/recycler, +/obj/machinery/conveyor/east{ + id = "syndiegarbage" + }, +/obj/machinery/light, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"vQ" = ( +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"vY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/meter, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"wc" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"wf" = ( +/obj/structure/closet/crate, +/obj/item/vending_refill/snack{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/vending_refill/snack{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/vending_refill/coffee, +/obj/item/vending_refill/cola, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"wg" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"wh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"wj" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"wn" = ( +/obj/structure/table, +/obj/machinery/smartfridge/disks, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"wp" = ( +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"wq" = ( +/obj/structure/closet/crate/secure/weapon{ + req_access_txt = "150" + }, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/ammo_box/magazine/m10mm/ap, +/obj/item/ammo_box/magazine/m10mm/fire, +/obj/item/ammo_box/magazine/m10mm/fire, +/obj/item/ammo_box/magazine/m10mm/hp, +/obj/item/ammo_box/magazine/m10mm/hp, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"ws" = ( +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"wz" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"wB" = ( +/obj/structure/bed, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"wC" = ( +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"wJ" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/obj/machinery/meter, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"wS" = ( +/obj/item/kitchen/rollingpin, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"wX" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Primary Corridor APC"; + pixel_y = 24 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"wZ" = ( +/obj/machinery/atmospherics/binary/circulator{ + side = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xc" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"xm" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/vending/medical/syndicate_access, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "whiteblue"; + tag = "icon-whiteblue (NORTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"xo" = ( +/obj/machinery/door_control{ + id = "syndbaseventing"; + name = "Toxin Venting Control"; + pixel_x = -8; + pixel_y = 26 + }, +/obj/machinery/ignition_switch{ + id = "syndbaseigniter"; + pixel_x = 6; + pixel_y = 25 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xr" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"xt" = ( +/obj/machinery/portable_atmospherics/canister/air{ + anchored = 1 + }, +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xu" = ( +/obj/structure/sign/poster/contraband/tools, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"xB" = ( +/obj/item/storage/box/monkeycubes/syndicate, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"xG" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"xN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"yf" = ( +/obj/machinery/computer/monitor{ + name = "Engine Grid Power Monitoring Computer" + }, +/obj/structure/cable/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"yq" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"yz" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"yB" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"yE" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"yY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"yZ" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"zj" = ( +/obj/structure/table, +/obj/item/storage/box/disks_plantgene, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"zl" = ( +/obj/structure/table/glass, +/obj/item/reagent_containers/syringe/antiviral, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"zm" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"zs" = ( +/obj/structure/sign/biohazard{ + pixel_y = 0 + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/virology) +"zG" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/cans/beer, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"zS" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/machinery/floodlight, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ai" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Aj" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Am" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/item/reagent_containers/food/condiment/flour, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"AA" = ( +/obj/structure/table/reinforced, +/obj/item/clothing/glasses/science, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"AB" = ( +/obj/machinery/autolathe/syndicate, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"AG" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "whitegreen"; + tag = "icon-whitegreen (NORTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"AI" = ( +/obj/structure/table/glass, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + pixel_y = 2 + }, +/obj/item/stack/sheet/mineral/plasma{ + amount = 5; + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 6 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine, +/obj/item/storage/box/beakers/bluespace, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitepurple"; + tag = "icon-whitepurple (NORTH)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"AJ" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"AM" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"AU" = ( +/obj/machinery/vending/cigarette/syndicate/free, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"AV" = ( +/turf/simulated/mineral, +/area/template_noop) +"AX" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Bt" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"BC" = ( +/obj/machinery/door/airlock/hatch/syndicate, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"BG" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 5 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"BH" = ( +/obj/structure/table/reinforced, +/obj/item/scalpel, +/obj/item/circular_saw{ + pixel_y = 9 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"BN" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"BS" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Cd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ce" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Cf" = ( +/obj/machinery/conveyor/east{ + id = "syndiegarbage" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Cj" = ( +/obj/item/reagent_containers/food/condiment/saltshaker{ + pixel_x = -3; + pixel_y = 0 + }, +/obj/item/reagent_containers/food/condiment/peppermill{ + pixel_x = 3 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Cr" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Cv" = ( +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whitegreen"; + tag = "icon-whitegreen (SOUTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"CG" = ( +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/engineering) +"CH" = ( +/obj/structure/closet/bombcloset, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"CI" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"CL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/redgrid, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"CM" = ( +/obj/structure/sign/explosives/alt, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Da" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Dp" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Dv" = ( +/obj/machinery/portable_atmospherics/pump, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Dw" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Dy" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"DE" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"DG" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/cargo) +"DH" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"DL" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"DN" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"DP" = ( +/obj/item/clothing/glasses/night, +/obj/item/clothing/glasses/night, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/shoes/combat, +/obj/item/clothing/shoes/combat, +/obj/item/storage/belt/military, +/obj/item/storage/belt/military, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/under/syndicate/combat, +/obj/item/clothing/gloves/combat, +/obj/structure/closet/crate/secure/gear{ + req_access_txt = "150" + }, +/obj/item/clothing/gloves/combat, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"DW" = ( +/obj/machinery/computer/pandemic, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"El" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Em" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Es" = ( +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"EA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/power/terminal{ + dir = 1 + }, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EC" = ( +/obj/structure/table, +/obj/item/storage/box/syringes, +/obj/item/gun/syringe/syndicate, +/obj/machinery/defibrillator_mount/loaded{ + pixel_x = -30 + }, +/obj/item/stock_parts/cell/high/plus, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"EI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"EK" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EM" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"EO" = ( +/turf/simulated/floor/plasteel{ + icon_state = "whitegreenfull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"EP" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"ET" = ( +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EW" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 8 + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/insulated, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"EX" = ( +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Fd" = ( +/obj/structure/table, +/obj/item/storage/firstaid/regular{ + pixel_x = -4; + pixel_y = -4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/item/storage/firstaid/fire{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Fe" = ( +/obj/structure/cable{ + d2 = 4; + icon_state = "0-4" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Virology APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"Fi" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Fl" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/virology) +"Fm" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Fp" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/chem_heater, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Fs" = ( +/obj/structure/window/basic{ + dir = 1 + }, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ft" = ( +/obj/structure/sign/chemistry, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"FC" = ( +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"FK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"FQ" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/storage/bag/trash, +/obj/item/storage/bag/trash, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"FW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"FY" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"Ga" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 5; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Gd" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ge" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/chem_master, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whitepurple"; + tag = "icon-whitepurple (SOUTHWEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Go" = ( +/obj/machinery/cooker/deepfryer, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Gq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"GJ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"GK" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/obj/item/storage/bag/plants, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"GM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"GQ" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"GY" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 10 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Hc" = ( +/turf/space, +/area/ruin/unpowered/syndicate_space_base/engineering) +"He" = ( +/obj/machinery/portable_atmospherics/scrubber, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Hq" = ( +/obj/structure/closet/firecloset/full, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Hv" = ( +/obj/effect/spawner/window/reinforced, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"HB" = ( +/obj/structure/sink{ + dir = 8; + icon_state = "sink"; + pixel_x = -12; + pixel_y = 2 + }, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"HF" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurple"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"HL" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/stockparts/deluxe, +/obj/item/storage/box/stockparts/deluxe, +/obj/item/stack/sheet/metal/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/circuitboard/gibber, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"HS" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"HZ" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/bar) +"Ig" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction{ + dir = 4 + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ih" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Il" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/item/reagent_containers/food/condiment/enzyme, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/item/reagent_containers/food/drinks/cans/beer, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Iv" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"IA" = ( +/obj/machinery/vending/boozeomat, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"IL" = ( +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBNE"; + location = "SBNW" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"IZ" = ( +/obj/machinery/atmospherics/binary/circulator, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ja" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Je" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 4; + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Jg" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Jh" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "whitebluefull"; + tag = "icon-whitebluefull" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Ji" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Jk" = ( +/obj/machinery/tcomms/relay/ruskie{ + network_id = "SYNDIE-RELAY" + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"Jm" = ( +/turf/simulated/floor/plasteel{ + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Jq" = ( +/obj/structure/table/wood, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"JH" = ( +/obj/machinery/atmospherics/unary/vent_scrubber/on, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"JX" = ( +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBNW"; + location = "SBSW" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Kf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Kh" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ki" = ( +/obj/item/twohanded/required/kirbyplants{ + icon_state = "plant-22" + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Bar APC"; + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Kj" = ( +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Km" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/chem_heater, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Ko" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Kt" = ( +/obj/machinery/bodyscanner, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Kv" = ( +/obj/structure/mirror{ + pixel_y = 32 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Kw" = ( +/obj/machinery/processor, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Kx" = ( +/obj/machinery/recharge_station, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"KB" = ( +/mob/living/simple_animal/pig, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"KH" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"KJ" = ( +/obj/item/flag/syndi, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"KK" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"KQ" = ( +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"KS" = ( +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 5; + pixel_y = 5 + }, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = -5; + pixel_y = -5 + }, +/obj/structure/rack{ + dir = 8 + }, +/obj/item/stack/sheet/glass/fifty, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"La" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Le" = ( +/obj/structure/reagent_dispensers/beerkeg, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Lf" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Lh" = ( +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/obj/item/wrench, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Lj" = ( +/obj/item/reagent_containers/food/drinks/shaker, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Lk" = ( +/obj/machinery/computer/syndicate_depot/teleporter, +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Lm" = ( +/obj/structure/table, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/item/clothing/glasses/welding, +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Engineering APC"; + pixel_y = 24; + shock_proof = 1 + }, +/obj/structure/cable/yellow{ + d1 = 0; + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ls" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"LI" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 8; + icon_state = "1-8"; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 4; + initialize_directions = 11; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"LK" = ( +/obj/structure/chair/stool/bar, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"LP" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkbluecorners" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"LQ" = ( +/obj/structure/closet/crate/secure/gear{ + req_access_txt = "150" + }, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/suit/space/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/mask/gas/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, +/obj/item/clothing/head/helmet/space/syndicate, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"LR" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"LV" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 10 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"LX" = ( +/obj/machinery/door/poddoor{ + id_tag = "syndbaseventing"; + name = "Venting Bay Door"; + use_power = 0 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"LY" = ( +/obj/structure/sink{ + dir = 4; + pixel_x = 12 + }, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Mb" = ( +/obj/machinery/atmospherics/unary/vent_pump/on, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Mc" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Me" = ( +/obj/machinery/atmospherics/binary/volume_pump, +/obj/machinery/alarm/syndicate{ + pixel_x = -32 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Mi" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "90Curve" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Mk" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitepurplefull"; + tag = "icon-whitepurple (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Mq" = ( +/obj/structure/rack{ + dir = 8 + }, +/obj/item/storage/belt/medical, +/obj/item/crowbar, +/obj/item/clothing/glasses/hud/health, +/obj/item/clothing/accessory/stethoscope, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Ms" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"MH" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"MU" = ( +/obj/structure/table, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/obj/item/t_scanner, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"MV" = ( +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Na" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"NE" = ( +/obj/machinery/atmospherics/unary/outlet_injector/on, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"NN" = ( +/obj/structure/bookcase/random, +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"NO" = ( +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 5 + }, +/obj/item/hand_labeler, +/obj/item/pen/red, +/obj/item/restraints/handcuffs, +/obj/effect/decal/cleanable/dirt, +/obj/item/clothing/glasses/science, +/obj/structure/table/glass, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitegreen"; + tag = "icon-whitegreen (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"NT" = ( +/obj/structure/extinguisher_cabinet{ + pixel_x = -5; + pixel_y = 30 + }, +/obj/structure/rack, +/obj/item/clothing/gloves/color/yellow, +/obj/item/clothing/gloves/color/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"NV" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/supply{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Og" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"On" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/power/smes/engineering, +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Op" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ot" = ( +/obj/machinery/light, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkred" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"OG" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"OK" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"OY" = ( +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Dorms APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Pq" = ( +/obj/item/holosign_creator/atmos, +/obj/structure/table, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"PB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"PE" = ( +/obj/machinery/vending/medical/syndicate_access, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whitegreen"; + tag = "icon-whitegreen (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"PH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/chem_dispenser/upgraded, +/turf/simulated/floor/plasteel{ + dir = 6; + icon_state = "whitepurple"; + tag = "icon-whitepurple (SOUTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"PI" = ( +/obj/machinery/light, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"PK" = ( +/obj/structure/table/wood, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"PX" = ( +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2"; + pixel_y = 1 + }, +/obj/machinery/computer/monitor{ + name = "Output Grid Power Monitoring Computer" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Qj" = ( +/obj/structure/closet/crate/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/clothing/mask/breath/medical, +/obj/item/tank/internals/anesthetic, +/obj/item/tank/internals/anesthetic, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Qr" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Qt" = ( +/obj/structure/sign/barsign, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/bar) +"QO" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"QQ" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"QW" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Ri" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Rk" = ( +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Rn" = ( +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Rr" = ( +/obj/machinery/atmospherics/pipe/manifold/hidden/supply, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Ry" = ( +/obj/structure/table/reinforced, +/obj/item/surgicaldrill, +/obj/effect/decal/cleanable/dirt, +/obj/item/bonegel, +/obj/item/bonesetter, +/obj/item/FixOVein, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"RC" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 6 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"RF" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"RG" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"RM" = ( +/obj/structure/grille, +/obj/structure/window/full/plastitanium, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/virology) +"RN" = ( +/obj/structure/reagent_dispensers/watertank, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plasteel{ + dir = 10; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Sh" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/navbeacon/invisible{ + codes_txt = "patrol;next_patrol=SBSW"; + location = "SBSE" + }, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 8; + initialize_directions = 11 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"SE" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/screwdriver/nuke{ + pixel_y = 18 + }, +/obj/machinery/light{ + dir = 4 + }, +/obj/item/reagent_containers/spray/cleaner, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"SI" = ( +/obj/effect/decal/warning_stripes/yellow, +/obj/machinery/bluespace_beacon/syndicate/infiltrator, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"SO" = ( +/obj/machinery/light{ + dir = 1; + on = 1 + }, +/obj/machinery/cryopod/offstation, +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"SQ" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"SU" = ( +/obj/machinery/vending/coffee/free, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"SV" = ( +/turf/simulated/floor/plasteel{ + dir = 1; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"SW" = ( +/mob/living/simple_animal/cow, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"SX" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/mob/living/simple_animal/chicken, +/turf/simulated/floor/grass, +/area/ruin/unpowered/syndicate_space_base/bar) +"Tc" = ( +/obj/structure/closet/crate, +/obj/item/storage/box/donkpockets{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/storage/box/donkpockets{ + pixel_y = 3 + }, +/obj/item/storage/box/donkpockets{ + pixel_x = 2 + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + dir = 9; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Te" = ( +/obj/machinery/sparker{ + id = "syndbaseigniter"; + pixel_x = -20 + }, +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 4 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tg" = ( +/obj/machinery/door/firedoor, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tl" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 4; + initialize_directions = 11; + level = 2 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tm" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Tn" = ( +/obj/structure/cable{ + d1 = 2; + d2 = 4; + icon_state = "2-4" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tq" = ( +/obj/structure/window/basic{ + dir = 4 + }, +/obj/machinery/vending/hydroseeds, +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Tr" = ( +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Arrivals APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 8; + icon_state = "0-8" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Tv" = ( +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Tw" = ( +/turf/simulated/floor/plasteel{ + icon_state = "floorgrime" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"TC" = ( +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"TD" = ( +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/testlab) +"TJ" = ( +/obj/structure/table/wood, +/obj/machinery/light{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "grimy" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"TM" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/alarm/syndicate{ + pixel_y = 24 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"TN" = ( +/obj/structure/curtain/open/shower, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"Uo" = ( +/obj/structure/closet/l3closet, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Us" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"UF" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 4; + icon_state = "1-4"; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "white" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"UR" = ( +/obj/machinery/light, +/obj/machinery/atmospherics/unary/portables_connector{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Vc" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Vd" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/simulated/floor/redgrid, +/area/ruin/unpowered/syndicate_space_base/telecomms) +"Vf" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Vg" = ( +/obj/machinery/portable_atmospherics/canister/carbon_dioxide, +/obj/effect/decal/warning_stripes/yellow, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Vl" = ( +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Vs" = ( +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Vu" = ( +/obj/machinery/monkey_recycler, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Vx" = ( +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/effect/turf_decal/caution/red, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VB" = ( +/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/simple/insulated{ + dir = 4 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VH" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/power/smes/engineering{ + charge = 0 + }, +/obj/structure/cable/yellow, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VK" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable/yellow{ + d1 = 1; + d2 = 2; + icon_state = "1-2" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"VP" = ( +/obj/machinery/light, +/obj/effect/mob_spawn/human/spacebase_syndicate{ + dir = 8 + }, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"VQ" = ( +/obj/machinery/shower{ + dir = 8; + icon_state = "shower"; + tag = "icon-shower (WEST)" + }, +/obj/item/soap/syndie, +/obj/machinery/light/small{ + dir = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "freezerfloor" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"VW" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Wi" = ( +/obj/machinery/kitchen_machine/candy_maker, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Wl" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/hydroponics/constructable, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Wn" = ( +/obj/machinery/sleeper/syndie, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whiteblue"; + tag = "icon-whitehall (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Wr" = ( +/turf/simulated/floor/engine/air, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Wz" = ( +/obj/structure/sign/lifestar{ + desc = "The Star of Life, a symbol of Medical Aid."; + icon_state = "lifestar"; + name = "Medbay" + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/medbay) +"WC" = ( +/obj/item/kitchen/knife{ + pixel_x = 6 + }, +/obj/structure/table, +/turf/simulated/floor/plasteel{ + dir = 2; + icon_state = "cafeteria"; + tag = "icon-cafeteria (NORTHEAST)" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"WG" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"WN" = ( +/obj/machinery/atmospherics/pipe/manifold/visible{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"WT" = ( +/obj/structure/window/basic, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "whiteblue"; + tag = "icon-whiteblue (WEST)" + }, +/area/ruin/unpowered/syndicate_space_base/medbay) +"Xa" = ( +/obj/machinery/atmospherics/pipe/simple/heat_exchanging{ + dir = 9 + }, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Xb" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Xh" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Xm" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "yellow" + }, +/area/ruin/unpowered/syndicate_space_base/engineering) +"XQ" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/window/plasmareinforced{ + dir = 1 + }, +/obj/structure/window/plasmareinforced, +/obj/structure/window/plasmareinforced{ + dir = 4 + }, +/obj/structure/grille, +/obj/machinery/atmospherics/pipe/simple/insulated, +/turf/simulated/floor/engine/vacuum, +/area/ruin/unpowered/syndicate_space_base/engineering) +"XS" = ( +/obj/structure/table/glass, +/obj/item/folder/white, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/glass/beaker/large{ + pixel_x = -3 + }, +/obj/item/reagent_containers/dropper, +/obj/item/screwdriver/nuke{ + pixel_y = 18 + }, +/obj/item/reagent_containers/spray/cleaner, +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "whitepurple"; + tag = "icon-whitepurple (EAST)" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"Ya" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4; + level = 1 + }, +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{ + dir = 1; + initialize_directions = 11; + level = 1 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"Yc" = ( +/obj/structure/cable{ + d1 = 1; + d2 = 2; + icon_state = "1-2"; + pixel_y = 0; + tag = "" + }, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"Yq" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/universal{ + dir = 4 + }, +/turf/simulated/wall/mineral/plastitanium/nodiagonal, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Yz" = ( +/obj/machinery/door/poddoor/shutters{ + dir = 8; + id_tag = "SSBrestricted"; + name = "Syndicate Restricted Area" + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/arrivals) +"YC" = ( +/obj/effect/spawner/window/reinforced, +/obj/machinery/door/firedoor, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/chemistry) +"YJ" = ( +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/high/plus, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"YP" = ( +/obj/machinery/atmospherics/pipe/simple/visible{ + dir = 6 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"YU" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/item/storage/part_replacer, +/obj/machinery/atmospherics/unary/vent_pump/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + dir = 8; + icon_state = "brown" + }, +/area/ruin/unpowered/syndicate_space_base/cargo) +"Za" = ( +/obj/structure/cable{ + d1 = 4; + d2 = 8; + icon_state = "4-8"; + pixel_y = 0; + tag = "" + }, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Zg" = ( +/obj/machinery/power/apc/syndicate{ + dir = 1; + name = "Test Chamber APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + d2 = 2; + icon_state = "0-2" + }, +/turf/simulated/floor/engine, +/area/ruin/unpowered/syndicate_space_base/testlab) +"Zl" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/cultivator, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/shovel/spade, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/item/hatchet, +/obj/machinery/atmospherics/unary/vent_scrubber/on{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/bar) +"Zo" = ( +/obj/machinery/computer/general_air_control{ + frequency = 1222; + name = "Bomb Mix Monitor"; + sensors = list("burn_sensor" = "Burn Mix") + }, +/obj/effect/decal/warning_stripes/north, +/turf/simulated/floor/plating, +/area/ruin/unpowered/syndicate_space_base/engineering) +"Zy" = ( +/turf/simulated/floor/plasteel{ + dir = 4; + icon_state = "darkblue" + }, +/area/ruin/unpowered/syndicate_space_base/dormitories) +"ZB" = ( +/obj/machinery/atmospherics/pipe/simple/hidden/supply{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{ + dir = 4 + }, +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/main) +"ZR" = ( +/turf/simulated/floor/plasteel{ + icon_state = "dark" + }, +/area/ruin/unpowered/syndicate_space_base/testlab) + +(1,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(2,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(3,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(4,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(5,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(6,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(7,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(8,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(9,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +"} +(10,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +"} +(11,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +"} +(12,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +HZ +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(13,1,1) = {" +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +fF +fF +fF +fF +fF +fF +fF +fF +nj +nj +nj +nj +nj +nj +hB +Tw +Wl +Tw +ii +HB +ii +Tw +ii +Fs +nA +HZ +AV +AV +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(14,1,1) = {" +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +fF +Lf +Vs +KJ +kg +KJ +Vs +Rk +nj +iy +iF +Jk +te +nj +rV +Dy +nD +Dy +nD +Dy +nD +Dy +nD +Fs +KB +HZ +lf +lf +gD +xm +Mq +tz +EC +gS +WT +pI +BH +Ry +gD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(15,1,1) = {" +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +fF +SO +La +La +La +La +La +ph +nj +fU +CL +Vd +gY +nj +pp +Tw +Dy +Tw +Dy +Tw +Dy +Tw +Dy +Fs +SW +HZ +uk +uk +Wz +eV +bw +bw +bw +bw +bw +bw +bw +lo +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(16,1,1) = {" +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +fF +Ga +Zy +cg +La +EX +Zy +ff +nj +mB +FY +zm +jl +nj +Tq +xr +zS +wn +Tw +Dy +zj +ku +oW +cH +SX +HZ +tv +fQ +EI +cO +ks +lu +lu +Jh +bw +bw +bw +qt +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(17,1,1) = {" +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +fF +fF +fF +qz +La +Fm +fF +fF +nj +nj +hR +uX +kE +nj +Ji +GK +Zl +rw +Dy +Tw +lr +Am +Il +Tw +Ji +HZ +ZB +yz +gD +cL +Fd +Kt +Wn +Wn +ow +Qj +av +jt +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(18,1,1) = {" +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +HS +La +Gq +dl +dl +Tm +LR +Dp +ne +Cd +ik +Gd +ap +DN +qN +Gd +ap +Gd +yY +cS +ap +Gd +ik +Rr +cC +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +gD +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(19,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +OY +gl +Xh +gl +gl +Yc +VW +VW +Mi +IL +pR +it +Tw +Dy +Tw +Dy +Tw +Dy +Tw +Dy +Tw +Dy +OG +JX +yz +Fl +AG +cs +wg +lB +DW +PE +Cv +RM +vq +wC +Fl +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(20,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +fF +fF +fF +qz +La +DE +fF +fF +fF +fF +fF +Op +Es +HZ +Ki +di +Jq +jO +Tw +IA +WC +wS +fb +Cj +uJ +Qt +ZB +yz +Fl +Fe +EO +EO +EO +bS +EO +ny +nY +wC +wB +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(21,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +fF +fP +Vs +wz +La +LP +Vs +MV +fF +La +fF +xN +uk +HZ +jW +di +zG +LK +Dy +AU +Lj +uJ +uJ +uJ +uJ +HZ +kk +Kh +ir +uu +qQ +gg +gg +yq +EO +ny +RM +RM +RM +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(22,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +RG +La +La +La +La +La +VP +fF +La +fF +xN +uk +HZ +Jq +di +PK +jO +Tw +SU +nf +uJ +uJ +uJ +uJ +HZ +uk +yz +zs +ly +jq +EO +jq +EO +EO +ny +nY +wC +wC +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(23,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +fF +pa +Zy +pK +Zy +pK +Zy +lM +fF +aT +fF +Ya +mi +HZ +vv +di +TJ +LK +Dy +Le +Kw +vk +in +Go +Wi +HZ +uk +yz +Fl +mh +NO +zl +kU +nZ +uL +uZ +RM +jI +wB +Fl +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(24,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +Em +Em +Em +Em +Em +Em +Em +Em +Em +Em +xN +uk +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +DG +uk +PI +Og +Og +Og +Og +YC +Og +Og +YC +Og +Og +Og +Og +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(25,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Kx +gh +lw +RN +Em +tL +He +Pq +He +Hq +Em +NV +jC +DG +Tc +dS +YU +vJ +lv +wf +HL +wf +gn +ws +wq +DG +uk +yz +Og +fn +tQ +HF +FK +fu +Og +fn +tQ +HF +FK +Ge +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(26,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +AB +CG +CG +Jm +Em +AJ +CG +CG +CG +Jm +Em +wX +uk +EM +SV +vQ +Iv +vQ +vQ +vQ +Ja +br +nr +nG +DP +DG +uk +yz +YC +AI +Mk +wj +vL +AA +fe +AI +Mk +wj +vL +AA +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(27,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +hO +CG +uF +KS +Em +uz +Xm +CG +Xm +Dv +Em +GJ +uk +DG +oj +rp +oO +Uo +CH +sH +Ja +el +DG +qs +LQ +DG +uk +yz +Og +hp +XS +UF +Fp +PH +Og +cU +SE +bT +Km +PH +Og +AV +AV +AV +AV +AV +AV +AV +AV +"} +(28,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +sR +Hv +Em +Em +Em +Hv +sR +Em +Em +Em +tf +uk +DG +DG +DG +oi +EM +EM +EM +BC +DG +DG +DG +DG +DG +uk +yz +Og +Og +Og +TM +Ft +Og +Og +Og +Ft +Xb +Og +Og +Og +Og +AV +AV +AV +AV +AV +AV +AV +"} +(29,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Tn +DH +DH +Da +eQ +ar +Ms +Qr +BS +BS +hX +sz +BS +FW +Ko +LI +BS +xG +tj +fx +BS +BS +BS +wh +BS +Sh +yB +ge +Kf +Fi +EP +PB +Na +Na +Na +sb +kC +cB +Xb +xB +Og +AV +AV +AV +AV +AV +AV +AV +"} +(30,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Za +qF +qF +qF +qF +Ls +SQ +Tg +uk +uk +hK +uk +uk +uk +El +uk +uk +yz +pG +uk +uk +uk +uk +KQ +uk +gs +uk +vM +Xb +Ai +hS +CI +Xb +mX +Xb +CI +Xb +Ai +Xb +Vu +Og +AV +AV +AV +AV +AV +AV +AV +"} +(31,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +Em +Za +qF +qF +qF +JH +QW +SQ +xu +Em +Em +Em +Em +Em +sR +pA +Em +yE +GM +gZ +yE +yE +yE +yE +yE +yE +TD +TD +TD +TD +TD +rr +CM +TD +TD +TD +CM +ZR +TD +Og +Og +Og +AV +AV +AV +AV +AV +AV +AV +"} +(32,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +MU +qF +Za +qF +qF +qF +qF +Ls +SQ +bO +Em +Wr +Wr +Wr +Vx +Aj +Ce +vn +yE +nT +rK +xc +uq +uq +uq +uq +uq +TD +ia +ia +ia +TD +un +TD +ia +ia +ia +TD +mE +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(33,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +PX +DH +vs +Vf +VH +lZ +AM +Je +SQ +YJ +Em +Wr +xt +Wr +Jg +Aj +iA +UR +yE +nT +rK +yE +Kv +yE +TN +yE +TN +TD +TD +TD +TD +TD +rr +CM +TD +TD +TD +CM +ZR +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(34,1,1) = {" +ic +AV +AV +AV +AV +AV +AV +AV +AV +Em +Lm +VK +aX +Mc +On +EA +AM +ch +AX +yf +Em +Wr +lm +fi +wJ +be +jS +rN +yE +dW +Us +yE +LY +yE +jy +yE +VQ +TD +Zg +fH +fH +RC +uN +ol +RF +RF +dH +cJ +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(35,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +NT +qF +ji +AM +AM +AM +AM +nm +EK +ds +Em +Em +Em +Em +Em +yE +yE +yE +yE +Tr +rK +yE +yE +yE +yE +yE +yE +TD +Rn +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +"} +(36,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +th +qF +qF +qF +qF +qF +qF +at +qF +YP +Me +BG +TC +qF +Em +jB +ur +WG +aj +Mb +cj +aj +WG +qT +jm +yE +AV +TD +Vl +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(37,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +qF +ET +qF +qF +qF +qF +qF +at +eC +Tl +IZ +cD +vE +gu +Em +vt +WG +WG +xc +WG +rK +xc +WG +WG +Cf +yE +AV +TD +Vl +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(38,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +qF +VB +qF +qF +qF +qF +qF +kY +AM +Lh +mP +qF +qF +qF +Em +rD +vK +FQ +yE +Ih +QO +yE +yE +gj +vP +yE +AV +TD +Vl +Vl +Vl +sw +Vc +Vl +Vl +Vl +Vc +Ri +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(39,1,1) = {" +ic +ic +AV +AV +AV +AV +AV +AV +AV +Em +Em +Ig +Em +Em +xo +qF +JH +QW +iH +WN +wZ +hr +vE +gu +Em +yE +yE +yE +yE +WG +rK +BN +yE +WG +Cf +yE +AV +TD +Vl +Vl +Vl +DL +ve +Vl +Vl +Vl +ve +DL +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(40,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +Em +Em +Em +fX +Te +NE +EW +oZ +cE +Bt +Ls +qF +qY +hc +yZ +qF +qF +Em +ss +WG +WG +aj +WG +rK +bY +yE +WG +yE +yE +AV +TD +eN +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +nv +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(41,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +Em +Hc +LX +fX +fX +Tv +vF +Zo +qF +qF +wc +OK +QQ +OK +OK +GQ +qF +Em +ss +WG +WG +xc +WG +rK +MH +yE +yE +yE +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +"} +(42,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +Em +Em +Em +LV +Xa +id +XQ +rW +cE +Bt +vY +qF +Em +KH +qF +qF +dP +Em +NN +WG +WG +yE +aj +ob +aj +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(43,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +Em +Em +Em +Em +Em +Em +Em +Em +Yq +Em +Em +Cr +qF +qF +dP +Em +ss +WG +BN +yE +FC +GY +kD +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(44,1,1) = {" +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +nc +Hc +Em +kI +qF +qF +Vg +Em +ss +WG +tW +yE +Dw +hq +Ot +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(45,1,1) = {" +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Hc +Hc +Em +kI +qF +Kj +Vg +Em +yE +yE +yE +yE +wp +em +KK +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +"} +(46,1,1) = {" +ic +ic +ic +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +Em +Em +Em +Em +Em +Em +Em +Em +Em +AV +AV +AV +yE +Yz +yE +yE +yE +AV +AV +AV +AV +TD +eN +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +nv +TD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(47,1,1) = {" +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +WG +WG +sr +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(48,1,1) = {" +ic +AV +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +WG +WG +Lk +yE +AV +AV +AV +AV +TD +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +Vl +TD +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +"} +(49,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +WG +WG +SI +yE +AV +AV +AV +AV +TD +Vl +qv +Vl +Vl +Vl +Vl +Vl +Vl +Vl +qv +Vl +TD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(50,1,1) = {" +ic +AV +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +yE +yE +yE +yE +yE +AV +AV +AV +AV +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +TD +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(51,1,1) = {" +ic +ic +ic +AV +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +"} +(52,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +AV +AV +AV +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +"} +(53,1,1) = {" +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +"} +(54,1,1) = {" +ic +AV +ic +ic +ic +ic +ic +ic +ic +AV +ic +AV +ic +ic +AV +ic +ic +ic +AV +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +"} +(55,1,1) = {" +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +"} +(56,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +AV +ic +AV +ic +ic +ic +AV +ic +AV +ic +ic +ic +ic +AV +ic +ic +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +"} +(57,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +AV +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +AV +ic +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +"} +(58,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +AV +ic +ic +ic +ic +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +AV +AV +AV +ic +AV +AV +AV +AV +AV +AV +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(59,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +AV +ic +ic +ic +AV +AV +AV +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +AV +AV +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} +(60,1,1) = {" +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +AV +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +ic +"} diff --git a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm index 3a657a7e054..1ba82c992a5 100644 --- a/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm +++ b/_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -6735,7 +6735,7 @@ }) "nS" = ( /obj/structure/table/wood, -/obj/item/reagent_containers/food/snacks/beetsoup, +/obj/item/reagent_containers/food/snacks/soup/beetsoup, /turf/simulated/floor/plasteel{ icon_state = "bar" }, diff --git a/_maps/map_files/RandomZLevels/spacebattle.dmm b/_maps/map_files/RandomZLevels/spacebattle.dmm index 82ff15e5bd5..41249533907 100644 --- a/_maps/map_files/RandomZLevels/spacebattle.dmm +++ b/_maps/map_files/RandomZLevels/spacebattle.dmm @@ -666,7 +666,7 @@ /area/awaymission/spacebattle/cruiser) "cS" = ( /obj/structure/table/reinforced, -/obj/item/reagent_containers/food/snacks/stew, +/obj/item/reagent_containers/food/snacks/soup/stew, /turf/simulated/floor/plasteel{ icon_state = "cafeteria"; dir = 2 diff --git a/_maps/map_files/RandomZLevels/wildwest.dmm b/_maps/map_files/RandomZLevels/wildwest.dmm index 5ceeeac6383..50a7074a7a9 100644 --- a/_maps/map_files/RandomZLevels/wildwest.dmm +++ b/_maps/map_files/RandomZLevels/wildwest.dmm @@ -1217,7 +1217,7 @@ }, /area/awaymission/wwgov) "dy" = ( -/obj/item/reagent_containers/food/snacks/stew, +/obj/item/reagent_containers/food/snacks/soup/stew, /turf/simulated/floor/plasteel{ tag = "icon-stage_bleft"; icon_state = "stage_bleft" diff --git a/code/__DEFINES/genetics.dm b/code/__DEFINES/genetics.dm index 157fa1c30b9..f64022136ef 100644 --- a/code/__DEFINES/genetics.dm +++ b/code/__DEFINES/genetics.dm @@ -81,3 +81,4 @@ #define NO_INTORGANS "no_internal_organs" #define CAN_WINGDINGS "can_wingdings" #define NO_CLONESCAN "no_clone_scan" +#define NO_HAIR "no_hair" diff --git a/code/__DEFINES/sound.dm b/code/__DEFINES/sound.dm index 333efc90e0b..c3f7780b917 100644 --- a/code/__DEFINES/sound.dm +++ b/code/__DEFINES/sound.dm @@ -6,11 +6,14 @@ #define CHANNEL_HEARTBEAT 1020 //sound channel for heartbeats #define CHANNEL_BUZZ 1019 #define CHANNEL_AMBIENCE 1018 +#define CHANNEL_ENGINE 1017 // Engine ambient sounds + +#define USER_VOLUME(M, C) M?.client?.prefs.get_channel_volume(C) //THIS SHOULD ALWAYS BE THE LOWEST ONE! //KEEP IT UPDATED -#define CHANNEL_HIGHEST_AVAILABLE 1017 +#define CHANNEL_HIGHEST_AVAILABLE 1016 #define MAX_INSTRUMENT_CHANNELS (128 * 6) diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index ee1530df81b..282ad53cd06 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -84,13 +84,13 @@ continue if(!use_name) - error("Loadout - Missing display name: [G]") + stack_trace("Loadout - Missing display name: [G]") continue if(!initial(G.cost)) - error("Loadout - Missing cost: [G]") + stack_trace("Loadout - Missing cost: [G]") continue if(!initial(G.path)) - error("Loadout - Missing path definition: [G]") + stack_trace("Loadout - Missing path definition: [G]") continue if(!GLOB.loadout_categories[use_category]) diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 970f90684bb..68acde69228 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -513,6 +513,7 @@ text = replacetext(text, "\[cell\]", "") text = replacetext(text, "\[logo\]", "​") text = replacetext(text, "\[time\]", "[station_time_timestamp()]") // TO DO + text = replacetext(text, "\[date\]", "[GLOB.current_date_string]") if(!no_font) if(P) text = "[text]" @@ -651,3 +652,22 @@ // return the split html object to the caller return s + +/** + * Proc to generate a "rank colour" from a client + * + * This takes the client and looks at various factors in order, such as patreon status, staff rank, and more + * Arguments: + * * C - The client were looking up + */ +/proc/client2rankcolour(client/C) + // First check if end user is an admin + if(C.holder) + if(C.holder.rank in GLOB.rank_colour_map) + // Return their rank colour if they are in here + return GLOB.rank_colour_map[C.holder.rank] + + // If they arent an admin, see if they are a patreon. Just accept any level + if(C.donator_level) + return "#e67e22" // Patreon orange + return null diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 35388b7b824..3056485d755 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -2116,6 +2116,8 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new) return "White Noise" if(CHANNEL_AMBIENCE) return "Ambience" + if(CHANNEL_ENGINE) + return "Engine Ambience" /proc/slot_bitfield_to_slot(input_slot_flags) // Kill off this garbage ASAP; slot flags and clothing flags should be IDENTICAL. GOSH DARN IT. Doesn't work with ears or pockets, either. switch(input_slot_flags) diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm index ebdf2017900..b5fd84ef6d6 100644 --- a/code/_globalvars/lists/misc.dm +++ b/code/_globalvars/lists/misc.dm @@ -54,4 +54,7 @@ GLOBAL_LIST_INIT(cooking_recipes, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = GLOBAL_LIST_INIT(cooking_ingredients, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list())) GLOBAL_LIST_INIT(cooking_reagents, list(RECIPE_MICROWAVE = list(), RECIPE_OVEN = list(), RECIPE_GRILL = list(), RECIPE_CANDY = list())) +/// Associative list of admin rank to colour. Set in config/rank_colours.txt +GLOBAL_LIST_EMPTY(rank_colour_map) + #define EGG_LAYING_MESSAGES list("lays an egg.", "squats down and croons.", "begins making a huge racket.", "begins clucking raucously.") diff --git a/code/_onclick/hud/blob_overmind.dm b/code/_onclick/hud/blob_overmind.dm index 01940be1d8b..c408c1cd7b6 100644 --- a/code/_onclick/hud/blob_overmind.dm +++ b/code/_onclick/hud/blob_overmind.dm @@ -132,6 +132,8 @@ if(isovermind(usr)) var/mob/camera/blob/B = usr B.split_consciousness() + if(B.split_used) // Destroys split proc if the split is succesfully used + qdel(src) /datum/hud/blob_overmind/New(mob/user) ..() @@ -194,6 +196,8 @@ using.screen_loc = ui_storage2 static_inventory += using - using = new /obj/screen/blob/Split() - using.screen_loc = ui_acti - static_inventory += using + var/mob/camera/blob/B = user + if(!B.is_offspring) // Checks if the blob is an offspring, to not create split button if it is + using = new /obj/screen/blob/Split() + using.screen_loc = ui_acti + static_inventory += using diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index d5fb5cad4fa..e9b95cdd4fc 100644 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -8,7 +8,7 @@ var/last_parallax_shift //world.time of last update var/parallax_throttle = 0 //ds between updates var/parallax_movedir = 0 - var/parallax_layers_max = 3 + var/parallax_layers_max = 4 var/parallax_animate_timer /datum/hud/proc/create_parallax() @@ -21,6 +21,8 @@ C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_1(null, C.view) C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_2(null, C.view) C.parallax_layers_cached += new /obj/screen/parallax_layer/planet(null, C.view) + if(SSparallax.random_layer) + C.parallax_layers_cached += new SSparallax.random_layer C.parallax_layers_cached += new /obj/screen/parallax_layer/layer_3(null, C.view) C.parallax_layers = C.parallax_layers_cached.Copy() @@ -44,12 +46,12 @@ switch(C.prefs.parallax) if (PARALLAX_INSANE) C.parallax_throttle = FALSE - C.parallax_layers_max = 4 + C.parallax_layers_max = 5 return TRUE if (PARALLAX_MED) C.parallax_throttle = PARALLAX_DELAY_MED - C.parallax_layers_max = 2 + C.parallax_layers_max = 3 return TRUE if (PARALLAX_LOW) @@ -60,8 +62,9 @@ if (PARALLAX_DISABLE) return FALSE + //This is high parallax. C.parallax_throttle = PARALLAX_DELAY_DEFAULT - C.parallax_layers_max = 3 + C.parallax_layers_max = 4 return TRUE /datum/hud/proc/update_parallax_pref() @@ -276,6 +279,21 @@ speed = 1.4 layer = 3 +/obj/screen/parallax_layer/random + blend_mode = BLEND_OVERLAY + speed = 3 + layer = 3 + +/obj/screen/parallax_layer/random/space_gas + icon_state = "space_gas" + +/obj/screen/parallax_layer/random/space_gas/New(view) + ..() + add_atom_colour(SSparallax.random_parallax_color, ADMIN_COLOUR_PRIORITY) + +/obj/screen/parallax_layer/random/asteroids + icon_state = "asteroids" + /obj/screen/parallax_layer/planet icon_state = "planet" blend_mode = BLEND_OVERLAY diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index aa43133d111..3b39682efbf 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -925,3 +925,34 @@ runnable_modes[M] = probabilities[M.config_tag] // to_chat(world, "DEBUG: runnable_mode\[[runnable_modes.len]\] = [M.config_tag]") return runnable_modes + +/datum/configuration/proc/load_rank_colour_map() + var/list/lines = file2list("config/rank_colours.txt") + + for(var/line in lines) + // Skip newlines + if(!length(line)) + continue + // Skip comments + if(line[1] == "#") + continue + + //Split the line at every " - " + var/list/split_holder = splittext(line, " - ") + if(!length(split_holder)) + continue + + // Rank is before the " - " + var/rank = split_holder[1] + if(!rank) + continue + + // Color is after the " - " + var/colour = "" + if(length(split_holder) >= 2) + colour = split_holder[2] + + if(rank && colour) + GLOB.rank_colour_map[rank] = colour + else + stack_trace("Invalid colour for rank '[rank]' in config/rank_colours.txt") diff --git a/code/controllers/subsystem/parallax.dm b/code/controllers/subsystem/parallax.dm index 1e3c8aca0d9..d0cfadae95d 100644 --- a/code/controllers/subsystem/parallax.dm +++ b/code/controllers/subsystem/parallax.dm @@ -1,19 +1,27 @@ SUBSYSTEM_DEF(parallax) name = "Parallax" wait = 2 - flags = SS_POST_FIRE_TIMING | SS_BACKGROUND + flags = SS_POST_FIRE_TIMING | SS_BACKGROUND | SS_NO_INIT priority = FIRE_PRIORITY_PARALLAX runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT offline_implications = "Space parallax will no longer move around. No immediate action is needed." var/list/currentrun var/planet_x_offset = 128 var/planet_y_offset = 128 + var/random_layer + var/random_parallax_color -/datum/controller/subsystem/parallax/Initialize(timeofday) + +//These are cached per client so needs to be done asap so people joining at roundstart do not miss these. +/datum/controller/subsystem/parallax/PreInit() . = ..() + if(prob(70)) //70% chance to pick a special extra layer + random_layer = pick(/obj/screen/parallax_layer/random/space_gas, /obj/screen/parallax_layer/random/asteroids) + random_parallax_color = pick(COLOR_TEAL, COLOR_GREEN, COLOR_SILVER, COLOR_YELLOW, COLOR_CYAN, COLOR_ORANGE, COLOR_PURPLE) //Special color for random_layer1. Has to be done here so everyone sees the same color. planet_y_offset = rand(100, 160) planet_x_offset = rand(100, 160) + /datum/controller/subsystem/parallax/fire(resumed = 0) if(!resumed) src.currentrun = GLOB.clients.Copy() diff --git a/code/datums/diseases/advance/symptoms/shedding.dm b/code/datums/diseases/advance/symptoms/shedding.dm index 087231017b4..a1f244c5566 100644 --- a/code/datums/diseases/advance/symptoms/shedding.dm +++ b/code/datums/diseases/advance/symptoms/shedding.dm @@ -31,6 +31,8 @@ BONUS to_chat(M, "[pick("Your scalp itches.", "Your skin feels flakey.")]") if(istype(M, /mob/living/carbon/human)) var/mob/living/carbon/human/H = M + if(NO_HAIR in H.dna.species.species_traits) + return // Hair can't fall out if you don't have any var/obj/item/organ/external/head/head_organ = H.get_organ("head") switch(A.stage) if(3, 4) diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm index 6c43f7c9ead..af1e3376687 100644 --- a/code/datums/dog_fashion.dm +++ b/code/datums/dog_fashion.dm @@ -124,6 +124,10 @@ name = "Pyromancer REAL_NAME" speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "ONI SOMA!") +/datum/dog_fashion/head/black_wizard + name = "Necromancer REAL_NAME" + speak = list("YAP", "Woof!", "Bark!", "AUUUUUU") + /datum/dog_fashion/head/cardborg name = "Borgi" speak = list("Ping!","Beep!","Woof!") @@ -148,6 +152,8 @@ name = "Corgi Tech REAL_NAME" desc = "The reason your yellow gloves have chew-marks." +/datum/dog_fashion/head/softcap + /datum/dog_fashion/head/reindeer name = "REAL_NAME the red-nosed Corgi" emote_hear = list("lights the way!", "illuminates.", "yaps!") @@ -208,3 +214,38 @@ /datum/dog_fashion/head/fried_vox_empty name = "Colonel REAL_NAME" desc = "Keep away from live vox." + +/datum/dog_fashion/head/HoS + name = "Head of Security REAL_NAME" + desc = "Probably better than the last HoS." + +/datum/dog_fashion/head/beret/sec + name = "Officer REAL_NAME" + desc = "Ever-loyal, ever-vigilant." + +/datum/dog_fashion/head/bowlerhat + name = "REAL_NAME" + desc = "A sophisticated city gent." + +/datum/dog_fashion/head/surgery + name = "Nurse-in-Training REAL_NAME" + desc = "The most adorable bed-side manner ever." + +/datum/dog_fashion/head/bucket + name = "REAL_NAME" + desc = "A janitor's best friend." + +/datum/dog_fashion/head/justice_wig + name = "Arbiter REAL_NAME" + desc = "Head of the High Court of Cute." + +/datum/dog_fashion/head/wizard/magus + name = "Battlemage REAL_NAME" + +/datum/dog_fashion/head/wizard/marisa + name = "Witch REAL_NAME" + desc = "Flying broom not included." + +/datum/dog_fashion/head/roman + name = "Imperator REAL_NAME" + desc = "For the Senate and the people of Rome!" diff --git a/code/datums/looping_sounds/looping_sound.dm b/code/datums/looping_sounds/looping_sound.dm index 5e019439bc4..33fb5595c24 100644 --- a/code/datums/looping_sounds/looping_sound.dm +++ b/code/datums/looping_sounds/looping_sound.dm @@ -31,6 +31,8 @@ var/falloff_exponent var/muted = TRUE var/falloff_distance + /// Channel of the audio, random otherwise + var/channel /datum/looping_sound/New(list/_output_atoms = list(), start_immediately = FALSE, _direct = FALSE) if(!mid_sounds) @@ -75,14 +77,16 @@ var/list/atoms_cache = output_atoms var/sound/S = sound(soundfile) if(direct) - S.channel = SSsounds.random_available_channel() - S.volume = volume + S.channel = channel || SSsounds.random_available_channel() for(var/i in 1 to atoms_cache.len) var/atom/thing = atoms_cache[i] if(direct) + if(ismob(thing)) + var/mob/M = thing + S.volume = volume * (USER_VOLUME(M, channel) || 1) SEND_SOUND(thing, S) else - playsound(thing, S, volume, vary, extra_range, falloff_exponent = falloff_exponent, falloff_distance = falloff_distance) + playsound(thing, S, volume, vary, extra_range, falloff_exponent = falloff_exponent, falloff_distance = falloff_distance, channel = channel) /datum/looping_sound/proc/get_sound(looped, _mid_sounds) if(!_mid_sounds) diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm index 280aa5fab60..432e2709335 100644 --- a/code/datums/looping_sounds/machinery_sounds.dm +++ b/code/datums/looping_sounds/machinery_sounds.dm @@ -16,3 +16,4 @@ falloff_exponent = 10 falloff_distance = 5 vary = TRUE + channel = CHANNEL_ENGINE diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm index 2143fb5ad5c..5110058674a 100644 --- a/code/datums/ruins/lavaland.dm +++ b/code/datums/ruins/lavaland.dm @@ -51,14 +51,6 @@ cost = 20 allow_duplicates = FALSE -/datum/map_template/ruin/lavaland/syndicate_base - name = "Syndicate Lava Base" - id = "lava-base" - description = "A secret base researching illegal bioweapons, it is closely guarded by an elite team of syndicate agents." - suffix = "lavaland_surface_syndicate_base1.dmm" - cost = 20 - allow_duplicates = FALSE - /datum/map_template/ruin/lavaland/free_golem name = "Free Golem Ship" id = "golem-ship" diff --git a/code/datums/ruins/space.dm b/code/datums/ruins/space.dm index c11eed424da..d05b932b5cc 100644 --- a/code/datums/ruins/space.dm +++ b/code/datums/ruins/space.dm @@ -258,6 +258,15 @@ always_place = TRUE cost = 0 +/datum/map_template/ruin/space/syndicate_space_base + name = "Syndicate Space Base" + id = "syndie-space-base" + description = "A secret base researching illegal bioweapons, it is closely guarded by an elite team of syndicate agents." + suffix = "syndie_space_base.dmm" + cost = 0 + always_place = TRUE + allow_duplicates = FALSE + /datum/map_template/ruin/space/syndiecakesfactory id = "Syndiecakes Factory" suffix = "syndiecakesfactory.dmm" diff --git a/code/datums/spells/area_teleport.dm b/code/datums/spells/area_teleport.dm index 5986da3a412..b931bd9840f 100644 --- a/code/datums/spells/area_teleport.dm +++ b/code/datums/spells/area_teleport.dm @@ -11,7 +11,7 @@ /obj/effect/proc_holder/spell/targeted/area_teleport/perform(list/targets, recharge = 1, mob/living/user = usr) var/thearea = before_cast(targets) - if(!thearea || !cast_check(TRUE, FALSE, user)) + if(!thearea || !cast_check(FALSE, FALSE, user)) revert_cast() return invocation(thearea) diff --git a/code/datums/spells/wizard.dm b/code/datums/spells/wizard.dm index a954f72cb13..acaeeb41487 100644 --- a/code/datums/spells/wizard.dm +++ b/code/datums/spells/wizard.dm @@ -374,7 +374,7 @@ for(var/am in thrownatoms) var/atom/movable/AM = am - if(AM == user || AM.anchored) + if(AM == user || AM.anchored || AM.move_resist == INFINITY) continue throwtarget = get_edge_target_turf(user, get_dir(user, get_step_away(AM, user))) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index 49bde2f519c..61c1e8df625 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -952,6 +952,14 @@ GLOBAL_LIST_INIT(uplink_items, subtypesof(/datum/uplink_item)) item = /obj/item/toy/carpplushie/dehy_carp cost = 2 +/datum/uplink_item/stealthy_weapons/combat_plus + name = "Combat Gloves Plus" + desc = "Combat gloves with installed nanochips that teach you Krav Maga when worn, great as a cheap backup weapon. Warning, the nanochips will override any other fighting styles such as CQC." + reference = "CGP" + item = /obj/item/clothing/gloves/color/black/krav_maga/combat + cost = 5 + gamemodes = list(/datum/game_mode/nuclear) + // GRENADES AND EXPLOSIVES /datum/uplink_item/explosives diff --git a/code/game/area/areas/ruins/lavaland.dm b/code/game/area/areas/ruins/lavaland.dm index 534ea820006..c267bbeffae 100644 --- a/code/game/area/areas/ruins/lavaland.dm +++ b/code/game/area/areas/ruins/lavaland.dm @@ -37,45 +37,6 @@ /area/ruin/powered/seedvault icon_state = "dk_yellow" -/area/ruin/unpowered/syndicate_lava_base - name = "Secret Base" - icon_state = "dk_yellow" - ambientsounds = HIGHSEC_SOUNDS - report_alerts = FALSE - hide_attacklogs = TRUE - -/area/ruin/unpowered/syndicate_lava_base/engineering - name = "Syndicate Lavaland Engineering" - -/area/ruin/unpowered/syndicate_lava_base/medbay - name = "Syndicate Lavaland Medbay" - -/area/ruin/unpowered/syndicate_lava_base/arrivals - name = "Syndicate Lavaland Arrivals" - -/area/ruin/unpowered/syndicate_lava_base/bar - name = "Syndicate Lavaland Bar" - -/area/ruin/unpowered/syndicate_lava_base/main - name = "Syndicate Lavaland Primary Hallway" - -/area/ruin/unpowered/syndicate_lava_base/cargo - name = "Syndicate Lavaland Cargo Bay" - -/area/ruin/unpowered/syndicate_lava_base/chemistry - name = "Syndicate Lavaland Chemistry" - -/area/ruin/unpowered/syndicate_lava_base/virology - name = "Syndicate Lavaland Virology" - -/area/ruin/unpowered/syndicate_lava_base/testlab - name = "Syndicate Lavaland Experimentation Lab" - -/area/ruin/unpowered/syndicate_lava_base/dormitories - name = "Syndicate Lavaland Dormitories" - -/area/ruin/unpowered/syndicate_lava_base/telecomms - name = "Syndicate Lavaland Telecommunications" //Xeno Nest diff --git a/code/game/area/areas/ruins/syndicate_space_base.dm b/code/game/area/areas/ruins/syndicate_space_base.dm new file mode 100644 index 00000000000..f26eb56fa86 --- /dev/null +++ b/code/game/area/areas/ruins/syndicate_space_base.dm @@ -0,0 +1,50 @@ +/area/ruin/unpowered/syndicate_space_base + name = "Secret Base" + icon_state = "dk_yellow" + ambientsounds = HIGHSEC_SOUNDS + report_alerts = FALSE + hide_attacklogs = TRUE + +/area/ruin/unpowered/syndicate_space_base/engineering + name = "Syndicate Space Base Engineering" + icon_state = "engine" + +/area/ruin/unpowered/syndicate_space_base/medbay + name = "Syndicate Space Base Medbay" + icon_state = "medbay2" + +/area/ruin/unpowered/syndicate_space_base/arrivals + name = "Syndicate Space Base Arrivals" + icon_state = "teleporter" + + +/area/ruin/unpowered/syndicate_space_base/bar + name = "Syndicate Space Base Bar" + icon_state = "bar" + +/area/ruin/unpowered/syndicate_space_base/main + name = "Syndicate Space Base Primary Hallway" + +/area/ruin/unpowered/syndicate_space_base/cargo + name = "Syndicate Space Base Cargo Bay" + icon_state = "storage" + +/area/ruin/unpowered/syndicate_space_base/chemistry + name = "Syndicate Space Base Chemistry" + icon_state = "chem" + +/area/ruin/unpowered/syndicate_space_base/virology + name = "Syndicate Space Base Virology" + icon_state = "virology" + +/area/ruin/unpowered/syndicate_space_base/testlab + name = "Syndicate Space Base Experimentation Lab" + icon_state = "toxtest" + +/area/ruin/unpowered/syndicate_space_base/dormitories + name = "Syndicate Space Base Dormitories" + icon_state = "dorms" + +/area/ruin/unpowered/syndicate_space_base/telecomms + name = "Syndicate Space Base Telecommunications" + icon_state = "tcomsatcham" diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 3692f725361..284b130f803 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -181,11 +181,18 @@ var/dead = stat == DEAD || HAS_TRAIT(src, TRAIT_FAKEDEATH) // To the right of health bar if(dead) - var/revivable = timeofdeath && (round(world.time - timeofdeath) < DEFIB_TIME_LIMIT) + var/mob/dead/observer/ghost = get_ghost(TRUE) + var/revivable + if(ghost && !ghost.can_reenter_corpse) // DNR or AntagHUD + revivable = FALSE + else if(timeofdeath && (round(world.time - timeofdeath) < DEFIB_TIME_LIMIT)) + revivable = TRUE + if(revivable) holder.icon_state = "hudflatline" else holder.icon_state = "huddead" + else if(HAS_TRAIT(src, TRAIT_XENO_HOST)) holder.icon_state = "hudxeno" else if(B && B.controlling) diff --git a/code/game/gamemodes/blob/blobs/blob_mobs.dm b/code/game/gamemodes/blob/blobs/blob_mobs.dm index 7c8bd56e822..14603c1681a 100644 --- a/code/game/gamemodes/blob/blobs/blob_mobs.dm +++ b/code/game/gamemodes/blob/blobs/blob_mobs.dm @@ -103,7 +103,7 @@ icon = H.icon speak_emote = list("groans") icon_state = "zombie2_s" - if(head_organ) + if(head_organ && !(NO_HAIR in H.dna.species.species_traits)) head_organ.h_style = null H.update_hair() human_overlays = H.overlays diff --git a/code/game/gamemodes/blob/blobs/core.dm b/code/game/gamemodes/blob/blobs/core.dm index a12f53150ca..b4a9bf3c3e8 100644 --- a/code/game/gamemodes/blob/blobs/core.dm +++ b/code/game/gamemodes/blob/blobs/core.dm @@ -117,13 +117,13 @@ if(C && !QDELETED(src)) var/mob/camera/blob/B = new(loc) + B.is_offspring = is_offspring B.key = C.key B.blob_core = src overmind = B color = overmind.blob_reagent_datum.color if(B.mind && !B.mind.special_role) B.mind.make_Overmind() - B.is_offspring = is_offspring /obj/structure/blob/core/proc/lateblobtimer() addtimer(CALLBACK(src, .proc/lateblobcheck), 50) diff --git a/code/game/gamemodes/changeling/powers/tiny_prick.dm b/code/game/gamemodes/changeling/powers/tiny_prick.dm index 072f5b8f40d..14d93439510 100644 --- a/code/game/gamemodes/changeling/powers/tiny_prick.dm +++ b/code/game/gamemodes/changeling/powers/tiny_prick.dm @@ -94,7 +94,7 @@ /datum/action/changeling/sting/transformation/can_sting(mob/user, mob/target) if(!..()) return - if(HAS_TRAIT(target, TRAIT_HUSK) || (!ishuman(target))) + if(HAS_TRAIT(target, TRAIT_HUSK) || !ishuman(target) || (NOTRANSSTING in target.dna.species.species_traits)) to_chat(user, "Our sting appears ineffective against its DNA.") return FALSE if(ishuman(target)) diff --git a/code/game/gamemodes/malfunction/Malf_Modules.dm b/code/game/gamemodes/malfunction/Malf_Modules.dm index 69d37bf1ce6..e299f0c97c2 100644 --- a/code/game/gamemodes/malfunction/Malf_Modules.dm +++ b/code/game/gamemodes/malfunction/Malf_Modules.dm @@ -331,7 +331,8 @@ to_chat(L, "The blast wave from [src] tears you atom from atom!") L.dust() to_chat(world, "The AI cleansed the station of life with the doomsday device!") - SSticker.force_ending = 1 + SSticker.force_ending = TRUE + SSticker.mode.station_was_nuked = TRUE //AI Turret Upgrade: Increases the health and damage of all turrets. /datum/AI_Module/large/upgrade_turrets @@ -785,4 +786,3 @@ /datum/AI_Module/large/cameracrack/upgrade(mob/living/silicon/ai/AI) if(AI.builtInCamera) QDEL_NULL(AI.builtInCamera) - diff --git a/code/game/gamemodes/miniantags/borer/borer.dm b/code/game/gamemodes/miniantags/borer/borer.dm index a0dcd826972..d5de0f42f29 100644 --- a/code/game/gamemodes/miniantags/borer/borer.dm +++ b/code/game/gamemodes/miniantags/borer/borer.dm @@ -119,7 +119,7 @@ remove_from_all_data_huds() generation = gen add_language("Cortical Link") - notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK) + notify_ghosts("A cortical borer has been created in [get_area(src)]!", enter_link = "(Click to enter)", source = src, action = NOTIFY_ATTACK, role = ROLE_BORER) real_name = "Cortical Borer [rand(1000,9999)]" truename = "[borer_names[min(generation, borer_names.len)]] [rand(1000,9999)]" GrantBorerActions() diff --git a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm index c434f130fd4..b99a153c234 100644 --- a/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm +++ b/code/game/gamemodes/miniantags/bot_swarm/swarmer.dm @@ -63,12 +63,10 @@ mob_biotypes = MOB_ROBOTIC health = 40 maxHealth = 40 - status_flags = CANPUSH icon_state = "swarmer" icon_living = "swarmer" icon_dead = "swarmer_unactivated" - icon_gib = null - wander = 0 + wander = FALSE harm_intent_damage = 5 minbodytemp = 0 maxbodytemp = 500 @@ -86,22 +84,22 @@ friendly = "pinches" speed = 0 a_intent = INTENT_HARM - can_change_intents = 0 + can_change_intents = FALSE faction = list("swarmer") AIStatus = AI_OFF pass_flags = PASSTABLE + flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2 mob_size = MOB_SIZE_SMALL ventcrawler = VENTCRAWLER_ALWAYS - ranged = 1 + ranged = TRUE projectiletype = /obj/item/projectile/beam/disabler ranged_cooldown_time = 20 projectilesound = 'sound/weapons/taser2.ogg' loot = list(/obj/effect/decal/cleanable/robot_debris, /obj/item/stack/ore/bluespace_crystal) - del_on_death = 1 + del_on_death = TRUE deathmessage = "explodes with a sharp pop!" light_color = LIGHT_COLOR_CYAN - universal_speak = 0 - universal_understand = 0 + universal_understand = FALSE var/resources = 0 //Resource points, generated by consuming metal/glass var/max_resources = 100 diff --git a/code/game/gamemodes/miniantags/guardian/guardian.dm b/code/game/gamemodes/miniantags/guardian/guardian.dm index b0194c53f33..c2a72b12b1e 100644 --- a/code/game/gamemodes/miniantags/guardian/guardian.dm +++ b/code/game/gamemodes/miniantags/guardian/guardian.dm @@ -250,10 +250,9 @@ var/name_list = list("Aries", "Leo", "Sagittarius", "Taurus", "Virgo", "Capricorn", "Gemini", "Libra", "Aquarius", "Cancer", "Scorpio", "Pisces") /obj/item/guardiancreator/attack_self(mob/living/user) - for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.alive_mob_list) - if(G.summoner == user) - to_chat(user, "You already have a [mob_name]!") - return + if(has_guardian(user)) + to_chat(user, "You already have a [mob_name]!") + return if(user.mind && (user.mind.changeling || user.mind.vampire)) to_chat(user, "[ling_failure]") return @@ -285,6 +284,10 @@ if(candidates.len) theghost = pick(candidates) + if(has_guardian(user)) + to_chat(user, "You already have a [mob_name]!") + used = FALSE + return spawn_guardian(user, theghost.key, guardian_type) else to_chat(user, "[failure_message]") @@ -295,6 +298,13 @@ if(used) . += "[used_message]" +/obj/item/guardiancreator/proc/has_guardian(mob/living/user) + for(var/mob/living/simple_animal/hostile/guardian/G in GLOB.alive_mob_list) + if(G.summoner == user) + return TRUE + return FALSE + + /obj/item/guardiancreator/proc/spawn_guardian(mob/living/user, key, guardian_type) var/pickedtype = /mob/living/simple_animal/hostile/guardian/punch switch(guardian_type) diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index a1f214fa4a1..fa0ba2fbf0f 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -14,7 +14,8 @@ GLOBAL_VAR(bomb_set) icon_state = "nuclearbomb0" density = 1 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF - var/extended = FALSE + anchored = TRUE + var/extended = TRUE var/lighthack = FALSE var/timeleft = 120 var/timing = FALSE @@ -34,6 +35,10 @@ GLOBAL_VAR(bomb_set) /obj/machinery/nuclearbomb/syndicate is_syndicate = TRUE +/obj/machinery/nuclearbomb/undeployed + extended = FALSE + anchored = FALSE + /obj/machinery/nuclearbomb/New() ..() r_code = rand(10000, 99999.0) // Creates a random code upon object spawn. @@ -269,11 +274,6 @@ GLOBAL_VAR(bomb_set) else code = "ERROR" return - - if(!yes_code) // All requests below here require both NAD inserted AND code correct - return - - switch(action) if("toggle_anchor") if(removal_stage == NUKE_MOBILE) anchored = FALSE @@ -288,6 +288,11 @@ GLOBAL_VAR(bomb_set) else visible_message("The anchoring bolts slide back into the depths of [src].") return + + if(!yes_code) // All requests below here require both NAD inserted AND code correct + return + + switch(action) if("set_time") var/time = input(usr, "Detonation time (seconds, min 120, max 600)", "Input Time", 120) as num|null if(time) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index 9837b1ea896..b7ff2d7992e 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -262,11 +262,13 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) /datum/objective/block/check_completion() if(!istype(owner.current, /mob/living/silicon)) - return 0 + return FALSE + if(SSticker.mode.station_was_nuked) + return TRUE if(SSshuttle.emergency.mode < SHUTTLE_ENDGAME) - return 0 + return FALSE if(!owner.current) - return 0 + return FALSE var/area/A = SSshuttle.emergency.areaInstance @@ -276,9 +278,9 @@ GLOBAL_LIST_INIT(potential_theft_objectives, (subtypesof(/datum/theft_objective) if(player.mind && player.stat != DEAD) if(get_area(player) == A) - return 0 // If there are any other organic mobs on the shuttle, you failed the objective. + return FALSE // If there are any other organic mobs on the shuttle, you failed the objective. - return 1 + return TRUE /datum/objective/escape explanation_text = "Escape on the shuttle or an escape pod alive and free." diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 7d2f0e404f5..8a3628a1717 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -220,6 +220,10 @@ You are weak to holy things and starlight. Don't go into space and avoid the Cha /obj/effect/proc_holder/spell/vampire/targetted/enthrall = 300, /datum/vampire_passive/full = 500) +/datum/vampire/proc/adjust_nullification(base, extra) + // First hit should give full nullification, while subsequent hits increase the value slower + nullified = max(nullified + extra, base) + /datum/vampire/New(gend = FEMALE) gender = gend diff --git a/code/game/machinery/autolathe.dm b/code/game/machinery/autolathe.dm index 8a800e9a29f..c148ca6e68f 100644 --- a/code/game/machinery/autolathe.dm +++ b/code/game/machinery/autolathe.dm @@ -37,12 +37,13 @@ var/list/recipiecache = list() var/list/categories = list("Tools", "Electronics", "Construction", "Communication", "Security", "Machinery", "Medical", "Miscellaneous", "Dinnerware", "Imported") + var/board_type = /obj/item/circuitboard/autolathe /obj/machinery/autolathe/New() AddComponent(/datum/component/material_container, list(MAT_METAL, MAT_GLASS), _show_on_examine=TRUE, _after_insert=CALLBACK(src, .proc/AfterMaterialInsert)) ..() component_parts = list() - component_parts += new /obj/item/circuitboard/autolathe(null) + component_parts += new board_type(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/matter_bin(null) component_parts += new /obj/item/stock_parts/matter_bin(null) @@ -57,7 +58,7 @@ /obj/machinery/autolathe/upgraded/New() ..() component_parts = list() - component_parts += new /obj/item/circuitboard/autolathe(null) + component_parts += new board_type(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) component_parts += new /obj/item/stock_parts/matter_bin/super(null) @@ -288,6 +289,8 @@ return ..() /obj/machinery/autolathe/crowbar_act(mob/user, obj/item/I) + if(!panel_open) + return if(!I.use_tool(src, user, 0, volume = 0)) return . = TRUE @@ -491,3 +494,13 @@ /obj/machinery/autolathe/proc/check_disabled_callback() if(!wires.is_cut(WIRE_AUTOLATHE_DISABLE)) disabled = FALSE + +/obj/machinery/autolathe/syndicate + name = "syndicate autolathe" + board_type = /obj/item/circuitboard/autolathe/syndi + +/obj/machinery/autolathe/syndicate/New() + ..() + if(files) + QDEL_NULL(files) + files = new /datum/research/autolathe/syndicate(src) diff --git a/code/game/machinery/computer/depot.dm b/code/game/machinery/computer/depot.dm index c21c5445741..e157570f2c5 100644 --- a/code/game/machinery/computer/depot.dm +++ b/code/game/machinery/computer/depot.dm @@ -391,6 +391,7 @@ icon_screen = "telesci" icon_keyboard = "teleport_key" window_height = 300 + req_access = list(ACCESS_SYNDICATE_LEADER) var/obj/machinery/bluespace_beacon/syndicate/mybeacon var/obj/effect/portal/redspace/myportal var/obj/effect/portal/redspace/myportal2 @@ -486,7 +487,7 @@ "status" = portal_enabled ? "ON" : "OFF", "buttontitle" = portal_enabled ? "Disable" : "Enable", "buttonact" = "secondary", - "buttondisabled" = (!allowed(user) || (!depotarea.on_peaceful && !check_rights(R_ADMIN, FALSE, user))), + "buttondisabled" = !allowed(user), "buttontooltip" = "When on, creates a bi-directional portal to the beacon of your choice." )) return data @@ -500,9 +501,6 @@ playsound(user, sound_yes, 50, 0) /obj/machinery/computer/syndicate_depot/teleporter/secondary(mob/user) - if(!depotarea.on_peaceful && !check_rights(R_ADMIN, FALSE, user)) - to_chat(user, "Outgoing Teleport Portal controls are only enabled when the depot has a signed-in agent visitor.") - return if(!portal_enabled && myportal) to_chat(user, "Outgoing Teleport Portal: deactivating... please wait...") return diff --git a/code/game/machinery/computer/pod_tracking_console.dm b/code/game/machinery/computer/pod_tracking_console.dm index 6af1ab0bdf4..e8072d9e1d7 100644 --- a/code/game/machinery/computer/pod_tracking_console.dm +++ b/code/game/machinery/computer/pod_tracking_console.dm @@ -23,18 +23,19 @@ var/list/data = list() var/list/pods = list() for(var/obj/item/spacepod_equipment/misc/tracker/TR in GLOB.pod_trackers) - var/obj/spacepod/my_pod = TR.my_atom - var/podname = capitalize(sanitize(my_pod.name)) - var/pilot = "None" - var/passengers = list() - if(my_pod.pilot) - pilot = my_pod.pilot - if(my_pod.passengers) - for(var/mob/M in my_pod.passengers) - passengers += M.name - var/passengers_text = english_list(passengers, "None") + if(TR.my_atom) + var/obj/spacepod/my_pod = TR.my_atom + var/podname = capitalize(sanitize(my_pod.name)) + var/pilot = "None" + var/passengers = list() + if(my_pod.pilot) + pilot = my_pod.pilot + if(my_pod.passengers) + for(var/mob/M in my_pod.passengers) + passengers += M.name + var/passengers_text = english_list(passengers, "None") - pods.Add(list(list("name" = podname, "podx" = my_pod.x, "pody" = my_pod.y, "podz" = my_pod.z, "pilot" = pilot, "passengers" = passengers_text))) + pods.Add(list(list("name" = podname, "podx" = my_pod.x, "pody" = my_pod.y, "podz" = my_pod.z, "pilot" = pilot, "passengers" = passengers_text))) data["pods"] = pods return data diff --git a/code/game/machinery/computer/security.dm b/code/game/machinery/computer/security.dm index 60e1d2814f2..692c10d9706 100644 --- a/code/game/machinery/computer/security.dm +++ b/code/game/machinery/computer/security.dm @@ -1,6 +1,5 @@ #define SEC_DATA_R_LIST 1 // Record list -#define SEC_DATA_MAINT 2 // Records maintenance -#define SEC_DATA_RECORD 3 // Record +#define SEC_DATA_RECORD 2 // Record #define SEC_FIELD(N, V, E, LB) list(field = N, value = V, edit = E, line_break = LB) @@ -166,7 +165,7 @@ if("page") // Select Page if(!logged_in) return - var/page_num = clamp(text2num(params["page"]), SEC_DATA_R_LIST, SEC_DATA_MAINT) // SEC_DATA_RECORD cannot be accessed through this act + var/page_num = clamp(text2num(params["page"]), SEC_DATA_R_LIST, SEC_DATA_R_LIST) // SEC_DATA_RECORD cannot be accessed through this act current_page = page_num record_general = null record_security = null @@ -247,25 +246,6 @@ QDEL_NULL(record_security) update_all_mob_security_hud() set_temp("Security record deleted.") - if("delete_security_all") // Delete All Security Records - if(!logged_in) - return - for(var/datum/data/record/S in GLOB.data_core.security) - qdel(S) - message_admins("[key_name_admin(usr)] has deleted all security records at [ADMIN_COORDJMP(usr)]") - usr.create_log(MISC_LOG, "deleted all security records") - update_all_mob_security_hud() - set_temp("All security records deleted.") - if("delete_cell_logs") // Delete All Cell Logs - if(!logged_in) - return - if(!length(GLOB.cell_logs)) - set_temp("There are no cell logs to delete.") - return - message_admins("[key_name_admin(usr)] has deleted all cell logs at [ADMIN_COORDJMP(usr)]") - usr.create_log(MISC_LOG, "deleted all cell logs") - GLOB.cell_logs.Cut() - set_temp("All cell logs deleted.") if("comment_delete") // Delete Comment if(!logged_in) return @@ -494,6 +474,5 @@ density = FALSE #undef SEC_DATA_R_LIST -#undef SEC_DATA_MAINT #undef SEC_DATA_RECORD #undef SEC_FIELD diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 46d4fa121fb..322141dee0a 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -625,6 +625,10 @@ to destroy them and players will be able to make replacements. /obj/item/stock_parts/manipulator = 1, /obj/item/stack/sheet/glass = 1) +/obj/item/circuitboard/autolathe/syndi + name = "Circuit board (Syndi Autolathe)" + build_path = /obj/machinery/autolathe/syndicate + /obj/item/circuitboard/protolathe name = "Circuit board (Protolathe)" build_path = /obj/machinery/r_n_d/protolathe diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 60b69486e57..23f217bf32b 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -225,6 +225,7 @@ var/willing_time_divisor = 10 var/time_entered = 0 // Used to keep track of the safe period. var/obj/item/radio/intercom/announce + var/silent = FALSE var/obj/machinery/computer/cryopod/control_computer var/last_no_computer_message = 0 @@ -430,23 +431,27 @@ //Make an announcement and log the person entering storage. control_computer.frozen_crew += "[occupant.real_name]" - var/list/ailist = list() - for(var/thing in GLOB.ai_list) - var/mob/living/silicon/ai/AI = thing - if(AI.stat) - continue - ailist += AI - if(length(ailist)) - var/mob/living/silicon/ai/announcer = pick(ailist) - if(announce_rank) - announcer.say(";[occupant.real_name] ([announce_rank]) [on_store_message]", ignore_languages = TRUE) + if(!silent) + var/list/ailist = list() + for(var/thing in GLOB.ai_list) + var/mob/living/silicon/ai/AI = thing + if(AI.stat) + continue + ailist += AI + if(length(ailist)) + var/mob/living/silicon/ai/announcer = pick(ailist) + if(announce_rank) + announcer.say(";[occupant.real_name] ([announce_rank]) [on_store_message]", ignore_languages = TRUE) + else + announcer.say(";[occupant.real_name] [on_store_message]", ignore_languages = TRUE) else - announcer.say(";[occupant.real_name] [on_store_message]", ignore_languages = TRUE) - else - if(announce_rank) - announce.autosay("[occupant.real_name] ([announce_rank]) [on_store_message]", "[on_store_name]") - else - announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]") + if(announce_rank) + announce.autosay("[occupant.real_name] ([announce_rank]) [on_store_message]", "[on_store_name]") + else + if(announce_rank) + announce.autosay("[occupant.real_name] ([announce_rank]) [on_store_message]", "[on_store_name]") + else + announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]") visible_message("[src] hums and hisses as it moves [occupant.real_name] into storage.") // Ghost and delete the mob. @@ -711,6 +716,10 @@ /obj/machinery/cryopod/blob_act() return //Sorta gamey, but we don't really want these to be destroyed. +/obj/machinery/cryopod/offstation + // Won't announce when used for cryoing. + silent = TRUE + /obj/machinery/computer/cryopod/robot name = "robotic storage console" desc = "An interface between crew and the robotic storage systems" diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3d3b1eec098..8c5ed4ddb6e 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1285,6 +1285,7 @@ About the new airlock wires panel: sleep(6) if(QDELETED(src)) return + electronics = new /obj/item/airlock_electronics/destroyed() operating = FALSE if(!open()) update_icon(AIRLOCK_CLOSED, 1) @@ -1406,9 +1407,6 @@ About the new airlock wires panel: ae = electronics electronics = null ae.forceMove(loc) - if(emagged) - ae.icon_state = "door_electronics_smoked" - operating = 0 qdel(src) /obj/machinery/door/airlock/proc/note_type() //Returns a string representing the type of note pinned to this airlock diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index e9435dfe4e8..0be1de00c80 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -102,3 +102,16 @@ if("clear_all") selected_accesses = list() + +/obj/item/airlock_electronics/destroyed + name = "burned-out airlock electronics" + icon_state = "door_electronics_smoked" + +/obj/item/airlock_electronics/destroyed/attack_self(mob/user) + return + +/obj/item/airlock_electronics/destroyed/decompile_act(obj/item/matter_decompiler/C, mob/user) + C.stored_comms["metal"] += 1 + C.stored_comms["glass"] += 1 + qdel(src) + return TRUE diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 7b5e711ca81..59d839018bb 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -219,6 +219,7 @@ if(!operating && density && !emagged) emagged = TRUE operating = TRUE + electronics = new /obj/item/airlock_electronics/destroyed() flick("[base_state]spark", src) playsound(src, "sparks", 75, TRUE, SHORT_RANGE_SOUND_EXTRARANGE) sleep(6) @@ -279,11 +280,6 @@ WA.update_icon() WA.created_name = name - if(emagged) - to_chat(user, "You discard the damaged electronics.") - qdel(src) - return - to_chat(user, "You remove the airlock electronics.") var/obj/item/airlock_electronics/ae diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 541a544c02b..71e919f10cc 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -98,9 +98,8 @@ FIRE ALARM if(istype(I, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/coil = I if(!coil.use(5)) - to_chat(user, "You cut the wires!") + to_chat(user, "You need a total of five cables to wire [src]!") return - buildstage = FIRE_ALARM_READY playsound(get_turf(src), I.usesound, 50, 1) to_chat(user, "You wire [src]!") diff --git a/code/game/machinery/guestpass.dm b/code/game/machinery/guestpass.dm index 1dac170943b..2292b20728a 100644 --- a/code/game/machinery/guestpass.dm +++ b/code/game/machinery/guestpass.dm @@ -39,21 +39,22 @@ density = 0 - var/obj/item/card/id/giver + var/obj/item/card/id/scan var/list/accesses = list() var/giv_name = "NOT SPECIFIED" var/reason = "NOT SPECIFIED" var/duration = 5 + var/print_cooldown = 0 var/list/internal_log = list() - var/mode = 0 // 0 - making pass, 1 - viewing logs + var/mode = FALSE // FALSE - making pass, TRUE - viewing logs /obj/machinery/computer/guestpass/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/card/id)) - if(!giver) + if(!scan) if(user.drop_item()) I.forceMove(src) - giver = I + scan = I updateUsrDialog() else to_chat(user, "There is already ID card inside.") @@ -61,132 +62,161 @@ return ..() /obj/machinery/computer/guestpass/proc/get_changeable_accesses() - return giver.access + return scan.access /obj/machinery/computer/guestpass/attack_ai(mob/user) return attack_hand(user) -/obj/machinery/computer/guestpass/attack_hand(mob/user as mob) +/obj/machinery/computer/guestpass/attack_hand(mob/user) if(..()) return + ui_interact(user) - user.set_machine(src) - var/dat +/obj/machinery/computer/guestpass/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "GuestPass", name, 500, 850, master_ui, state) + ui.open() + ui.set_autoupdate(FALSE) - if(mode == 1) //Logs - dat += "

Activity log


" - for(var/entry in internal_log) - dat += "[entry]

" - dat += "Print
" - dat += "Back
" +/obj/machinery/computer/guestpass/ui_data(mob/user) + var/list/data = list() + data["showlogs"] = mode + data["scan_name"] = scan ? scan.name : FALSE + data["issue_log"] = internal_log ? internal_log : list() + data["giv_name"] = giv_name + data["reason"] = reason + data["duration"] = duration + if(scan && !(ACCESS_CHANGE_IDS in scan.access)) + data["grantableList"] = scan ? scan.access : list() + data["canprint"] = FALSE + if(!scan) + data["printmsg"] = "No card inserted." + else if(!length(scan.access)) + data["printmsg"] = "Card has no access." + else if(!length(accesses)) + data["printmsg"] = "No access types selected." + else if(print_cooldown > world.time) + data["printmsg"] = "Busy for [(round((print_cooldown - world.time) / 10))]s.." else - dat += "

Guest pass terminal #[uid]


" - dat += "View activity log

" - dat += "Issuing ID: [giver]
" - dat += "Issued to: [giv_name]
" - dat += "Reason: [reason]
" - dat += "Duration (minutes): [duration] m
" - dat += "Access to areas:
" - if(giver && giver.access) - for(var/A in get_changeable_accesses()) - var/area = get_access_desc(A) - if(A in accesses) - area = "[area]" - dat += "[area]
" - dat += "
Issue pass
" + data["printmsg"] = "Print Pass" + data["canprint"] = TRUE - var/datum/browser/popup = new(user, "guestpass", name, 400, 520) - popup.set_content(dat) - popup.open(0) - onclose(user, "guestpass") + data["selectedAccess"] = accesses ? accesses : list() + return data +/obj/machinery/computer/guestpass/ui_static_data(mob/user) + var/list/data = list() + data["regions"] = get_accesslist_static_data(REGION_GENERAL, REGION_COMMAND) + return data -/obj/machinery/computer/guestpass/Topic(href, href_list) +/obj/machinery/computer/guestpass/ui_act(action, params) if(..()) - return 1 - usr.set_machine(src) - if(href_list["mode"]) - mode = text2num(href_list["mode"]) - - if(href_list["choice"]) - switch(href_list["choice"]) - if("giv_name") - var/nam = strip_html_simple(input("Person pass is issued to", "Name", giv_name) as text|null) - if(nam) - giv_name = nam - if("reason") - var/reas = strip_html_simple(input("Reason why pass is issued", "Reason", reason) as text|null) - if(reas) - reason = reas - if("duration") - var/dur = input("Duration (in minutes) during which pass is valid (up to 30 minutes).", "Duration") as num|null - if(dur) - if(dur > 0 && dur <= 30) - duration = dur - else - to_chat(usr, "Invalid duration.") - if("access") - var/A = text2num(href_list["access"]) - if(A in accesses) - accesses.Remove(A) + return + . = TRUE + switch(action) + if("scan") // insert/remove your ID card + if(scan) + if(ishuman(usr)) + scan.forceMove(get_turf(usr)) + usr.put_in_hands(scan) + scan = null else - if(giver && giver.access && (A in get_changeable_accesses())) + scan.forceMove(get_turf(src)) + scan = null + accesses.Cut() + else + var/obj/item/I = usr.get_active_hand() + if(istype(I, /obj/item/card/id)) + if(usr.drop_item()) + I.forceMove(src) + scan = I + if("mode") + mode = !mode + if(!scan || !scan.access) + return // everything below here requires card auth + switch(action) + if("giv_name") + var/nam = strip_html_simple(input("Person pass is issued to", "Name", giv_name) as text | null) + if(nam) + giv_name = nam + if("reason") + var/reas = strip_html_simple(input("Reason why pass is issued", "Reason", reason) as text | null) + if(reas) + reason = reas + if("duration") + var/dur = input("Duration (in minutes) during which pass is valid (up to 30 minutes).", "Duration") as num | null + if(dur) + if(dur > 0 && dur <= 30) + duration = dur + else + to_chat(usr, "Invalid duration.") + if("print") + var/dat = "

Activity log of guest pass terminal #[uid]


" + for(var/entry in internal_log) + dat += "[entry]

" + var/obj/item/paper/P = new /obj/item/paper(loc) + playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, TRUE) + P.name = "activity log" + P.info = dat + if("issue") + if(!length(accesses)) + return + if(print_cooldown > world.time) + return + var/number = add_zero("[rand(0, 9999)]", 4) + var/entry = "\[[station_time()]\] Pass #[number] issued by [scan.registered_name] ([scan.assignment]) to [giv_name]. Reason: [reason]. Grants access to following areas: " + for(var/i in 1 to length(accesses)) + var/A = accesses[i] + if(A) + var/area = get_access_desc(A) + entry += "[i > 1 ? ", [area]" : "[area]"]" + var/obj/item/card/id/guest/pass = new(get_turf(src)) + pass.temp_access = accesses.Copy() + pass.registered_name = giv_name + pass.expiration_time = world.time + duration MINUTES + pass.reason = reason + pass.name = "guest pass #[number]" + print_cooldown = world.time + 10 SECONDS + entry += ". Expires at [station_time_timestamp("hh:mm:ss", pass.expiration_time)]." + internal_log += entry + if("access") + var/A = text2num(params["access"]) + if(A in accesses) + accesses.Remove(A) + else if(ACCESS_CHANGE_IDS in scan.access) + accesses += A + else if(A in get_changeable_accesses()) + accesses += A + if("grant_region") + var/region = text2num(params["region"]) + if(isnull(region)) + return + if(ACCESS_CHANGE_IDS in scan.access) + accesses |= get_region_accesses(region) + else + var/list/new_accesses = get_region_accesses(region) + for(var/A in new_accesses) + if(A in scan.access) accesses.Add(A) - if(href_list["action"]) - switch(href_list["action"]) - if("id") - if(giver) - if(ishuman(usr)) - giver.loc = usr.loc - if(!usr.get_active_hand()) - usr.put_in_hands(giver) - giver = null - else - giver.loc = src.loc - giver = null - accesses.Cut() - else - var/obj/item/I = usr.get_active_hand() - if(istype(I, /obj/item/card/id)) - usr.drop_item() - I.loc = src - giver = I - updateUsrDialog() - - if("print") - var/dat = "

Activity log of guest pass terminal #[uid]


" - for(var/entry in internal_log) - dat += "[entry]

" -// to_chat(usr, "Printing the log, standby...") - //sleep(50) - var/obj/item/paper/P = new/obj/item/paper( loc ) - playsound(loc, 'sound/goonstation/machines/printer_dotmatrix.ogg', 50, 1) - P.name = "activity log" - P.info = dat - - if("issue") - if(giver) - var/number = add_zero("[rand(0,9999)]", 4) - var/entry = "\[[station_time()]\] Pass #[number] issued by [giver.registered_name] ([giver.assignment]) to [giv_name]. Reason: [reason]. Grants access to following areas: " - for(var/i=1 to accesses.len) - var/A = accesses[i] - if(A) - var/area = get_access_desc(A) - entry += "[i > 1 ? ", [area]" : "[area]"]" - entry += ". Expires at [station_time(world.time + duration*10*60)]." - internal_log.Add(entry) - - var/obj/item/card/id/guest/pass = new(src.loc) - pass.temp_access = accesses.Copy() - pass.registered_name = giv_name - pass.expiration_time = world.time + duration*10*60 - pass.reason = reason - pass.name = "guest pass #[number]" - else - to_chat(usr, "Cannot issue pass without issuing ID.") - updateUsrDialog() - return + if("deny_region") + var/region = text2num(params["region"]) + if(isnull(region)) + return + accesses -= get_region_accesses(region) + if("clear_all") + accesses = list() + if("grant_all") + if(ACCESS_CHANGE_IDS in scan.access) + accesses = get_all_accesses() + else + var/list/new_accesses = get_all_accesses() + for(var/A in new_accesses) + if(A in scan.access) + accesses += A + if(.) + add_fingerprint(usr) /obj/machinery/computer/guestpass/hop name = "\improper HoP guest pass terminal" diff --git a/code/game/machinery/shieldgen.dm b/code/game/machinery/shieldgen.dm index 5535c8bbe90..6934483c0ae 100644 --- a/code/game/machinery/shieldgen.dm +++ b/code/game/machinery/shieldgen.dm @@ -7,6 +7,7 @@ opacity = FALSE anchored = 1 resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + flags_2 = RAD_NO_CONTAMINATE_2 max_integrity = 200 /obj/machinery/shield/New() diff --git a/code/game/machinery/suit_storage_unit.dm b/code/game/machinery/suit_storage_unit.dm index d4b2641b22f..9fe8c781c09 100644 --- a/code/game/machinery/suit_storage_unit.dm +++ b/code/game/machinery/suit_storage_unit.dm @@ -314,7 +314,7 @@ if(state_open) if(store_item(I, user)) update_icon() - updateUsrDialog() + SStgui.update_uis(src) to_chat(user, "You load the [I] into the storage compartment.") else to_chat(user, "You can't fit [I] into [src]!") @@ -366,6 +366,7 @@ helmet = null suit = null mask = null + boots = null storage = null occupant = null @@ -409,8 +410,6 @@ if(uv_cycles) uv_cycles-- uv = TRUE - locked = TRUE - update_icon() if(occupant) var/mob/living/mob_occupant = occupant if(uv_super) @@ -422,7 +421,6 @@ else uv_cycles = initial(uv_cycles) uv = FALSE - locked = FALSE for(var/atom/A in contents) A.clean_blood(radiation_clean = FALSE) // we invoke the radiation cleaning proc directly A.clean_radiation(12) // instead of letting clean_blood do it @@ -451,9 +449,10 @@ else visible_message("[src]'s door slides open, barraging you with the nauseating smell of charred flesh.") playsound(src, 'sound/machines/airlock_close.ogg', 25, 1) - open_machine(FALSE) if(occupant) dump_contents() + update_icon() + SStgui.update_uis(src) /obj/machinery/suit_storage_unit/relaymove(mob/user) if(locked) @@ -502,7 +501,7 @@ if(drop) dropContents() update_icon() - updateUsrDialog() + SStgui.update_uis(src) /obj/machinery/suit_storage_unit/dropContents() var/turf/T = get_turf(src) @@ -532,132 +531,81 @@ if(target && !target.has_buckled_mobs() && (!isliving(target) || !mobtarget.buckled)) occupant = target target.forceMove(src) - updateUsrDialog() + SStgui.update_uis(src) update_icon() //////// -/obj/machinery/suit_storage_unit/attack_hand(mob/user) - var/dat - if(shocked && !(stat & NOPOWER)) - if(shock(user, 100)) - return - if(stat & NOPOWER) - return - if(..()) - return - if(panel_open) //The maintenance panel is open. Time for some shady stuff - wires.Interact(user) - if(uv) //The thing is running its cauterisation cycle. You have to wait. - dat += "Suit storage unit" - dat+= "Unit is cauterising contents with selected UV ray intensity. Please wait.
" - else - if(!broken) - dat+= "Welcome to the Unit control panel.
" - dat+= text("Helmet storage compartment: []
",(helmet ? helmet.name : "No helmet detected.") ) - if(helmet && state_open) - dat+="Dispense helmet
" - dat+= text("Suit storage compartment: []
",(suit ? suit.name : "
No exosuit detected.") ) - if(suit && state_open) - dat+="Dispense suit
" - dat+= text("Breathmask storage compartment: []
",(mask ? mask.name : "
No breathmask detected.") ) - if(mask && state_open) - dat+="Dispense mask
" - dat+= text("Magboots storage compartment: []
",(boots ? boots.name : "
No magboots detected.") ) - if(boots && state_open) - dat+="Dispense magboots
" - dat+= text("Tank storage compartment: []
",(storage ? storage.name : "
No storage item detected.") ) - if(storage && state_open) - dat+="Dispense storage item
" - if(occupant) - dat+= "
WARNING: Biological entity detected inside the Unit's storage. Please remove.
" - dat+= "Eject extra load" - dat+= text("
Unit is: [] - [] Unit ",(state_open ? "Open" : "Closed"),(state_open ? "Close" : "Open")) - if(state_open) - dat+="
" - else - dat+= text(" - *[] Unit*
",(locked ? "Unlock" : "Lock") ) - dat+= text("Unit status: []",(locked? "**LOCKED**
" : "**UNLOCKED**
") ) - dat+= "Start Disinfection cycle
" - dat += "

Close control panel" - else //Ohhhh shit it's dirty or broken! Let's inform the guy. - dat+= "Suit storage unit" - dat+= "Unit chamber is too contaminated to continue usage. Please call for a qualified individual to perform maintenance.

" - dat+= "
Close control panel" - - - var/datum/browser/popup = new(user, "suit_storage_unit", name, 400, 500) - popup.set_content(dat) - popup.open(0) - onclose(user, "suit_storage_unit") - return - /obj/machinery/suit_storage_unit/proc/check_allowed(user) if(!(allowed(user) || !secure)) to_chat(user, "Access denied.") return FALSE return TRUE -/obj/machinery/suit_storage_unit/Topic(href, href_list) +/obj/machinery/suit_storage_unit/attack_hand(mob/user) + if(..() || (stat & NOPOWER)) + return + if(shocked && shock(user, 100)) + return + if(panel_open) //The maintenance panel is open. Time for some shady stuff + wires.Interact(user) + ui_interact(user) + +/obj/machinery/suit_storage_unit/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state) + ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open) + if(!ui) + ui = new(user, src, ui_key, "SuitStorage", name, 402, 268, master_ui, state) + ui.set_autoupdate(FALSE) + ui.open() + +/obj/machinery/suit_storage_unit/ui_data(mob/user) + var/list/data = list( + "locked" = locked, + "open" = state_open, + "broken" = broken, + "helmet" = helmet ? helmet.name : null, + "suit" = suit ? suit.name : null, + "magboots" = boots ? boots.name : null, + "mask" = mask ? mask.name : null, + "storage" = storage ? storage.name : null, + "uv" = uv + ) + return data + +/obj/machinery/suit_storage_unit/ui_act(action, list/params) if(..()) - return 1 + return + add_fingerprint(usr) if(shocked && !(stat & NOPOWER)) if(shock(usr, 100)) - return - if((usr.contents.Find(src) || ((get_dist(src, usr) <= 1) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon/ai))) - usr.set_machine(src) - if(href_list["toggleUV"]) - toggleUV() - updateUsrDialog() - update_icon() - if(href_list["togglesafeties"]) - togglesafeties() - updateUsrDialog() - update_icon() - if(href_list["dispense_helmet"]) - dispense_helmet() - updateUsrDialog() - update_icon() - if(href_list["dispense_suit"]) - dispense_suit() - updateUsrDialog() - update_icon() - if(href_list["dispense_mask"]) - dispense_mask() - updateUsrDialog() - update_icon() - if(href_list["dispense_magboots"]) - dispense_magboots() - updateUsrDialog() - update_icon() - if(href_list["dispense_storage"]) - dispense_storage() - updateUsrDialog() - update_icon() - if(href_list["toggle_open"]) - if(!check_allowed(usr)) - return - toggle_open(usr) - updateUsrDialog() - update_icon() - if(href_list["toggle_lock"]) - if(!check_allowed(usr)) - return - toggle_lock(usr) - updateUsrDialog() - update_icon() - if(href_list["cook"]) - cook() - updateUsrDialog() - update_icon() - if(href_list["eject_guy"]) - eject_occupant(usr) - updateUsrDialog() - update_icon() - add_fingerprint(usr) - return + return FALSE + . = TRUE + switch(action) + if("dispense_helmet") + dispense_helmet() + if("dispense_suit") + dispense_suit() + if("dispense_mask") + dispense_mask() + if("dispense_boots") + dispense_boots() + if("dispense_storage") + dispense_storage() + if("toggle_open") + if(!check_allowed(usr)) + return FALSE + toggle_open(usr) + if("toggle_lock") + if(!check_allowed(usr)) + return FALSE + toggle_lock(usr) + if("cook") + cook() + if("eject_occupant") + eject_occupant(usr) + update_icon() /obj/machinery/suit_storage_unit/proc/toggleUV() if(!panel_open) @@ -692,7 +640,7 @@ mask.forceMove(loc) mask = null -/obj/machinery/suit_storage_unit/proc/dispense_magboots() +/obj/machinery/suit_storage_unit/proc/dispense_boots() if(!boots) return else @@ -754,7 +702,7 @@ return eject_occupant(usr) add_fingerprint(usr) - updateUsrDialog() + SStgui.update_uis(src) update_icon() return @@ -785,7 +733,7 @@ update_icon() add_fingerprint(usr) - updateUsrDialog() + SStgui.update_uis(src) return else occupant = null diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm index e6f9f617cff..ed196abc6dc 100644 --- a/code/game/machinery/syndicatebomb.dm +++ b/code/game/machinery/syndicatebomb.dm @@ -303,22 +303,6 @@ ..() wires.cut_all() -/obj/machinery/syndicatebomb/self_destruct - name = "self destruct device" - desc = "Do not taunt. Warranty invalid if exposed to high temperature. Not suitable for agents under 3 years of age." - req_access = list(ACCESS_SYNDICATE) - payload = /obj/item/bombcore/large - can_unanchor = FALSE - var/explosive_wall_group = EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE // If set, this bomb will also cause explosive walls in the same group to explode - -/obj/machinery/syndicatebomb/self_destruct/try_detonate(ignore_active = FALSE) - . = ..() - if(. && explosive_wall_group) - for(var/wall in GLOB.explosive_walls) - var/turf/simulated/wall/mineral/plastitanium/explosive/E = wall - if(E.explosive_wall_group == explosive_wall_group) - E.self_destruct() - sleep(5) ///Bomb Cores/// diff --git a/code/game/machinery/tcomms/_base.dm b/code/game/machinery/tcomms/_base.dm index 2f6702eaa8c..3fa0c31b559 100644 --- a/code/game/machinery/tcomms/_base.dm +++ b/code/game/machinery/tcomms/_base.dm @@ -30,7 +30,7 @@ GLOBAL_LIST_EMPTY(tcomms_machines) /obj/machinery/tcomms name = "Telecommunications Device" desc = "Someone forgot to say what this thingy does. Please yell at a coder" - icon = 'icons/obj/tcomms.dmi' + icon = 'icons/obj/machines/telecomms.dmi' icon_state = "error" density = TRUE anchored = TRUE @@ -85,10 +85,8 @@ GLOBAL_LIST_EMPTY(tcomms_machines) /obj/machinery/tcomms/update_icon() . = ..() // Show the off sprite if were inactive, ion'd or unpowered - if(!active || (stat & NOPOWER) || ion) - icon_state = "[initial(icon_state)]_off" - else - icon_state = initial(icon_state) + var/functioning = (active && !(stat & NOPOWER) && !ion) + icon_state = "[initial(icon_state)][panel_open ? "_o" : null][functioning ? null : "_off"]" // Attack overrides. These are needed so the UIs can be opened up // diff --git a/code/game/machinery/tcomms/nttc.dm b/code/game/machinery/tcomms/nttc.dm index d6534690b0b..0576bbe7e41 100644 --- a/code/game/machinery/tcomms/nttc.dm +++ b/code/game/machinery/tcomms/nttc.dm @@ -279,9 +279,14 @@ if(toggle_command_bold) var/job = tcm.sender_job if((job in ert_jobs) || (job in heads) || (job in cc_jobs)) - for(var/datum/multilingual_say_piece/S in message_pieces) - if(S.message) - S.message = "[capitalize(S.message)]" // This only capitalizes the first word + for(var/I in 1 to length(message_pieces)) + var/datum/multilingual_say_piece/S = message_pieces[I] + if(!S.message) + continue + if(I == 1 && !istype(S.speaking, /datum/language/noise)) // Capitalise the first section only, unless it's an emote. + S.message = "[capitalize(S.message)]" + S.message = "[S.message]" // Make everything bolded + // Language Conversion if(setting_language && valid_languages[setting_language]) diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index 5be9f9996c4..9f18c35c4b7 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -1581,6 +1581,7 @@ products = list(/obj/item/storage/bag/tray = 8, /obj/item/kitchen/utensil/fork = 6, /obj/item/trash/plate = 20, + /obj/item/trash/bowl = 20, /obj/item/kitchen/knife = 3, /obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/sushimat = 3, diff --git a/code/game/mecha/equipment/weapons/weapons.dm b/code/game/mecha/equipment/weapons/weapons.dm index 4238a3ab334..351aba3905b 100644 --- a/code/game/mecha/equipment/weapons/weapons.dm +++ b/code/game/mecha/equipment/weapons/weapons.dm @@ -517,8 +517,8 @@ /obj/item/mecha_parts/mecha_equipment/weapon/energy/plasma equip_cooldown = 10 - name = "217-D Heavy Plasma Cutter" - desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demloishing solid obstacles." + name = "\improper 217-D Heavy Plasma Cutter" + desc = "A device that shoots resonant plasma bursts at extreme velocity. The blasts are capable of crushing rock and demolishing solid obstacles." icon_state = "mecha_plasmacutter" item_state = "plasmacutter" lefthand_file = 'icons/mob/inhands/guns_lefthand.dmi' diff --git a/code/game/mecha/working/ripley.dm b/code/game/mecha/working/ripley.dm index e431a2df310..96f045ea9d3 100644 --- a/code/game/mecha/working/ripley.dm +++ b/code/game/mecha/working/ripley.dm @@ -62,7 +62,7 @@ add_overlay(occupant ? "ripley-g-full" : "ripley-g-full-open") /obj/mecha/working/ripley/firefighter - desc = "Standart APLU chassis was refitted with additional thermal protection and cistern." + desc = "A standard APLU chassis that was refitted with additional thermal protection and a cistern." name = "APLU \"Firefighter\"" icon_state = "firefighter" initial_icon = "firefighter" diff --git a/code/game/objects/effects/decals/misc.dm b/code/game/objects/effects/decals/misc.dm index 88663e6c38c..9decdcf4c31 100644 --- a/code/game/objects/effects/decals/misc.dm +++ b/code/game/objects/effects/decals/misc.dm @@ -58,14 +58,14 @@ /obj/effect/decal/straw/edge icon_state = "strawscatterededge" -/obj/effect/decal/ants +/obj/effect/decal/cleanable/ants name = "space ants" desc = "A bunch of space ants." icon = 'icons/goonstation/effects/effects.dmi' icon_state = "spaceants" scoop_reagents = list("ants" = 20) -/obj/effect/decal/ants/Initialize(mapload) +/obj/effect/decal/cleanable/ants/Initialize(mapload) . = ..() var/scale = (rand(2, 10) / 10) + (rand(0, 5) / 100) transform = matrix(transform, scale, scale, MATRIX_SCALE) diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm index 0f373bfe851..4a00dfda86d 100644 --- a/code/game/objects/effects/landmarks.dm +++ b/code/game/objects/effects/landmarks.dm @@ -164,10 +164,9 @@ new /obj/item/clothing/shoes/jackboots(src.loc) qdel(src) -/obj/effect/landmark/costume/nyangirl/New() +/obj/effect/landmark/costume/schoolgirl/New() . = ..() new /obj/item/clothing/under/schoolgirl(src.loc) - new /obj/item/clothing/head/kitty(src.loc) qdel(src) /obj/effect/landmark/costume/maid/New() diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 3ecd0d0fc3c..90fcb842684 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -255,7 +255,7 @@ loot = list( // Robotics /obj/item/mmi/robotic_brain = 50, // Low-value, but we want to encourage getting more players back in the round. - /obj/item/assembly/signaler/anomaly = 50, // anomaly core + /obj/item/assembly/signaler/anomaly/random = 50, // anomaly core /obj/item/mecha_parts/mecha_equipment/weapon/energy/xray = 25, // mecha x-ray laser /obj/item/mecha_parts/mecha_equipment/teleporter/precise = 25, // upgraded mecha teleporter /obj/item/autosurgeon = 50, @@ -388,11 +388,11 @@ lootcount = 3 lootdoubles = FALSE var/soups = list( - /obj/item/reagent_containers/food/snacks/beetsoup, - /obj/item/reagent_containers/food/snacks/stew, - /obj/item/reagent_containers/food/snacks/hotchili, - /obj/item/reagent_containers/food/snacks/nettlesoup, - /obj/item/reagent_containers/food/snacks/meatballsoup) + /obj/item/reagent_containers/food/snacks/soup/beetsoup, + /obj/item/reagent_containers/food/snacks/soup/stew, + /obj/item/reagent_containers/food/snacks/soup/hotchili, + /obj/item/reagent_containers/food/snacks/soup/nettlesoup, + /obj/item/reagent_containers/food/snacks/soup/meatballsoup) var/salads = list( /obj/item/reagent_containers/food/snacks/herbsalad, /obj/item/reagent_containers/food/snacks/validsalad, diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index 185a00305de..cb347fe9105 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -41,6 +41,10 @@ to_chat(user, "Now in mode: [mode].") +/obj/item/door_remote/examine(mob/user) + . = ..() + . += "It's current mode is: [mode]" + /obj/item/door_remote/afterattack(obj/machinery/door/airlock/D, mob/user) if(!istype(D)) return diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index db337d0a188..5a493904839 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -103,10 +103,10 @@ /obj/item/radio/headset/syndicate/alt/syndteam ks1type = /obj/item/encryptionkey/syndteam -/obj/item/radio/headset/syndicate/alt/lavaland - name = "syndicate lavaland headset" +/obj/item/radio/headset/syndicate/alt/nocommon + name = "syndicate researcher headset" -/obj/item/radio/headset/syndicate/alt/lavaland/New() +/obj/item/radio/headset/syndicate/alt/nocommon/New() . = ..() set_frequency(SYND_FREQ) diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index 5e82e651e23..761943f9bcf 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -100,9 +100,9 @@ REAGENT SCANNER /obj/item/healthanalyzer/attack(mob/living/M, mob/living/user) if((HAS_TRAIT(user, TRAIT_CLUMSY) || user.getBrainLoss() >= 60) && prob(50)) user.visible_message("[user] analyzes the floor's vitals!", "You stupidly try to analyze the floor's vitals!") - to_chat(user, "Analyzing results for The floor:\n\tOverall status: Healthy") - to_chat(user, "Key: Suffocation/Toxin/Burn/Brute") - to_chat(user, "\tDamage specifics: 0-0-0-0") + to_chat(user, "Analyzing results for The floor:\n\tOverall status: Healthy") + to_chat(user, "Key: Suffocation/Toxin/Burn/Brute") + to_chat(user, "\tDamage specifics: 0 - 0 - 0 - 0") to_chat(user, "Body temperature: ???") return @@ -130,19 +130,30 @@ REAGENT SCANNER var/TX = H.getToxLoss() > 50 ? "[H.getToxLoss()]" : H.getToxLoss() var/BU = H.getFireLoss() > 50 ? "[H.getFireLoss()]" : H.getFireLoss() var/BR = H.getBruteLoss() > 50 ? "[H.getBruteLoss()]" : H.getBruteLoss() - if(HAS_TRAIT(H, TRAIT_FAKEDEATH)) - OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy - to_chat(user, "Analyzing Results for [H]:\n\t Overall Status: dead") - else - to_chat(user, "Analyzing Results for [H]:\n\t Overall Status: [H.stat > 1 ? "dead" : "[H.health]% healthy"]") + + var/status = "Dead" // Dead by default to make it simpler + var/mob/dead/observer/ghost = H.get_ghost(TRUE) + var/DNR = (ghost && !ghost.can_reenter_corpse) + if(H.stat == DEAD) + if(DNR) + status = "Dead \[DNR]" + else // Alive or unconscious + if(HAS_TRAIT(H, TRAIT_FAKEDEATH)) // status still shows as "Dead" + OX = fake_oxy > 50 ? "[fake_oxy]" : fake_oxy + else + status = "[H.health]% Healthy" + + to_chat(user, "Analyzing Results for [H]:\n\t Overall Status: [status]") to_chat(user, "\t Key: Suffocation/Toxin/Burns/Brute") to_chat(user, "\t Damage Specifics: [OX] - [TX] - [BU] - [BR]") to_chat(user, "Body Temperature: [H.bodytemperature-T0C]°C ([H.bodytemperature*1.8-459.67]°F)") if(H.timeofdeath && (H.stat == DEAD || (HAS_TRAIT(H, TRAIT_FAKEDEATH)))) to_chat(user, "Time of Death: [station_time_timestamp("hh:mm:ss", H.timeofdeath)]") var/tdelta = round(world.time - H.timeofdeath) - if(tdelta < DEFIB_TIME_LIMIT) + if(tdelta < DEFIB_TIME_LIMIT && !DNR) to_chat(user, "Subject died [DisplayTimeText(tdelta)] ago, defibrillation may be possible!") + else + to_chat(user, "Subject died [DisplayTimeText(tdelta)] ago.") if(mode == 1) var/list/damaged = H.get_damaged_organs(1,1) @@ -239,9 +250,9 @@ REAGENT SCANNER to_chat(user, "Subject's pulse: [H.get_pulse(GETPULSE_TOOL)] bpm.") var/implant_detect - for(var/obj/item/organ/internal/cyberimp/CI in H.internal_organs) - if(CI.is_robotic()) - implant_detect += "[H.name] is modified with a [CI.name].
" + for(var/obj/item/organ/internal/O in H.internal_organs) + if(O.is_robotic()) + implant_detect += "[H.name] is modified with a [O.name].
" if(implant_detect) to_chat(user, "Detected cybernetic modifications:") to_chat(user, "[implant_detect]") diff --git a/code/game/objects/items/tools/multitool.dm b/code/game/objects/items/tools/multitool.dm index bad1a325b26..7acee5352a3 100644 --- a/code/game/objects/items/tools/multitool.dm +++ b/code/game/objects/items/tools/multitool.dm @@ -12,7 +12,7 @@ icon = 'icons/obj/device.dmi' icon_state = "multitool" flags = CONDUCT - force = 5.0 + force = 0 w_class = WEIGHT_CLASS_SMALL throwforce = 0 throw_range = 7 diff --git a/code/game/objects/items/trash.dm b/code/game/objects/items/trash.dm index 80dd45d1b02..c2ff3879968 100644 --- a/code/game/objects/items/trash.dm +++ b/code/game/objects/items/trash.dm @@ -52,12 +52,12 @@ icon_state = "waffles" /obj/item/trash/plate - name = "Plate" + name = "plate" icon_state = "plate" resistance_flags = NONE /obj/item/trash/snack_bowl - name = "Snack bowl" + name = "snack bowl" icon_state = "snack_bowl" /obj/item/trash/fried_vox diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index a8c76f09788..f181233e9ba 100644 --- a/code/game/objects/items/weapons/cards_ids.dm +++ b/code/game/objects/items/weapons/cards_ids.dm @@ -332,11 +332,12 @@ var/list/initial_access = list(ACCESS_MAINT_TUNNELS, ACCESS_SYNDICATE, ACCESS_EXTERNAL_AIRLOCKS) origin_tech = "syndicate=1" var/registered_user = null - untrackable = 1 - var/anyone = FALSE //Can anyone forge the ID or just syndicate? + untrackable = TRUE -/obj/item/card/id/syndicate/anyone - anyone = TRUE +/obj/item/card/id/syndicate/researcher + initial_access = list(ACCESS_SYNDICATE) + assignment = "Syndicate Researcher" + icon_state = "syndie" /obj/item/card/id/syndicate/New() access = initial_access.Copy() @@ -356,13 +357,13 @@ if(istype(O, /obj/item/card/id)) var/obj/item/card/id/I = O if(istype(user, /mob/living) && user.mind) - if(user.mind.special_role || anyone) + if(user.mind.special_role) to_chat(usr, "The card's microscanners activate as you pass it over \the [I], copying its access.") src.access |= I.access //Don't copy access if user isn't an antag -- to prevent metagaming /obj/item/card/id/syndicate/attack_self(mob/user as mob) if(!src.registered_name) - var/t = reject_bad_name(input(user, "What name would you like to use on this card?", "Agent Card name", ishuman(user) ? user.real_name : user.name)) + var/t = reject_bad_name(input(user, "What name would you like to use on this card?", "Agent Card name", ishuman(user) ? user.real_name : user.name), TRUE) if(!t) to_chat(user, "Invalid name.") return @@ -601,7 +602,7 @@ registered_name = "Syndicate" icon_state = "syndie" assignment = "Syndicate Overlord" - untrackable = 1 + untrackable = TRUE access = list(ACCESS_SYNDICATE, ACCESS_SYNDICATE_LEADER, ACCESS_SYNDICATE_COMMAND, ACCESS_EXTERNAL_AIRLOCKS) /obj/item/card/id/captains_spare @@ -623,7 +624,7 @@ item_state = "gold_id" registered_name = "Admin" assignment = "Testing Shit" - untrackable = 1 + untrackable = TRUE /obj/item/card/id/admin/New() access = get_absolutely_all_accesses() diff --git a/code/game/objects/items/weapons/defib.dm b/code/game/objects/items/weapons/defib.dm index 43808c9105f..d7993768fec 100644 --- a/code/game/objects/items/weapons/defib.dm +++ b/code/game/objects/items/weapons/defib.dm @@ -363,7 +363,7 @@ if(do_after(user, 30 * toolspeed, target = M)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process user.visible_message("[user] places [src] on [M.name]'s chest.", "You place [src] on [M.name]'s chest.") playsound(get_turf(src), 'sound/machines/defib_charge.ogg', 50, 0) - var/mob/dead/observer/ghost = H.get_ghost() + var/mob/dead/observer/ghost = H.get_ghost(TRUE) if(ghost && !ghost.client) // In case the ghost's not getting deleted for some reason H.key = ghost.key @@ -446,10 +446,13 @@ else if(total_burn >= 180 || total_brute >= 180) user.visible_message("[defib] buzzes: Resuscitation failed - Severe tissue damage detected.") else if(ghost) - user.visible_message("[defib] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.") - to_chat(ghost, "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") - window_flash(ghost.client) - ghost << sound('sound/effects/genetics.ogg') + if(!ghost.can_reenter_corpse) // DNR or AntagHUD + user.visible_message("[defib] buzzes: Resucitation failed: No electrical brain activity detected.") + else + user.visible_message("[defib] buzzes: Resuscitation failed: Patient's brain is unresponsive. Further attempts may succeed.") + to_chat(ghost, "Your heart is being defibrillated. Return to your body if you want to be revived! (Verbs -> Ghost -> Re-enter corpse)") + window_flash(ghost.client) + ghost << sound('sound/effects/genetics.ogg') else user.visible_message("[defib] buzzes: Resuscitation failed.") playsound(get_turf(src), 'sound/machines/defib_failed.ogg', 50, 0) diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 10dc87e2748..570cc603155 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -457,7 +457,7 @@ /obj/item/grenade/chem_grenade/firefighting - payload_name = "fire fighting grenade" + payload_name = "fire fighting" desc = "Can help to put out dangerous fires from a distance." stage = READY diff --git a/code/game/objects/items/weapons/handcuffs.dm b/code/game/objects/items/weapons/handcuffs.dm index 89ce97ff913..d8abb853e9f 100644 --- a/code/game/objects/items/weapons/handcuffs.dm +++ b/code/game/objects/items/weapons/handcuffs.dm @@ -192,5 +192,10 @@ desc = "A pair of broken zipties." icon_state = "cuff_white_used" +/obj/item/restraints/handcuffs/cable/zipties/used/decompile_act(obj/item/matter_decompiler/C, mob/user) + C.stored_comms["glass"] += 1 + qdel(src) + return TRUE + /obj/item/restraints/handcuffs/cable/zipties/used/attack() return diff --git a/code/game/objects/items/weapons/holy_weapons.dm b/code/game/objects/items/weapons/holy_weapons.dm index 59880fdcc8c..a9cfbbbe36b 100644 --- a/code/game/objects/items/weapons/holy_weapons.dm +++ b/code/game/objects/items/weapons/holy_weapons.dm @@ -39,7 +39,7 @@ if(ishuman(M) && M.mind?.vampire) if(!M.mind.vampire.get_ability(/datum/vampire_passive/full)) to_chat(M, "The nullrod's power interferes with your own!") - M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2) + M.mind.vampire.adjust_nullification(5, 2) /obj/item/nullrod/pickup(mob/living/user) . = ..() @@ -476,7 +476,7 @@ return if(target.mind.vampire && !target.mind.vampire.get_ability(/datum/vampire_passive/full)) // Getting a full prayer off on a vampire will interrupt their powers for a large duration. - target.mind.vampire.nullified = max(120, target.mind.vampire.nullified + 120) + target.mind.vampire.adjust_nullification(120, 50) to_chat(target, "[user]'s prayer to [SSticker.Bible_deity_name] has interfered with your power!") praying = FALSE return @@ -500,7 +500,7 @@ if(holder.l_hand == src || holder.r_hand == src) // Holding this in your hand will for(var/mob/living/carbon/human/H in range(5, loc)) if(H.mind && H.mind.vampire && !H.mind.vampire.get_ability(/datum/vampire_passive/full)) - H.mind.vampire.nullified = max(5, H.mind.vampire.nullified + 2) + H.mind.vampire.adjust_nullification(5, 2) if(prob(10)) to_chat(H, "Being in the presence of [holder]'s [src] is interfering with your powers!") diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm index 161d7dd33a7..2278f232f7d 100644 --- a/code/game/objects/items/weapons/manuals.dm +++ b/code/game/objects/items/weapons/manuals.dm @@ -838,7 +838,7 @@ /obj/item/book/manual/chef_recipes name = "Chef Recipes" - icon_state = "cooked_book" + icon_state = "cook_book" author = "NanoTrasen" title = "Chef Recipes" dat = {" diff --git a/code/game/objects/items/weapons/staff.dm b/code/game/objects/items/weapons/staff.dm index 286336a0726..465e77e7cbc 100644 --- a/code/game/objects/items/weapons/staff.dm +++ b/code/game/objects/items/weapons/staff.dm @@ -52,6 +52,11 @@ return ..() +/obj/item/twohanded/staff/broom/dropped(mob/user) + if((user.mind in SSticker.mode.wizards) && user.flying) + user.flying = FALSE + ..() + /obj/item/twohanded/staff/broom/horsebroom name = "broomstick horse" desc = "Saddle up!" diff --git a/code/game/objects/items/weapons/twohanded.dm b/code/game/objects/items/weapons/twohanded.dm index b267b51d7d9..a7ac1d632c7 100644 --- a/code/game/objects/items/weapons/twohanded.dm +++ b/code/game/objects/items/weapons/twohanded.dm @@ -638,7 +638,7 @@ /obj/item/twohanded/singularityhammer name = "singularity hammer" desc = "The pinnacle of close combat technology, the hammer harnesses the power of a miniaturized singularity to deal crushing blows." - icon_state = "mjollnir0" + icon_state = "singulohammer0" flags = CONDUCT slot_flags = SLOT_BACK force = 5 @@ -665,7 +665,7 @@ charged++ /obj/item/twohanded/singularityhammer/update_icon() //Currently only here to fuck with the on-mob icons. - icon_state = "mjollnir[wielded]" + icon_state = "singulohammer[wielded]" ..() /obj/item/twohanded/singularityhammer/proc/vortex(turf/pull, mob/wielder) diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm index 24344481129..741afa2738b 100644 --- a/code/game/objects/structures/crates_lockers/closets.dm +++ b/code/game/objects/structures/crates_lockers/closets.dm @@ -75,10 +75,14 @@ /obj/structure/closet/proc/dump_contents() var/turf/T = get_turf(src) - for(var/atom/movable/AM in src) - AM.forceMove(T) + for(var/mob/AM1 in src) //Does the same as below but removes the mobs first to avoid forcing players to step on items in the locker (e.g. soap) when opened. + AM1.forceMove(T) if(throwing) // you keep some momentum when getting out of a thrown closet - step(AM, dir) + step(AM1, dir) + for(var/atom/movable/AM2 in src) + AM2.forceMove(T) + if(throwing) // you keep some momentum when getting out of a thrown closet + step(AM2, dir) if(throwing) throwing.finalize(FALSE) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm index ef80d50371a..55e44163a06 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/chaplain.dm @@ -22,6 +22,7 @@ new /obj/item/storage/backpack/cultpack(src) new /obj/item/clothing/head/helmet/riot/knight/templar(src) new /obj/item/clothing/suit/armor/riot/knight/templar(src) + new /obj/item/clothing/suit/storage/labcoat(src) new /obj/item/soulstone/anybody/purified/chaplain(src) new /obj/item/storage/fancy/candle_box/eternal(src) new /obj/item/storage/fancy/candle_box/eternal(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 51796eade39..d8441b26c0b 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -27,6 +27,7 @@ new /obj/item/clothing/shoes/brown(src) new /obj/item/clothing/shoes/laceup(src) new /obj/item/radio/headset/heads/captain/alt(src) + new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/clothing/gloves/color/captain(src) new /obj/item/storage/belt/rapier(src) new /obj/item/gun/energy/gun(src) @@ -50,6 +51,7 @@ new /obj/item/clothing/head/hopcap(src) new /obj/item/cartridge/hop(src) new /obj/item/radio/headset/heads/hop(src) + new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/storage/box/ids(src) new /obj/item/storage/box/PDAs(src) new /obj/item/clothing/suit/armor/vest(src) @@ -272,6 +274,7 @@ new /obj/item/paicard(src) new /obj/item/flash(src) new /obj/item/clothing/glasses/hud/skills/sunglasses(src) + new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/clothing/gloves/color/white(src) new /obj/item/clothing/shoes/centcom(src) new /obj/item/clothing/under/lawyer/oldman(src) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 0d9db6737b6..02cad716d3d 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -75,7 +75,7 @@ state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS to_chat(user, "You wire the airlock assembly.") - else if(istype(W, /obj/item/airlock_electronics) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS && W.icon_state != "door_electronics_smoked") + else if(istype(W, /obj/item/airlock_electronics) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS && !istype(W, /obj/item/airlock_electronics/destroyed)) playsound(loc, W.usesound, 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly...") @@ -187,6 +187,7 @@ door.name = base_name door.previous_airlock = previous_assembly electronics.forceMove(door) + electronics = null qdel(src) update_icon() diff --git a/code/game/objects/structures/flora.dm b/code/game/objects/structures/flora.dm index 0323a9fc0cf..3679587d654 100644 --- a/code/game/objects/structures/flora.dm +++ b/code/game/objects/structures/flora.dm @@ -223,9 +223,10 @@ /obj/item/twohanded/required/kirbyplants/equipped(mob/living/user) . = ..() - var/image/I = image(icon = 'icons/obj/flora/plants.dmi' , icon_state = src.icon_state, loc = user) - I.override = 1 - user.add_alt_appearance("sneaking_mission", I, GLOB.player_list) + if(wielded) + var/image/I = image(icon, user, icon_state) + I.override = TRUE + user.add_alt_appearance("sneaking_mission", I, GLOB.player_list) /obj/item/twohanded/required/kirbyplants/dropped(mob/living/user) ..() diff --git a/code/game/objects/structures/safe.dm b/code/game/objects/structures/safe.dm index 2f751dbfadd..5bfe4e8a880 100644 --- a/code/game/objects/structures/safe.dm +++ b/code/game/objects/structures/safe.dm @@ -7,7 +7,7 @@ SAFE CODES */ #define DRILL_SPARK_CHANCE 15 -#define DRILL_TIME 300 SECONDS +#define DRILL_TIME 120 SECONDS #define SOUND_CHANCE 10 GLOBAL_LIST_EMPTY(safes) diff --git a/code/game/objects/structures/statues.dm b/code/game/objects/structures/statues.dm index 2c7ffbe2e90..15874e0c812 100644 --- a/code/game/objects/structures/statues.dm +++ b/code/game/objects/structures/statues.dm @@ -46,9 +46,6 @@ user.visible_message("[user] rubs some dust off from the [name]'s surface.", \ "You rub some dust off from the [name]'s surface.") -/obj/structure/statue/CanAtmosPass() - return !density - /obj/structure/statue/deconstruct(disassembled = TRUE) if(!(flags & NODECONSTRUCT)) if(material_drop_type) diff --git a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm index 9def5542c76..1a162c250fa 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/wheelchair.dm @@ -156,3 +156,6 @@ else . = 1 + +/obj/structure/chair/wheelchair/bike/wrench_act(mob/user, obj/item/I) + return diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index d287c2f5bbf..5bce42875fe 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -591,7 +591,7 @@ verbs -= /obj/structure/table/verb/do_flip typecache_can_hold = typecacheof(typecache_can_hold) for(var/atom/movable/held in get_turf(src)) - if(is_type_in_typecache(held, typecache_can_hold)) + if(!held.anchored && held.move_resist != INFINITY && is_type_in_typecache(held, typecache_can_hold)) held_items += held.UID() /obj/structure/table/tray/Move(NewLoc, direct) diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index fb89c95815b..73e6fadac80 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -131,7 +131,7 @@ if("02") //Adding airlock electronics for access. Step 6 complete. - if(istype(W, /obj/item/airlock_electronics)) + if(istype(W, /obj/item/airlock_electronics) && !istype(W, /obj/item/airlock_electronics/destroyed)) playsound(loc, W.usesound, 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly...") user.drop_item() diff --git a/code/game/turfs/simulated/minerals.dm b/code/game/turfs/simulated/minerals.dm index 026eef852d8..d2109bee2f0 100644 --- a/code/game/turfs/simulated/minerals.dm +++ b/code/game/turfs/simulated/minerals.dm @@ -20,7 +20,7 @@ var/mineralType = null var/mineralAmt = 3 var/spread = 0 //will the seam spread? - var/spreadChance = 0 //the percentual chance of an ore spreading to the neighbouring tiles + var/spreadChance = 0 //the percentile chance of an ore spreading to the neighboring tiles var/last_act = 0 var/scan_state = "" //Holder for the image we display when we're pinged by a mining scanner var/defer_change = 0 diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index 02035e17f95..1eb89e6a238 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -4,7 +4,7 @@ /turf/simulated/wall name = "wall" - desc = "A huge chunk of metal used to seperate rooms." + desc = "A huge chunk of metal used to separate rooms." icon = 'icons/turf/walls/wall.dmi' icon_state = "wall" var/rotting = FALSE diff --git a/code/game/turfs/simulated/walls_mineral.dm b/code/game/turfs/simulated/walls_mineral.dm index ee0e576b8a6..9d743ae9c18 100644 --- a/code/game/turfs/simulated/walls_mineral.dm +++ b/code/game/turfs/simulated/walls_mineral.dm @@ -82,7 +82,7 @@ /turf/simulated/wall/mineral/plasma name = "plasma wall" - desc = "A wall with plasma plating. This is definately a bad idea." + desc = "A wall with plasma plating. This is definitely a bad idea." icon = 'icons/turf/walls/plasma_wall.dmi' icon_state = "plasma" sheet_type = /obj/item/stack/sheet/mineral/plasma @@ -303,26 +303,6 @@ icon_state = "map-overspace" fixed_underlay = list("space"=1) -/turf/simulated/wall/mineral/plastitanium/explosive - var/explosive_wall_group = EXPLOSIVE_WALL_GROUP_SYNDICATE_BASE - icon_state = "map-shuttle_nd" - smooth = SMOOTH_MORE - -/turf/simulated/wall/mineral/plastitanium/explosive/Initialize(mapload) - . = ..() - GLOB.explosive_walls += src - -/turf/simulated/wall/mineral/plastitanium/explosive/Destroy() - GLOB.explosive_walls -= src - return ..() - -/turf/simulated/wall/mineral/plastitanium/explosive/proc/self_destruct() - var/obj/item/bombcore/large/explosive_wall/bombcore = new(get_turf(src)) - bombcore.detonate() - -/turf/simulated/wall/mineral/plastitanium/explosive/ex_act(severity) - return - //have to copypaste this code /turf/simulated/wall/mineral/plastitanium/interior/copyTurf(turf/T) if(T.type != type) diff --git a/code/game/turfs/simulated/walls_misc.dm b/code/game/turfs/simulated/walls_misc.dm index 89122891702..e32fa627297 100644 --- a/code/game/turfs/simulated/walls_misc.dm +++ b/code/game/turfs/simulated/walls_misc.dm @@ -11,7 +11,7 @@ /turf/simulated/wall/cult/Initialize(mapload) . = ..() - if(SSticker.mode)//game hasn't started offically don't do shit.. + if(SSticker.mode)//game hasn't started officially don't do shit.. new /obj/effect/temp_visual/cult/turf(src) icon_state = SSticker.cultdat.cult_wall_icon_state diff --git a/code/game/verbs/who.dm b/code/game/verbs/who.dm index 4a0429dd576..4c21afebdd2 100644 --- a/code/game/verbs/who.dm +++ b/code/game/verbs/who.dm @@ -1,63 +1,98 @@ - /client/verb/who() set name = "Who" set category = "OOC" - var/msg = "Current Players:\n" + var/list/lines = list() + var/list/temp = list() + for(var/client/C in GLOB.clients) + if(C.holder && C.holder.big_brother) // BB doesn't show up at all + continue + + if(C.holder && C.holder.fakekey) + temp += C.holder.fakekey + else + temp += C.key + + temp = sortList(temp) // Sort it. We dont do this above because fake keys would be out of order, which would be a giveaway + + var/list/output_players = list() + + // Now go over it again to apply colours. + for(var/p in temp) + var/client/C = GLOB.directory[ckey(p)] + if(!C) + // This should NEVER happen, but better to be safe + continue + // Get the colour + var/colour = client2rankcolour(C) + var/out = "[p]" + if(C.holder) + out = "[out]" + if(colour) + out = "[out]" + + output_players += out + + lines += "Current Players ([length(output_players)]): " + lines += output_players.Join(", ") // Turn players into a comma separated list + + if(check_rights(R_ADMIN, FALSE)) + lines += "Click here for detailed (old) who." + + var/msg = lines.Join("\n") + + to_chat(src, msg) + +// Advanced version of `who` to show player age, antag status and more. Lags the chat when loading, so its in its own proc +/client/proc/who_advanced() + if(!check_rights(R_ADMIN)) + return var/list/Lines = list() - if(check_rights(R_ADMIN,0)) - for(var/client/C in GLOB.clients) - if(C.holder && C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // need PERMISSIONS to see BB - continue + for(var/client/C in GLOB.clients) + if(C.holder && C.holder.big_brother && !check_rights(R_PERMISSIONS, FALSE)) // need PERMISSIONS to see BB + continue - var/entry = "\t[C.key]" - if(C.holder && C.holder.fakekey) - entry += " (as [C.holder.fakekey])" - entry += " - Playing as [C.mob.real_name]" - switch(C.mob.stat) - if(UNCONSCIOUS) - entry += " - Unconscious" - if(DEAD) - if(isobserver(C.mob)) - var/mob/dead/observer/O = C.mob - if(O.started_as_observer) - entry += " - Observing" - else - entry += " - DEAD" - else if(isnewplayer(C.mob)) - entry += " - New Player" + var/entry = "\t[C.key]" + if(C.holder && C.holder.fakekey) + entry += " (as [C.holder.fakekey])" + entry += " - Playing as [C.mob.real_name]" + switch(C.mob.stat) + if(UNCONSCIOUS) + entry += " - Unconscious" + if(DEAD) + if(isobserver(C.mob)) + var/mob/dead/observer/O = C.mob + if(O.started_as_observer) + entry += " - Observing" else entry += " - DEAD" + else if(isnewplayer(C.mob)) + entry += " - New Player" + else + entry += " - DEAD" - var/age - if(isnum(C.player_age)) - age = C.player_age - else - age = 0 + var/age + if(isnum(C.player_age)) + age = C.player_age + else + age = 0 - if(age <= 1) - age = "[age]" - else if(age < 10) - age = "[age]" + if(age <= 1) + age = "[age]" + else if(age < 10) + age = "[age]" - entry += " - [age]" + entry += " - [age]" - if(is_special_character(C.mob)) - entry += " - Antagonist" - entry += " ([ADMIN_QUE(C.mob,"?")])" - Lines += entry - else - for(var/client/C in GLOB.clients) - if(C.holder && C.holder.big_brother) // BB doesn't show up at all - continue + if(is_special_character(C.mob)) + entry += " - Antagonist" + entry += " ([ADMIN_QUE(C.mob, "?")])" + Lines += entry - if(C.holder && C.holder.fakekey) - Lines += C.holder.fakekey - else - Lines += C.key + var/msg = "" for(var/line in sortList(Lines)) msg += "[line]\n" @@ -83,7 +118,12 @@ if(C.holder.big_brother && !check_rights(R_PERMISSIONS, 0)) // normal admins can't see BB continue - msg += "\t[C] is a [C.holder.rank]" + // Their rank may not have a defined colour, only set colour if so + var/rank_colour = client2rankcolour(C) + if(rank_colour) + msg += "[C] is a [C.holder.rank]" + else + msg += "[C] is a [C.holder.rank]" if(C.holder.fakekey) msg += " (as [C.holder.fakekey])" @@ -102,7 +142,12 @@ num_admins_online++ else if(check_rights(R_MENTOR|R_MOD, 0, C.mob)) - modmsg += "\t[C] is a [C.holder.rank]" + // Their rank may not have a defined colour, only set colour if so + var/rank_colour = client2rankcolour(C) + if(rank_colour) + modmsg += "[C] is a [C.holder.rank]" + else + modmsg += "[C] is a [C.holder.rank]" if(isobserver(C.mob)) modmsg += " - Observing" @@ -120,10 +165,20 @@ if(check_rights(R_ADMIN, 0, C.mob)) if(!C.holder.fakekey) - msg += "\t[C] is a [C.holder.rank]\n" + var/rank_colour = client2rankcolour(C) + if(rank_colour) + msg += "[C] is a [C.holder.rank]" + else + msg += "[C] is a [C.holder.rank]" + msg += "\n" num_admins_online++ else if(check_rights(R_MOD|R_MENTOR, 0, C.mob) && !check_rights(R_ADMIN, 0, C.mob)) - modmsg += "\t[C] is a [C.holder.rank]\n" + var/rank_colour = client2rankcolour(C) + if(rank_colour) + modmsg += "[C] is a [C.holder.rank]" + else + modmsg += "[C] is a [C.holder.rank]" + modmsg += "\n" num_mods_online++ var/noadmins_info = "\nIf no admins or mentors are online, make a ticket anyways. Adminhelps and mentorhelps will be relayed to discord, and staff will still be informed." diff --git a/code/game/world.dm b/code/game/world.dm index 5ba97917661..b3abac365e8 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -190,6 +190,7 @@ GLOBAL_LIST_EMPTY(world_topic_handlers) config.load("config/game_options.txt","game_options") config.loadsql("config/dbconfig.txt") config.loadoverflowwhitelist("config/ofwhitelist.txt") + config.load_rank_colour_map() // apply some settings from config.. /world/proc/update_status() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 3aff6353283..db9a440c11d 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -2930,20 +2930,32 @@ GLOB.event_announcement.Announce("Feedback surge detected in mass-distributions systems. Artifical gravity has been disabled whilst the system reinitializes. Further failures may result in a gravitational collapse and formation of blackholes. Have a nice day.") if("power") - SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Power All APCs") - log_admin("[key_name(usr)] made all areas powered", 1) - message_admins("[key_name_admin(usr)] made all areas powered", 1) - power_restore() + switch(alert("What Would You Like to Do?", "Make All Areas Powered", "Power all APCs", "Repair all APCs", "Repair and Power APCs")) //Alert notification in this code for standarization purposes + if("Power all APCs") + power_restore(TRUE, 0) + SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Power all APCs") + log_and_message_admins("[key_name_admin(usr)] powered all APCs", 1) + if("Repair all APCs") + power_restore(TRUE, 1) + SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Repair all APCs") + log_and_message_admins("[key_name_admin(usr)] repaired all APCs", 1) + if("Repair and Power APCs") + power_restore(TRUE, 2) + SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Repair and Power all APCs") + log_and_message_admins("[key_name_admin(usr)] repaired and powered all APCs", 1) if("unpower") - SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Depower All APCs") - log_admin("[key_name(usr)] made all areas unpowered", 1) - message_admins("[key_name_admin(usr)] made all areas unpowered", 1) - power_failure() + if(alert("What Would You Like to Do?", "Make All Areas Unpowered", "Depower all APCs", "Short out APCs") == "Depower all APCs") + depower_apcs() + SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Depower all APCs") + log_and_message_admins("[key_name_admin(usr)] made all areas unpowered", 1) + else + power_failure() + SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Short out APCs") + log_and_message_admins("[key_name_admin(usr)] has shorted APCs", 1) if("quickpower") - SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Power All SMESs") - log_admin("[key_name(usr)] made all SMESs powered", 1) - message_admins("[key_name_admin(usr)] made all SMESs powered", 1) power_restore_quick() + SSblackbox.record_feedback("tally", "admin_secrets_fun_used", 1, "Power All SMESs") + log_and_message_admins("[key_name(usr)] made all SMESs powered", 1) if("prisonwarp") if(!SSticker) alert("The game hasn't started yet!", null, null, null, null, null) @@ -3544,6 +3556,8 @@ var/datum/browser/popup = new(usr, "view_karma", "Karma stats for [target_ckey]", 600, 300) popup.set_content(dat) popup.open(FALSE) + else if(href_list["who_advanced"]) + usr.client.who_advanced() /client/proc/create_eventmob_for(mob/living/carbon/human/H, killthem = 0) if(!check_rights(R_EVENT)) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 59ab53f3ca6..55895e5b282 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -136,15 +136,14 @@ GLOBAL_VAR_INIT(sent_strike_team, 0) /client/proc/create_death_commando(obj/spawn_location, is_leader = FALSE) var/mob/living/carbon/human/new_commando = new(spawn_location.loc) var/commando_leader_rank = pick("Lieutenant", "Captain", "Major") - var/commando_rank = pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") - var/commando_name = pick(GLOB.last_names) + var/commando_name = pick(GLOB.commando_names) var/datum/preferences/A = new()//Randomize appearance for the commando. if(is_leader) A.age = rand(35,45) A.real_name = "[commando_leader_rank] [commando_name]" else - A.real_name = "[commando_rank] [commando_name]" + A.real_name = "[commando_name]" A.copy_to(new_commando) diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index c3a483c04d8..f11e6e238da 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -33,6 +33,7 @@ var/banType = ROLE_GHOST var/ghost_usable = TRUE var/offstation_role = TRUE // If set to true, the role of the user's mind will be set to offstation + var/death_cooldown = 0 // How long you have to wait after dying before using it again, in deciseconds. People that join as observers are not included. /obj/effect/mob_spawn/attack_ghost(mob/user) var/mob/dead/observer/O = user @@ -50,6 +51,8 @@ if(!O.can_reenter_corpse) to_chat(user, "You have forfeited the right to respawn.") return + if(time_check(user)) + return var/ghost_role = alert("Become [mob_name]? (Warning, You can no longer be cloned!)",,"Yes","No") if(ghost_role == "No") return @@ -86,6 +89,30 @@ /obj/effect/mob_spawn/proc/equip(mob/M) return +/obj/effect/mob_spawn/proc/time_check(mob/user) + var/deathtime = world.time - user.timeofdeath + var/joinedasobserver = FALSE + if(isobserver(user)) + var/mob/dead/observer/G = user + if(G.started_as_observer) + joinedasobserver = TRUE + + var/deathtimeminutes = round(deathtime / 600) + var/pluralcheck = "minute" + if(deathtimeminutes == 0) + pluralcheck = "" + else if(deathtimeminutes == 1) + pluralcheck = " [deathtimeminutes] minute and" + else if(deathtimeminutes > 1) + pluralcheck = " [deathtimeminutes] minutes and" + var/deathtimeseconds = round((deathtime - deathtimeminutes * 600) / 10, 1) + + if(deathtime <= death_cooldown && !joinedasobserver) + to_chat(user, "You have been dead for[pluralcheck] [deathtimeseconds] seconds.") + to_chat(user, "You must wait [death_cooldown / 600] minutes to respawn!") + return TRUE + return FALSE + /obj/effect/mob_spawn/proc/create(ckey, flavour = TRUE, name) var/mob/living/M = new mob_type(get_turf(src)) //living mobs only var/mob/living/carbon/human/H = M diff --git a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm index 0996f214691..2c7be0f1329 100644 --- a/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm +++ b/code/modules/awaymissions/mission_code/ghost_role_spawners/golems.dm @@ -61,6 +61,7 @@ anchored = FALSE move_resist = MOVE_FORCE_NORMAL density = FALSE + death_cooldown = 300 SECONDS var/has_owner = FALSE var/can_transfer = TRUE //if golems can switch bodies to this new shell var/mob/living/owner = null //golem's owner if it has one @@ -134,6 +135,25 @@ user.death() return +/obj/effect/mob_spawn/human/golem/attackby(obj/item/I, mob/living/carbon/user, params) + if(!istype(I, /obj/item/slimepotion/transference)) + return ..() + if(iscarbon(user) && can_transfer) + var/human_transfer_choice = alert("Transfer your soul to [src]? (Warning, your old body will die!)", null, "Yes", "No") + if(human_transfer_choice != "Yes") + return + if(QDELETED(src) || uses <= 0 || user.stat >= 1 || QDELETED(I)) + return + if(istype(src, /obj/effect/mob_spawn/human/golem/servant)) + has_owner = FALSE + flavour_text = null + user.visible_message("As [user] applies the potion on the golem shell, a faint light leaves them, moving to [src] and animating it!", + "You apply the potion to [src], feeling your mind leave your body!") + message_admins("[key_name(user)] used [I] to transfer their mind into [src]") + create(ckey = user.ckey, name = user.real_name) + user.death() //Keeps brain intact to prevent forcing redtext + qdel(I) + /obj/effect/mob_spawn/human/golem/servant has_owner = TRUE name = "inert servant golem shell" diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index dac6b8f3dac..fe1799b5048 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -8,8 +8,8 @@ #define UPLOAD_LIMIT 10485760 //Restricts client uploads to the server to 10MB //Boosted this thing. What's the worst that can happen? #define MIN_CLIENT_VERSION 513 // Minimum byond major version required to play. //I would just like the code ready should it ever need to be used. -#define SUGGESTED_CLIENT_VERSION 513 // only integers (e.g: 513, 514) are useful here. This is the part BEFORE the ".", IE 513 out of 513.1536 -#define SUGGESTED_CLIENT_BUILD 1536 // only integers (e.g: 1536, 1539) are useful here. This is the part AFTER the ".", IE 1536 out of 513.1536 +#define SUGGESTED_CLIENT_VERSION 513 // only integers (e.g: 513, 514) are useful here. This is the part BEFORE the ".", IE 513 out of 513.1542 +#define SUGGESTED_CLIENT_BUILD 1542 // only integers (e.g: 1542, 1543) are useful here. This is the part AFTER the ".", IE 1542 out of 513.1542 #define SSD_WARNING_TIMER 30 // cycles, not seconds, so 30=60s diff --git a/code/modules/client/preference/loadout/loadout_uniform.dm b/code/modules/client/preference/loadout/loadout_uniform.dm index 2911e64e87c..e188431f719 100644 --- a/code/modules/client/preference/loadout/loadout_uniform.dm +++ b/code/modules/client/preference/loadout/loadout_uniform.dm @@ -4,7 +4,7 @@ slot = slot_w_uniform sort_category = "Uniforms and Casual Dress" -/datum/gear/uniform/suits +/datum/gear/uniform/suit subtype_path = /datum/gear/uniform/suit //there's a lot more colors than I thought there were @_@ diff --git a/code/modules/client/preference/preferences.dm b/code/modules/client/preference/preferences.dm index 7c45d7ce88a..5a838c3ac9a 100644 --- a/code/modules/client/preference/preferences.dm +++ b/code/modules/client/preference/preferences.dm @@ -192,6 +192,7 @@ GLOBAL_LIST_INIT(special_role_times, list( //minimum age (in days) for accounts "1020" = 100, // CHANNEL_HEARTBEAT "1019" = 100, // CHANNEL_BUZZ "1018" = 100, // CHANNEL_AMBIENCE + "1017" = 100, // CHANNEL_ENGINE ) /// The volume mixer save timer handle. Used to debounce the DB call to save, to avoid spamming. var/volume_mixer_saving = null diff --git a/code/modules/client/preference/preferences_mysql.dm b/code/modules/client/preference/preferences_mysql.dm index 509a5402eaa..f921bec24c6 100644 --- a/code/modules/client/preference/preferences_mysql.dm +++ b/code/modules/client/preference/preferences_mysql.dm @@ -50,7 +50,7 @@ //Sanitize ooccolor = sanitize_hexcolor(ooccolor, initial(ooccolor)) - UI_style = sanitize_inlist(UI_style, list("White", "Midnight"), initial(UI_style)) + UI_style = sanitize_inlist(UI_style, list("White", "Midnight", "Plasmafire", "Retro", "Slimecore", "Operative"), initial(UI_style)) default_slot = sanitize_integer(default_slot, 1, max_save_slots, initial(default_slot)) toggles = sanitize_integer(toggles, 0, TOGGLES_TOTAL, initial(toggles)) toggles2 = sanitize_integer(toggles2, 0, TOGGLES_2_TOTAL, initial(toggles2)) diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index a1d84912f3f..c34e17943cb 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -263,6 +263,7 @@ icon_state = "meson" item_state = "meson" resistance_flags = NONE + prescription_upgradable = TRUE armor = list("melee" = 10, "bullet" = 10, "laser" = 10, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) sprite_sheets = list( diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 90855b082ca..9baf6c46079 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -486,8 +486,8 @@ BLIND // can't see anything //Suit /obj/item/clothing/suit - icon = 'icons/obj/clothing/suits.dmi' name = "suit" + icon = 'icons/obj/clothing/suits.dmi' var/fire_resist = T0C+100 allowed = list(/obj/item/tank/internals/emergency_oxygen) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) @@ -573,7 +573,7 @@ BLIND // can't see anything //Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together. // Meaning the the suit is defined directly after the corrisponding helmet. Just like below! /obj/item/clothing/head/helmet/space - name = "Space helmet" + name = "space helmet" icon_state = "space" desc = "A special helmet designed for work in a hazardous, low-pressure environment." w_class = WEIGHT_CLASS_NORMAL @@ -596,7 +596,7 @@ BLIND // can't see anything /obj/item/clothing/suit/space - name = "Space suit" + name = "space suit" desc = "A suit that protects against low pressure environments. Has a big 13 on the back." icon_state = "space" item_state = "s_suit" @@ -618,7 +618,9 @@ BLIND // can't see anything resistance_flags = NONE hide_tail_by_species = null species_restricted = list("exclude","Wryn") - + sprite_sheets = list( + "Vox" = 'icons/mob/species/vox/suit.dmi' + ) //Under clothing /obj/item/clothing/under diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm index 83bda14537e..d07b95d18eb 100644 --- a/code/modules/clothing/glasses/glasses.dm +++ b/code/modules/clothing/glasses/glasses.dm @@ -4,31 +4,33 @@ // Pre-upgraded upgradable glasses name = "prescription [name]" -/obj/item/clothing/glasses/attackby(obj/item/O as obj, mob/user as mob) - if(user.stat || user.restrained() || !ishuman(user)) +/obj/item/clothing/glasses/attackby(obj/item/I, mob/user) + if(!prescription_upgradable || user.stat || user.restrained() || !ishuman(user)) return ..() var/mob/living/carbon/human/H = user - if(prescription_upgradable) - if(istype(O, /obj/item/clothing/glasses/regular)) - if(prescription) - to_chat(H, "You can't possibly imagine how adding more lenses would improve \the [name].") - return - H.unEquip(O) - O.loc = src // Store the glasses for later removal - to_chat(H, "You fit \the [name] with lenses from \the [O].") - prescription = 1 - name = "prescription [name]" + + // Adding prescription glasses + if(istype(I, /obj/item/clothing/glasses/regular)) + if(prescription) + to_chat(H, "You can't possibly imagine how adding more lenses would improve [src].") return - if(prescription && istype(O, /obj/item/screwdriver)) - var/obj/item/clothing/glasses/regular/G = locate() in src - if(!G) - G = new(get_turf(H)) - to_chat(H, "You salvage the prescription lenses from \the [name].") - prescription = 0 - name = initial(name) - H.put_in_hands(G) - return - return ..() + H.unEquip(I) + I.loc = src // Store the glasses for later removal + to_chat(H, "You fit [src] with lenses from [I].") + prescription = TRUE + name = "prescription [initial(name)]" + + // Removing prescription glasses + else if(prescription && istype(I, /obj/item/screwdriver)) + var/obj/item/clothing/glasses/regular/G = locate() in src + if(!G) + G = new(src) + to_chat(H, "You salvage the prescription lenses from [src].") + prescription = FALSE + name = initial(name) + H.put_in_hands(G) + + H.update_nearsighted_effects() /obj/item/clothing/glasses/visor_toggling() ..() @@ -59,7 +61,7 @@ eyes.receive_damage(5) /obj/item/clothing/glasses/meson - name = "Optical Meson Scanner" + name = "optical meson scanner" desc = "Used for seeing walls, floors, and stuff through anything." icon_state = "meson" item_state = "meson" @@ -76,8 +78,8 @@ ) /obj/item/clothing/glasses/meson/night - name = "Night Vision Optical Meson Scanner" - desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." + name = "night vision optical meson scanner" + desc = "An optical meson scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness." icon_state = "nvgmeson" origin_tech = "magnets=4;engineering=5;plasmatech=4" see_in_dark = 8 @@ -100,7 +102,7 @@ sharp = 1 /obj/item/clothing/glasses/meson/cyber - name = "Eye Replacement Implant" + name = "eye replacement implant" desc = "An implanted replacement for a left eye with meson vision capabilities." icon_state = "cybereye-green" item_state = "eyepatch" @@ -114,7 +116,7 @@ icon_state = "purple" item_state = "glasses" origin_tech = "magnets=2;engineering=1" - prescription_upgradable = 0 + prescription_upgradable = TRUE scan_reagents = 1 //You can see reagents while wearing science goggles resistance_flags = ACID_PROOF armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 100) @@ -130,15 +132,16 @@ return 1 /obj/item/clothing/glasses/science/night - name = "Night Vision Science Goggle" + name = "night vision science goggles" desc = "Now you can science in darkness." icon_state = "nvpurple" item_state = "glasses" see_in_dark = 8 + prescription_upgradable = FALSE lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE //don't render darkness while wearing these /obj/item/clothing/glasses/janitor - name = "Janitorial Goggles" + name = "janitorial goggles" desc = "These'll keep the soap out of your eyes." icon_state = "purple" item_state = "glasses" @@ -148,7 +151,7 @@ ) /obj/item/clothing/glasses/night - name = "Night Vision Goggles" + name = "night vision goggles" desc = "You can totally see in the dark now!" icon_state = "night" item_state = "glasses" @@ -188,7 +191,7 @@ ) /obj/item/clothing/glasses/material - name = "Optical Material Scanner" + name = "optical material scanner" desc = "Very confusing glasses." icon_state = "material" item_state = "glasses" @@ -202,7 +205,7 @@ ) /obj/item/clothing/glasses/material/cyber - name = "Eye Replacement Implant" + name = "eye replacement implant" desc = "An implanted replacement for a left eye with material vision capabilities." icon_state = "cybereye-blue" item_state = "eyepatch" @@ -210,7 +213,7 @@ flags_cover = null /obj/item/clothing/glasses/material/lighting - name = "Neutron Goggles" + name = "neutron goggles" desc = "These odd glasses use a form of neutron-based imaging to completely negate the effects of light and darkness." origin_tech = null vision_flags = 0 @@ -238,8 +241,8 @@ item_state = "hipster_glasses" /obj/item/clothing/glasses/threedglasses + name = "\improper 3D glasses" desc = "A long time ago, people used these glasses to makes images from screens threedimensional." - name = "3D glasses" icon_state = "3d" item_state = "3d" @@ -250,7 +253,7 @@ ) /obj/item/clothing/glasses/gglasses - name = "Green Glasses" + name = "green glasses" desc = "Forest green glasses, like the kind you'd wear when hatching a nasty scheme." icon_state = "gglasses" item_state = "gglasses" @@ -263,8 +266,8 @@ prescription_upgradable = 1 /obj/item/clothing/glasses/sunglasses - desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." name = "sunglasses" + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." icon_state = "sun" item_state = "sunglasses" see_in_dark = 1 @@ -279,8 +282,8 @@ ) /obj/item/clothing/glasses/sunglasses_fake - desc = "Cheap, plastic sunglasses. They don't even have UV protection." name = "cheap sunglasses" + desc = "Cheap, plastic sunglasses. They don't even have UV protection." icon_state = "sun" item_state = "sunglasses" see_in_dark = 0 @@ -332,8 +335,8 @@ scan_reagents = 1 /obj/item/clothing/glasses/virussunglasses - desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." name = "sunglasses" + desc = "Strangely ancient technology used to help provide rudimentary eye cover. Enhanced shielding blocks many flashes." icon_state = "sun" item_state = "sunglasses" see_in_dark = 1 @@ -347,8 +350,8 @@ ) /obj/item/clothing/glasses/sunglasses/lasers - desc = "A peculiar set of sunglasses; they have various chips and other panels attached to the sides of the frames." name = "high-tech sunglasses" + desc = "A peculiar set of sunglasses; they have various chips and other panels attached to the sides of the frames." flags = NODROP /obj/item/clothing/glasses/sunglasses/lasers/equipped(mob/user, slot) //grant them laser eyes upon equipping it. @@ -401,7 +404,7 @@ item_state = "bigsunglasses" /obj/item/clothing/glasses/thermal - name = "Optical Thermal Scanner" + name = "optical thermal scanner" desc = "Thermals in the shape of glasses." icon_state = "thermal" item_state = "glasses" @@ -421,25 +424,25 @@ ..() /obj/item/clothing/glasses/thermal/monocle - name = "Thermoncle" - desc = "A monocle thermal." + name = "thermoncle" + desc = "A thermal monocle." icon_state = "thermoncle" flags_cover = null //doesn't protect eyes because it's a monocle, duh /obj/item/clothing/glasses/thermal/eyepatch - name = "Optical Thermal Eyepatch" + name = "optical thermal eyepatch" desc = "An eyepatch with built-in thermal optics" icon_state = "eyepatch" item_state = "eyepatch" /obj/item/clothing/glasses/thermal/jensen - name = "Optical Thermal Implants" + name = "optical thermal implant" desc = "A set of implantable lenses designed to augment your vision" icon_state = "thermalimplants" item_state = "syringe_kit" /obj/item/clothing/glasses/thermal/cyber - name = "Eye Replacement Implant" + name = "eye replacement implant" desc = "An implanted replacement for a left eye with thermal vision capabilities." icon_state = "cybereye-red" item_state = "eyepatch" @@ -454,6 +457,7 @@ vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS see_in_dark = 8 scan_reagents = 1 + prescription = TRUE flags = NODROP flags_cover = null lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 04d603631d4..f0dce270fb6 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -28,7 +28,7 @@ desc = desc + " The display flickers slightly." /obj/item/clothing/glasses/hud/health - name = "\improper Health Scanner HUD" + name = "health scanner HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their health status." icon_state = "healthhud" origin_tech = "magnets=3;biotech=2" @@ -42,7 +42,7 @@ ) /obj/item/clothing/glasses/hud/health/night - name = "\improper Night Vision Health Scanner HUD" + name = "night vision health scanner HUD" desc = "An advanced medical head-up display that allows doctors to find patients in complete darkness." icon_state = "healthhudnight" item_state = "glasses" @@ -60,7 +60,7 @@ tint = 1 /obj/item/clothing/glasses/hud/diagnostic - name = "Diagnostic HUD" + name = "diagnostic HUD" desc = "A heads-up display capable of analyzing the integrity and status of robotics and exosuits." icon_state = "diagnostichud" origin_tech = "magnets=2;engineering=2" @@ -73,7 +73,7 @@ ) /obj/item/clothing/glasses/hud/diagnostic/night - name = "Night Vision Diagnostic HUD" + name = "night vision diagnostic HUD" desc = "A robotics diagnostic HUD fitted with a light amplifier." icon_state = "diagnostichudnight" item_state = "glasses" @@ -91,7 +91,7 @@ tint = 1 /obj/item/clothing/glasses/hud/security - name = "\improper Security HUD" + name = "security HUD" desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status and security records." icon_state = "securityhud" origin_tech = "magnets=3;combat=2" @@ -115,7 +115,7 @@ lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE /obj/item/clothing/glasses/hud/security/night - name = "\improper Night Vision Security HUD" + name = "night vision security HUD" desc = "An advanced heads-up display which provides id data and vision in complete darkness." icon_state = "securityhudnight" origin_tech = "magnets=4;combat=4;plasmatech=4;engineering=5" @@ -146,7 +146,7 @@ prescription = 1 /obj/item/clothing/glasses/hud/hydroponic - name = "Hydroponic HUD" + name = "hydroponic HUD" desc = "A heads-up display capable of analyzing the health and status of plants growing in hydro trays and soil." icon_state = "hydroponichud" HUDType = DATA_HUD_HYDROPONIC @@ -158,7 +158,7 @@ ) /obj/item/clothing/glasses/hud/hydroponic/night - name = "Night Vision Hydroponic HUD" + name = "night vision hydroponic HUD" desc = "A hydroponic HUD fitted with a light amplifier." icon_state = "hydroponichudnight" item_state = "glasses" @@ -201,7 +201,7 @@ toggle_veil() /obj/item/clothing/glasses/hud/skills - name = "Skills HUD" + name = "skills HUD" desc = "A heads-up display capable of showing the employment history records of NT crew members." icon_state = "skill" item_state = "glasses" @@ -214,7 +214,7 @@ ) /obj/item/clothing/glasses/hud/skills/sunglasses - name = "Skills HUD Sunglasses" + name = "skills HUD sunglasses" desc = "Sunglasses with a build-in skills HUD, showing the employment history of nearby NT crew members." icon_state = "sunhudskill" see_in_dark = 1 // None of these three can be converted to booleans. Do not try it. diff --git a/code/modules/clothing/gloves/color.dm b/code/modules/clothing/gloves/color.dm index 019b37a566f..146ca3cf25e 100644 --- a/code/modules/clothing/gloves/color.dm +++ b/code/modules/clothing/gloves/color.dm @@ -1,6 +1,6 @@ /obj/item/clothing/gloves/color/yellow - desc = "These gloves will protect the wearer from electric shock." name = "insulated gloves" + desc = "These gloves will protect the wearer from electric shock." icon_state = "yellow" item_state = "ygloves" siemens_coefficient = 0 @@ -52,8 +52,8 @@ siemens_coefficient = 1 /obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap - desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." name = "budget insulated gloves" + desc = "These gloves are cheap copies of the coveted gloves, no way this can end badly." icon_state = "yellow" item_state = "ygloves" siemens_coefficient = 1 //Set to a default of 1, gets overridden in New() @@ -66,16 +66,16 @@ siemens_coefficient = pick(0,0.5,0.5,0.5,0.5,0.75,1.5) /obj/item/clothing/gloves/color/fyellow/old - desc = "Old and worn out insulated gloves, hopefully they still work." name = "worn out insulated gloves" + desc = "Old and worn out insulated gloves, hopefully they still work." /obj/item/clothing/gloves/color/fyellow/old/New() ..() siemens_coefficient = pick(0,0,0,0.5,0.5,0.5,0.75) /obj/item/clothing/gloves/color/black - desc = "These gloves are fire-resistant." name = "black gloves" + desc = "These gloves are fire-resistant." icon_state = "black" item_state = "bgloves" item_color="brown" @@ -226,8 +226,8 @@ /obj/item/clothing/gloves/color/captain - desc = "Regal blue gloves, with a nice gold trim. Swanky." name = "captain's gloves" + desc = "Regal blue gloves, with a nice gold trim. Swanky." icon_state = "captain" item_state = "egloves" item_color = "captain" diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index 4345a4542d2..a6ece08feee 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -12,8 +12,8 @@ clipped = 1 /obj/item/clothing/gloves/cyborg - desc = "beep boop borp" name = "cyborg gloves" + desc = "beep boop borp" icon_state = "black" item_state = "r_hands" @@ -25,8 +25,8 @@ can_leave_fibers = FALSE /obj/item/clothing/gloves/combat - desc = "These tactical gloves are both insulated and offer protection from heat sources." name = "combat gloves" + desc = "These tactical gloves are both insulated and offer protection from heat sources." icon_state = "combat" item_state = "swat_gl" siemens_coefficient = 0 @@ -55,8 +55,8 @@ armor = list("melee" = 15, "bullet" = 25, "laser" = 15, "energy" = 15, "bomb" = 20, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/gloves/botanic_leather - desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin." name = "botanist's leather gloves" + desc = "These leather gloves protect against thorns, barbs, prickles, spikes and other harmful objects of floral origin." icon_state = "leather" item_state = "ggloves" permeability_coefficient = 0.9 @@ -68,8 +68,8 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 70, "acid" = 30) /obj/item/clothing/gloves/batmangloves - desc = "Used for handling all things bat related." name = "batgloves" + desc = "Used for handling all things bat related." icon_state = "bmgloves" item_state = "bmgloves" item_color="bmgloves" @@ -157,7 +157,7 @@ update_icon() /obj/item/clothing/gloves/fingerless/rapid - name = "Gloves of the North Star" + name = "gloves of the North Star" desc = "Just looking at these fills you with an urge to beat the shit out of people." var/accepted_intents = list(INTENT_HARM) var/click_speed_modifier = CLICK_CD_RAPID @@ -166,20 +166,20 @@ var/mob/living/M = loc if(M.a_intent in accepted_intents) - if(istype(M.mind.martial_art, /datum/martial_art/cqc)) + if(M.mind.martial_art || HAS_TRAIT(M, TRAIT_HULK)) M.changeNext_move(CLICK_CD_MELEE)//normal attack speed for hulk, CQC and Carp. else M.changeNext_move(click_speed_modifier) .= FALSE /obj/item/clothing/gloves/fingerless/rapid/admin - name = "Advanced Interactive Gloves" + name = "advanced interactive gloves" desc = "The gloves are covered in indecipherable buttons and dials, your mind warps by merely looking at them." accepted_intents = list(INTENT_HELP, INTENT_DISARM, INTENT_GRAB, INTENT_HARM) click_speed_modifier = 0 siemens_coefficient = 0 /obj/item/clothing/gloves/fingerless/rapid/headpat - name = "Gloves of Headpats" + name = "gloves of headpats" desc = "You feel the irresistable urge to give headpats by merely glimpsing these." accepted_intents = list(INTENT_HELP) diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index b5d4b94038f..95c4e04b3ac 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -55,14 +55,12 @@ icon_state = "hardhat0_orange" item_state = "hardhat0_orange" item_color = "orange" - dog_fashion = null /obj/item/clothing/head/hardhat/red + name = "firefighter helmet" icon_state = "hardhat0_red" item_state = "hardhat0_red" item_color = "red" - dog_fashion = null - name = "firefighter helmet" flags = STOPSPRESSUREDMAGE heat_protection = HEAD max_heat_protection_temperature = FIRE_HELM_MAX_TEMP_PROTECT @@ -84,14 +82,13 @@ icon_state = "hardhat0_dblue" item_state = "hardhat0_dblue" item_color = "dblue" - dog_fashion = null /obj/item/clothing/head/hardhat/atmos + name = "atmospheric technician's firefighting helmet" + desc = "A firefighter's helmet, able to keep the user cool in any situation." icon_state = "hardhat0_atmos" item_state = "hardhat0_atmos" item_color = "atmos" - name = "atmospheric technician's firefighting helmet" - desc = "A firefighter's helmet, able to keep the user cool in any situation." flags = STOPSPRESSUREDMAGE flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE heat_protection = HEAD diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index bafe3a9f0a9..e8ce88dba1e 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -162,7 +162,7 @@ icon_state = "roman" item_state = "roman" strip_delay = 100 - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/roman /obj/item/clothing/head/helmet/roman/fake desc = "An ancient helmet made of plastic and leather." diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 3ed9aafda44..9f01c2edcdb 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -25,7 +25,7 @@ name = "captain's parade cap" desc = "Worn only by Captains with an abundance of class." icon_state = "capcap" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/captain //Head of Personnel /obj/item/clothing/head/hopcap @@ -101,16 +101,18 @@ //Security /obj/item/clothing/head/HoS - name = "head of security cap" + name = "head of security's cap" desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" armor = list("melee" = 40, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 60) strip_delay = 80 + dog_fashion = /datum/dog_fashion/head/HoS /obj/item/clothing/head/HoS/beret - name = "head of security beret" + name = "head of security's beret" desc = "A robust beret for the Head of Security, for looking stylish while not sacrificing protection." icon_state = "beret_hos_black" + dog_fashion = /datum/dog_fashion/head/HoS /obj/item/clothing/head/warden name = "warden's police hat" @@ -134,7 +136,7 @@ icon_state = "beret_officer" armor = list("melee" = 35, "bullet" = 30, "laser" = 30,"energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) strip_delay = 60 - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/beret/sec /obj/item/clothing/head/beret/sec/warden name = "warden's beret" @@ -153,7 +155,7 @@ icon_state = "beret_atmospherics" /obj/item/clothing/head/beret/ce - name = "chief engineer beret" + name = "chief engineer's beret" desc = "A white beret with the engineering insignia emblazoned on it. Its owner knows what they're doing. Probably." icon_state = "beret_ce" @@ -180,15 +182,19 @@ /obj/item/clothing/head/surgery/purple desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs. This one is deep purple." icon_state = "surgcap_purple" + dog_fashion = /datum/dog_fashion/head/surgery /obj/item/clothing/head/surgery/blue desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs. This one is baby blue." icon_state = "surgcap_blue" + dog_fashion = /datum/dog_fashion/head/surgery /obj/item/clothing/head/surgery/green desc = "A cap surgeons wear during operations. Keeps their hair from tickling your internal organs. This one is dark green." icon_state = "surgcap_green" + dog_fashion = /datum/dog_fashion/head/surgery /obj/item/clothing/head/surgery/black - desc = "A cap coroners wear during autopsies. Keeps their hair from falling into the cadavers. It is as dark than the coroner's humor." + desc = "A cap coroners wear during autopsies. Keeps their hair from falling into the cadavers. It is as dark as the coroner's humor." icon_state = "surgcap_black" + dog_fashion = /datum/dog_fashion/head/surgery diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 543ba75160a..388fa0374ed 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -21,10 +21,11 @@ item_state = "pwig" /obj/item/clothing/head/justice_wig - name = "Justice wig" + name = "justice wig" desc = "A fancy powdered wig given to arbitrators of the law. It looks itchy." icon_state = "jwig" item_state = "jwig" + dog_fashion = /datum/dog_fashion/head/justice_wig /obj/item/clothing/head/beret/blue icon_state = "beret_blue" @@ -187,6 +188,7 @@ icon_state = "bowler_hat" item_state = "bowler_hat" desc = "For that industrial age look." + dog_fashion = /datum/dog_fashion/head/bowlerhat /obj/item/clothing/head/beaverhat name = "beaver hat" @@ -298,10 +300,10 @@ flags = BLOCKHAIR /obj/item/clothing/head/xenos - name = "xenos helmet" + name = "xeno helmet" + desc = "A helmet made out of chitinous alien hide." icon_state = "xenos" item_state = "xenos_helm" - desc = "A helmet made out of chitinous alien hide." flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE @@ -330,51 +332,51 @@ "Vox" = 'icons/mob/species/vox/head.dmi' ) -/obj/item/clothing/head/stalhelm - name = "Clown Stalhelm" +/obj/item/clothing/head/stalhelm //Why do these exist + name = "clown stalhelm" desc = "The typical clown soldier's helmet." icon_state = "stalhelm" item_state = "stalhelm" flags = BLOCKHAIR flags_inv = HIDEEARS -/obj/item/clothing/head/panzer - name = "Clown HONKMech Cap" +/obj/item/clothing/head/panzer //Why + name = "clown HONKMech cap" desc = "The softcap worn by HONK Mech pilots." icon_state = "panzercap" item_state = "panzercap" flags = BLOCKHAIR -/obj/item/clothing/head/naziofficer - name = "Clown Officer Cap" +/obj/item/clothing/head/naziofficer //Ah, come on + name = "clown officer cap" desc = "The peaked clown officer's cap, disturbingly similar to the warden's." icon_state = "officercap" item_state = "officercap" flags = BLOCKHAIR flags_inv = HIDEEARS -/obj/item/clothing/head/beret/purple +/obj/item/clothing/head/beret/purple //Fluff? name = "Pierson Family Beret" desc = " A purple beret, with a small golden crescent moon sewn onto it." icon_state = "beret_purple" item_state = "purpleberet" /obj/item/clothing/head/beret/centcom/officer - name = "officers beret" + name = "officer beret" desc = "A black beret adorned with the shield—a silver kite shield with an engraved sword—of the Nanotrasen security forces, announcing to the world that the wearer is a defender of Nanotrasen." icon_state = "beret_centcom_officer" armor = list("melee" = 40, "bullet" = 30, "laser" = 30,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) strip_delay = 60 /obj/item/clothing/head/beret/centcom/officer/navy - name = "navy blue officers beret" + name = "navy blue officer beret" desc = "A navy blue beret adorned with the shield—a silver kite shield with an engraved sword—of the Nanotrasen security forces, announcing to the world that the wearer is a defender of Nanotrasen." icon_state = "beret_centcom_officer_navy" armor = list("melee" = 40, "bullet" = 30, "laser" = 30,"energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) strip_delay = 60 /obj/item/clothing/head/beret/centcom/captain - name = "captains beret" + name = "captain's beret" desc = "A white beret adorned with the shield—a cobalt kite shield with an engraved sword—of the Nanotrasen security forces, worn only by those captaining a vessel of the Nanotrasen Navy." icon_state = "beret_centcom_captain" @@ -401,8 +403,8 @@ dog_fashion = null /obj/item/clothing/head/cone - desc = "This cone is trying to warn you of something!" name = "warning cone" + desc = "This cone is trying to warn you of something!" icon = 'icons/obj/janitor.dmi' icon_state = "cone" item_state = "cone" @@ -448,7 +450,7 @@ /obj/item/clothing/head/lordadmiralhat - name = "Lord Admiral's Hat" + name = "lord admiral's hat" desc = "A hat suitable for any man of high and exalted rank." icon_state = "lordadmiralhat" item_state = "lordadmiralhat" diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 7ac87e5d5bc..dd2c70692f5 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -38,35 +38,35 @@ desc = "It's a baseball hat in a tasteless red colour." icon_state = "redsoft" item_color = "red" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/blue name = "blue cap" desc = "It's a baseball hat in a tasteless blue colour." icon_state = "bluesoft" item_color = "blue" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/green name = "green cap" desc = "It's a baseball hat in a tasteless green colour." icon_state = "greensoft" item_color = "green" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/yellow name = "yellow cap" desc = "It's a baseball hat in a tasteless yellow colour." icon_state = "yellowsoft" item_color = "yellow" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/grey name = "grey cap" desc = "It's a baseball hat in a tasteful grey colour." icon_state = "greysoft" item_color = "grey" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/orange name = "orange cap" @@ -79,28 +79,28 @@ desc = "It's a baseball hat in a tasteless white colour." icon_state = "mimesoft" item_color = "mime" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/purple name = "purple cap" desc = "It's a baseball hat in a tasteless purple colour." icon_state = "purplesoft" item_color = "purple" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/black name = "black cap" desc = "It's a baseball hat in a tasteless black colour." icon_state = "blacksoft" item_color = "black" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/rainbow name = "rainbow cap" desc = "It's a baseball hat in a bright rainbow of colors." icon_state = "rainbowsoft" item_color = "rainbow" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/sec name = "security cap" @@ -109,7 +109,7 @@ item_color = "sec" armor = list("melee" = 35, "bullet" = 30, "laser" = 30, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 50) strip_delay = 60 - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/softcap /obj/item/clothing/head/soft/sec/corp name = "corporate security cap" @@ -118,15 +118,15 @@ item_color = "corp" /obj/item/clothing/head/soft/solgov - name = "Sol Federation marine cap" - desc = "A soft cap worn by marines of the Sol Federation." + name = "\improper Trans-Solar Federation marine cap" + desc = "A soft cap worn by marines of the Trans-Solar Federation." icon_state = "solgovsoft" item_color = "solgov" dog_fashion = null /obj/item/clothing/head/soft/solgov/command - name = "Sol Federation Lieutenant's cap" - desc = "A soft cap worn by marines of the Sol Federation. The insignia signifies the wearer bears the rank of a Lieutenant." + name = "\improper Trans-Solar Federation lieutenant's cap" + desc = "A soft cap worn by marines of the Trans-Solar Federation. The insignia signifies the wearer bears the rank of a Lieutenant." icon_state = "solgovcsoft" item_color = "solgovc" dog_fashion = null diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 06038a9e9be..090011ce47d 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -22,7 +22,7 @@ adjustmask(user) /obj/item/clothing/mask/luchador - name = "Luchador Mask" + name = "luchador mask" desc = "Worn by robust fighters, flying high to defeat their foes!" icon_state = "luchag" item_state = "luchag" @@ -40,13 +40,13 @@ ) /obj/item/clothing/mask/luchador/tecnicos - name = "Tecnicos Mask" + name = "tecnicos mask" desc = "Worn by robust fighters who uphold justice and fight honorably." icon_state = "luchador" item_state = "luchador" /obj/item/clothing/mask/luchador/rudos - name = "Rudos Mask" + name = "rudos mask" desc = "Worn by robust fighters who are willing to do anything to win." icon_state = "luchar" item_state = "luchar" diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index 42e3f8c1f90..28a0dad852d 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -1,6 +1,6 @@ /obj/item/clothing/mask/breath - desc = "A close-fitting mask that can be connected to an air supply." name = "breath mask" + desc = "A close-fitting mask that can be connected to an air supply." icon_state = "breath" item_state = "breath" flags = AIRTIGHT @@ -31,16 +31,16 @@ adjustmask(user) /obj/item/clothing/mask/breath/medical - desc = "A close-fitting sterile mask that can be connected to an air supply." name = "medical mask" + desc = "A close-fitting sterile mask that can be connected to an air supply." icon_state = "medical" item_state = "medical" permeability_coefficient = 0.01 put_on_delay = 10 /obj/item/clothing/mask/breath/vox - desc = "A weirdly-shaped breath mask." name = "vox breath mask" + desc = "A weirdly-shaped breath mask." icon_state = "voxmask" item_state = "voxmask" permeability_coefficient = 0.01 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index b02bfc537bd..d9a3c6030d1 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -234,7 +234,7 @@ "dredd" = "I am, the LAW!" ) /obj/item/clothing/mask/gas/sechailer/hos - name = "\improper HOS SWAT mask" + name = "head of security's SWAT mask" desc = "A close-fitting tactical mask with an especially aggressive Compli-o-nator 3000. It has a tan stripe." icon_state = "hosmask" aggressiveness = 3 @@ -242,7 +242,7 @@ actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/selectphrase) /obj/item/clothing/mask/gas/sechailer/warden - name = "\improper Warden SWAT mask" + name = "warden's SWAT mask" desc = "A close-fitting tactical mask with an especially aggressive Compli-o-nator 3000. It has a blue stripe." icon_state = "wardenmask" aggressiveness = 3 diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 74afc2e8271..8514c038a58 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -408,7 +408,7 @@ w_class = WEIGHT_CLASS_SMALL /obj/item/clothing/mask/gas/clown_hat/pennywise - name = "Pennywise Mask" + name = "\improper Pennywise mask" desc = "It's the eater of worlds, and of children." icon_state = "pennywise_mask" item_state = "pennywise_mask" diff --git a/code/modules/clothing/shoes/magboots.dm b/code/modules/clothing/shoes/magboots.dm index abbd2a6f03c..1477e4673ad 100644 --- a/code/modules/clothing/shoes/magboots.dm +++ b/code/modules/clothing/shoes/magboots.dm @@ -1,6 +1,6 @@ /obj/item/clothing/shoes/magboots - desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." name = "magboots" + desc = "Magnetic boots, often used during extravehicular activity to ensure the user remains safely attached to the vehicle." icon_state = "magboots0" origin_tech = "materials=3;magnets=4;engineering=4" var/magboot_state = "magboots" @@ -46,8 +46,8 @@ /obj/item/clothing/shoes/magboots/advance - desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer." name = "advanced magboots" + desc = "Advanced magnetic boots that have a lighter magnetic pull, placing less burden on the wearer." icon_state = "advmag0" magboot_state = "advmag" gustprotection = TRUE @@ -56,20 +56,20 @@ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/clothing/shoes/magboots/syndie - desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." name = "blood-red magboots" + desc = "Reverse-engineered magnetic boots that have a heavy magnetic pull. Property of Gorlex Marauders." icon_state = "syndiemag0" magboot_state = "syndiemag" origin_tech = "magnets=4;syndicate=2" /obj/item/clothing/shoes/magboots/syndie/advance //For the Syndicate Strike Team - desc = "Reverse-engineered magboots that appear to be based on an advanced model, as they have a lighter magnetic pull. Property of Gorlex Marauders." name = "advanced blood-red magboots" + desc = "Reverse-engineered magboots that appear to be based on an advanced model, as they have a lighter magnetic pull. Property of Gorlex Marauders." slowdown_active = SHOES_SLOWDOWN /obj/item/clothing/shoes/magboots/clown - desc = "The prankster's standard-issue clowning shoes. Damn they're huge! There's a red light on the side." name = "clown shoes" + desc = "The prankster's standard-issue clowning shoes. Damn they're huge! There's a red light on the side." icon_state = "clownmag0" magboot_state = "clownmag" item_state = "clown_shoes" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index b98661cc70a..ed0fbd60307 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -22,16 +22,16 @@ flags = NOSLIP /obj/item/clothing/shoes/sandal - desc = "A pair of rather plain, wooden sandals." name = "sandals" + desc = "A pair of rather plain, wooden sandals." icon_state = "wizard" strip_delay = 50 put_on_delay = 50 magical = TRUE /obj/item/clothing/shoes/sandal/marisa - desc = "A pair of magic, black shoes." name = "magic shoes" + desc = "A pair of magic, black shoes." icon_state = "black" resistance_flags = FIRE_PROOF | ACID_PROOF @@ -41,8 +41,8 @@ resistance_flags = FIRE_PROOF | ACID_PROOF /obj/item/clothing/shoes/galoshes - desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces." name = "galoshes" + desc = "A pair of yellow rubber boots, designed to prevent slipping on wet surfaces." icon_state = "galoshes" permeability_coefficient = 0.05 flags = NOSLIP @@ -69,8 +69,8 @@ t_loc.MakeDry(TURF_WET_WATER) /obj/item/clothing/shoes/clown_shoes - desc = "The prankster's standard-issue clowning shoes. Damn they're huge! Ctrl-click to toggle the waddle dampeners!" name = "clown shoes" + desc = "The prankster's standard-issue clowning shoes. Damn they're huge! Ctrl-click to toggle the waddle dampeners!" icon_state = "clown" item_state = "clown_shoes" slowdown = SHOES_SLOWDOWN+1 @@ -215,13 +215,13 @@ item_state = "noble_boot" /obj/item/clothing/shoes/sandal/white - name = "White Sandals" + name = "white sandals" desc = "Medical sandals that nerds wear." icon_state = "medsandal" item_color = "medsandal" /obj/item/clothing/shoes/sandal/fancy - name = "Fancy Sandals" + name = "fancy sandals" desc = "FANCY!!." icon_state = "fancysandal" item_color = "fancysandal" diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index aad6a5af1a0..51d06aec017 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -1,6 +1,6 @@ //Skrell space gear. Sleek like a wetsuit. /obj/item/clothing/head/helmet/space/skrell - name = "Skrellian helmet" + name = "skrellian helmet" desc = "Smoothly contoured and polished to a shine. Still looks like a fishbowl." species_restricted = list("Skrell","Human") @@ -15,7 +15,7 @@ item_color = "skrell_helmet_black" /obj/item/clothing/suit/space/skrell - name = "Skrellian hardsuit" + name = "skrellian hardsuit" desc = "Seems like a wetsuit with reinforced plating seamlessly attached to it. Very chic." species_restricted = list("Skrell","Human") @@ -175,8 +175,8 @@ ) /obj/item/clothing/gloves/color/yellow/vox - desc = "These bizarre gauntlets seem to be fitted for... bird claws?" name = "insulated gauntlets" + desc = "These bizarre gauntlets seem to be fitted for... bird claws?" icon_state = "gloves-vox" item_state = "gloves-vox" siemens_coefficient = 0 @@ -190,8 +190,8 @@ ) /obj/item/clothing/shoes/magboots/vox - desc = "A pair of heavy, jagged armoured foot pieces, seemingly suitable for a velociraptor." name = "vox magclaws" + desc = "A pair of heavy, jagged armoured foot pieces, seemingly suitable for a velociraptor." item_state = "boots-vox" icon_state = "boots-vox" icon = 'icons/obj/clothing/species/vox/shoes.dmi' diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index cd3599b86b7..aab301df1a8 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -1,5 +1,5 @@ /obj/item/clothing/head/helmet/space/chronos - name = "Chronosuit Helmet" + name = "chronosuit helmet" desc = "A white helmet with an opaque blue visor." icon_state = "chronohelmet" item_state = "chronohelmet" @@ -19,7 +19,7 @@ /obj/item/clothing/suit/space/chronos - name = "Chronosuit" + name = "chronosuit" desc = "An advanced spacesuit equipped with teleportation and anti-compression technology" icon_state = "chronosuit" item_state = "chronosuit" @@ -178,7 +178,7 @@ /obj/effect/chronos_cam - name = "Chronosuit View" + name = "chronosuit view" density = 0 anchored = 1 invisibility = 101 diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index dfcdedd4b2b..f5d7d500029 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -285,9 +285,9 @@ max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /obj/item/clothing/suit/space/hardsuit/engine/elite - icon_state = "hardsuit-white" name = "advanced hardsuit" desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish." + icon_state = "hardsuit-white" item_state = "ce_hardsuit" armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 90) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection @@ -310,9 +310,9 @@ brightness_on = 7 /obj/item/clothing/suit/space/hardsuit/mining - icon_state = "hardsuit-mining" name = "mining hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." + icon_state = "hardsuit-mining" item_state = "mining_hardsuit" max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT resistance_flags = FIRE_PROOF @@ -482,9 +482,9 @@ scan_reagents = 1 //Generally worn by the CMO, so they'd get utility off of seeing reagents /obj/item/clothing/suit/space/hardsuit/medical - icon_state = "hardsuit-medical" name = "medical hardsuit" desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort." + icon_state = "hardsuit-medical" item_state = "medical_hardsuit" allowed = list(/obj/item/flashlight,/obj/item/tank/internals,/obj/item/storage/firstaid,/obj/item/healthanalyzer,/obj/item/stack/medical,/obj/item/rad_laser) armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75) @@ -562,9 +562,9 @@ armor = list("melee" = 35, "bullet" = 15, "laser" = 30,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) /obj/item/clothing/suit/space/hardsuit/security - icon_state = "hardsuit-sec" name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." + icon_state = "hardsuit-sec" item_state = "sec_hardsuit" armor = list("melee" = 35, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75) allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank/internals,/obj/item/melee/baton,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/restraints/handcuffs) @@ -597,9 +597,9 @@ sprite_sheets = null /obj/item/clothing/suit/space/hardsuit/singuloth - icon_state = "hardsuit-singuloth" name = "singuloth knight's armor" desc = "This is a ceremonial armor from the chapter of the Singuloth Knights. It's made of pure forged adamantium." + icon_state = "hardsuit-singuloth" item_state = "singuloth_hardsuit" flags = STOPSPRESSUREDMAGE armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 100, fire = 95, acid = 95) @@ -662,6 +662,12 @@ return mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER + 0.01) /obj/item/clothing/head/helmet/space/hardsuit/shielded + name = "shielded hardsuit helmet" + desc = "A hardsuit helmet with built in energy shielding. Will rapidly recharge when not under fire." + icon_state = "hardsuit0-sec" + item_state = "sec_helm" + item_color = "sec" + armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100) resistance_flags = FIRE_PROOF | ACID_PROOF diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index c3ce1778a27..d732f3a00ab 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -81,7 +81,7 @@ ) /obj/item/clothing/head/helmet/space/deathsquad/beret - name = "officer's beret" + name = "officer beret" desc = "An armored beret commonly used by special operations officers." icon_state = "beret_officer" armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) @@ -158,7 +158,7 @@ //Paramedic EVA suit /obj/item/clothing/head/helmet/space/eva/paramedic - name = "Paramedic EVA helmet" + name = "paramedic EVA helmet" desc = "A brand new paramedic EVA helmet. It seems to mold to your head shape. Used for retrieving bodies in space." icon_state = "paramedic-eva-helmet" item_state = "paramedic-eva-helmet" @@ -179,7 +179,7 @@ ) /obj/item/clothing/suit/space/eva/paramedic - name = "Paramedic EVA suit" + name = "paramedic EVA suit" icon_state = "paramedic-eva" item_state = "paramedic-eva" desc = "A brand new paramedic EVA suit. The nitrile seems a bit too thin to be space proof. Used for retrieving bodies in space." @@ -242,7 +242,7 @@ //Mime's Hardsuit /obj/item/clothing/head/helmet/space/eva/mime - name = "mime eva helmet" + name = "mime EVA helmet" // icon = 'spaceciv.dmi' desc = ". . ." icon_state = "spacemimehelmet" @@ -253,7 +253,7 @@ sprite_sheets_obj = null /obj/item/clothing/suit/space/eva/mime - name = "mime eva suit" + name = "mime EVA suit" // icon = 'spaceciv.dmi' desc = ". . ." icon_state = "spacemime_suit" @@ -264,7 +264,7 @@ sprite_sheets_obj = null /obj/item/clothing/head/helmet/space/eva/clown - name = "clown eva helmet" + name = "clown EVA helmet" // icon = 'spaceciv.dmi' desc = "An EVA helmet specifically designed for the clown. SPESSHONK!" icon_state = "clownhelmet" @@ -275,7 +275,7 @@ sprite_sheets_obj = null /obj/item/clothing/suit/space/eva/clown - name = "clown eva suit" + name = "clown EVA suit" // icon = 'spaceciv.dmi' desc = "An EVA suit specifically designed for the clown. SPESSHONK!" icon_state = "spaceclown_suit" diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index b27f7a66729..e672852858d 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -147,7 +147,7 @@ item_state = "scientist_envirohelm" /obj/item/clothing/head/helmet/space/plasmaman/rd - name = "research director plasma envirosuit helmet" + name = "research director's plasma envirosuit helmet" desc = "A plasmaman envirohelmet designed for the research director." icon_state = "rd_envirohelm" item_state = "rd_envirohelm" @@ -209,7 +209,7 @@ item_state = "chef_envirohelm" /obj/item/clothing/head/helmet/space/plasmaman/librarian - name = "librarian's plasma envirosuit helmet" + name = "librarian plasma envirosuit helmet" desc = "A slight modification on a traditional voidsuit helmet, this helmet was Nanotrasen's first solution to the *logistical problems* that come with employing plasmamen. Despite their limitations, these helmets still see use by historian and old-styled plasmamen alike." icon_state = "prototype_envirohelm" item_state = "prototype_envirohelm" @@ -243,19 +243,19 @@ visor_icon = "clown_envisor" /obj/item/clothing/head/helmet/space/plasmaman/hop - name = "head of personnel envirosuit helmet" + name = "head of personnel's envirosuit helmet" desc = "A plasmaman envirohelm that reeks of bureaucracy." icon_state = "hop_envirohelm" item_state = "hop_envirohelm" /obj/item/clothing/head/helmet/space/plasmaman/captain - name = "captain envirosuit helmet" + name = "captain's envirosuit helmet" desc = "A plasmaman envirohelm designed with the insignia and markings befitting a captain." icon_state = "cap_envirohelm" item_state = "cap_envirohelm" /obj/item/clothing/head/helmet/space/plasmaman/blueshield - name = "blueshield envirosuit helmet" + name = "blueshield's envirosuit helmet" desc = "A plasmaman envirohelm designed for the blueshield." icon_state = "bs_envirohelm" item_state = "bs_envirohelm" diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 8e702089d7f..52a230fa60b 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -31,55 +31,55 @@ //Green syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/green - name = "Green Space Helmet" + name = "green space helmet" icon_state = "syndicate-helm-green" item_state = "syndicate-helm-green" /obj/item/clothing/suit/space/syndicate/green - name = "Green Space Suit" + name = "green space suit" icon_state = "syndicate-green" item_state = "syndicate-green" //Dark green syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/green/dark - name = "Dark Green Space Helmet" + name = "dark green space helmet" icon_state = "syndicate-helm-green-dark" item_state = "syndicate-helm-green-dark" /obj/item/clothing/suit/space/syndicate/green/dark - name = "Dark Green Space Suit" + name = "dark green space suit" icon_state = "syndicate-green-dark" item_state = "syndicate-green-dark" //Orange syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/orange - name = "Orange Space Helmet" + name = "orange space helmet" icon_state = "syndicate-helm-orange" item_state = "syndicate-helm-orange" /obj/item/clothing/suit/space/syndicate/orange - name = "Orange Space Suit" + name = "orange space suit" icon_state = "syndicate-orange" item_state = "syndicate-orange" //Blue syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/blue - name = "Blue Space Helmet" + name = "blue space helmet" icon_state = "syndicate-helm-blue" item_state = "syndicate-helm-blue" /obj/item/clothing/suit/space/syndicate/blue - name = "Blue Space Suit" + name = "blue space suit" icon_state = "syndicate-blue" item_state = "syndicate-blue" //Black syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black" item_state = "syndicate-helm-black" @@ -91,7 +91,7 @@ resistance_flags = ACID_PROOF /obj/item/clothing/suit/space/syndicate/black - name = "Black Space Suit" + name = "black space suit" icon_state = "syndicate-black" item_state = "syndicate-black" @@ -104,55 +104,55 @@ //Black-green syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/green - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black-green" item_state = "syndicate-helm-black-green" /obj/item/clothing/suit/space/syndicate/black/green - name = "Black and Green Space Suit" + name = "black and green space suit" icon_state = "syndicate-black-green" item_state = "syndicate-black-green" //Black-blue syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/blue - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black-blue" item_state = "syndicate-helm-black-blue" /obj/item/clothing/suit/space/syndicate/black/blue - name = "Black and Blue Space Suit" + name = "black and blue space suit" icon_state = "syndicate-black-blue" item_state = "syndicate-black-blue" //Black medical syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/med - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black-med" item_state = "syndicate-helm-black" /obj/item/clothing/suit/space/syndicate/black/med - name = "Green Space Suit" + name = "green space suit" icon_state = "syndicate-black-med" item_state = "syndicate-black" //Black-orange syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/orange - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black-orange" item_state = "syndicate-helm-black" /obj/item/clothing/suit/space/syndicate/black/orange - name = "Black and Orange Space Suit" + name = "black and orange space suit" icon_state = "syndicate-black-orange" item_state = "syndicate-black" //Black-red syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/red - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black-red" item_state = "syndicate-helm-black-red" @@ -164,7 +164,7 @@ resistance_flags = ACID_PROOF /obj/item/clothing/suit/space/syndicate/black/red - name = "Black and Red Space Suit" + name = "black and red space suit" icon_state = "syndicate-black-red" item_state = "syndicate-black-red" @@ -178,12 +178,12 @@ //Black with yellow/red engineering syndicate space suit /obj/item/clothing/head/helmet/space/syndicate/black/engie - name = "Black Space Helmet" + name = "black space helmet" icon_state = "syndicate-helm-black-engie" item_state = "syndicate-helm-black" /obj/item/clothing/suit/space/syndicate/black/engie - name = "Black Engineering Space Suit" + name = "black engineering space suit" icon_state = "syndicate-black-engie" item_state = "syndicate-black" diff --git a/code/modules/clothing/spacesuits/void.dm b/code/modules/clothing/spacesuits/void.dm index 482c0fc137d..e279b4697d3 100644 --- a/code/modules/clothing/spacesuits/void.dm +++ b/code/modules/clothing/spacesuits/void.dm @@ -1,7 +1,7 @@ //Voidsuits /obj/item/clothing/head/helmet/space/nasavoid - name = "NASA Void Helmet" + name = "\improper NASA void helmet" desc = "A high tech, NASA Centcom branch designed space suit helmet. Used for AI satellite maintenance." icon_state = "void-red" item_state = "void" @@ -59,26 +59,26 @@ //Captian's Suit, like the other captian's suit, but looks better, at the cost of armor /obj/item/clothing/head/helmet/space/nasavoid/captain - name = "Fancy Retro Void Helmet" + name = "fancy retro void helmet" icon_state = "void-captian" desc = "A high tech, NASA Centcom branch designed space suit helmet. Used for AI satellite maintenance. This one is fit for a captain." /obj/item/clothing/suit/space/nasavoid/captain - name = "Fancy NASA Void Suit" + name = "fancy NASA void suit" icon_state = "void-captian" desc = "A high tech, NASA Centcom branch designed space suit. Used for AI satellite maintenance. This one is fit for a captain." //Syndi's suit, on par with a blood red softsuit /obj/item/clothing/head/helmet/space/nasavoid/syndi - name = "Blood Red Retro Void Helmet" + name = "blood-red retro void helmet" icon_state = "void-syndi" desc = "A high tech, NASA Centcom branch designed space suit helmet. This one looks rather suspicious." flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE armor = list("melee" = 40, "bullet" = 50, "laser" = 30,"energy" = 15, "bomb" = 30, "bio" = 30, "rad" = 30, "fire" = 80, "acid" = 85) /obj/item/clothing/suit/space/nasavoid/syndi - name = "Blood Red NASA Void Suit" + name = "blood-red NASA void suit" icon_state = "void-syndi" desc = "A high tech, NASA Centcom branch designed space suit. This one looks rather suspicious." w_class = WEIGHT_CLASS_NORMAL @@ -88,7 +88,7 @@ //random spawner /obj/effect/nasavoidsuitspawner - name = "NASA Void Suit Spawner" + name = "\improper NASA void suit spawner" icon = 'icons/obj/clothing/suits.dmi' icon_state = "void-red" desc = "You shouldn't see this, a spawner for NASA Void Suits." diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 650e8edf141..db127c5b100 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -81,7 +81,7 @@ ..() /obj/item/clothing/suit/armor/vest/blueshield - name = "blueshield security armor" + name = "blueshield's security armor" desc = "An armored vest with the badge of a Blueshield Lieutenant." icon_state = "blueshield" item_state = "blueshield" @@ -139,7 +139,7 @@ sprite_sheets = null /obj/item/clothing/suit/armor/vest/warden - name = "Warden's armored jacket" + name = "warden's armored jacket" desc = "An armored jacket with silver rank pips and livery." icon_state = "warden_jacket" item_state = "armor" @@ -172,7 +172,7 @@ item_state = "capspacesuit" /obj/item/clothing/suit/armor/riot - name = "Riot Suit" + name = "riot suit" desc = "A suit of armor with heavy padding to protect against melee attacks. Looks like it might impair movement." icon_state = "riot" item_state = "swat_suit" @@ -223,7 +223,7 @@ armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 40, "acid" = 50) /obj/item/clothing/suit/armor/bulletproof - name = "Bulletproof Vest" + name = "bulletproof vest" desc = "A bulletproof vest that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." icon_state = "bulletproof" item_state = "armor" @@ -233,7 +233,7 @@ put_on_delay = 50 /obj/item/clothing/suit/armor/laserproof - name = "Ablative Armor Vest" + name = "ablative armor vest" desc = "A vest that excels in protecting the wearer against energy projectiles. Projects an energy field around the user, allowing a chance of energy projectile deflection no matter where on the user it would hit." icon_state = "armor_reflec" item_state = "armor_reflec" @@ -261,7 +261,8 @@ name = "reactive armor" desc = "Doesn't seem to do much for some reason." var/active = FALSE - var/emp_d = FALSE + /// Is the armor disabled, and prevented from reactivating temporarly? + var/disabled = FALSE icon_state = "reactiveoff" item_state = "reactiveoff" blood_overlay_type = "armor" @@ -272,8 +273,8 @@ /obj/item/clothing/suit/armor/reactive/attack_self(mob/user) active = !(active) - if(emp_d) - to_chat(user, "[src] is disabled from an electromagnetic pulse!") + if(disabled) + to_chat(user, "[src] is disabled and rebooting!") return if(active) to_chat(user, "[src] is now active.") @@ -290,18 +291,37 @@ A.UpdateButtonIcon() /obj/item/clothing/suit/armor/reactive/emp_act(severity) + var/emp_power = 5 + (severity-1 ? 0 : 5) + disable(emp_power) + ..() + +/obj/item/clothing/suit/armor/reactive/proc/disable(disable_time = 0) active = FALSE - emp_d = TRUE + disabled = TRUE icon_state = "reactiveoff" item_state = "reactiveoff" if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/C = loc C.update_inv_wear_suit() - addtimer(CALLBACK(src, .proc/reboot), 100 / severity) - ..() + addtimer(CALLBACK(src, .proc/reboot), disable_time SECONDS) /obj/item/clothing/suit/armor/reactive/proc/reboot() - emp_d = FALSE + disabled = FALSE + active = TRUE + icon_state = "reactive" + item_state = "reactive" + if(ishuman(loc)) + var/mob/living/carbon/human/C = loc + C.update_inv_wear_suit() + +/obj/item/clothing/suit/armor/reactive/proc/reaction_check(hitby) + if(prob(hit_reaction_chance)) + if(istype(hitby, /obj/item/projectile)) + var/obj/item/projectile/P = hitby + if(!P.nodamage) + return TRUE + else + return TRUE //When the wearer gets hit, this armor will teleport the user a short distance away (to safety or to more danger, no one knows. That's the fun of it!) /obj/item/clothing/suit/armor/reactive/teleport @@ -312,7 +332,7 @@ /obj/item/clothing/suit/armor/reactive/teleport/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) return 0 - if(prob(hit_reaction_chance)) + if(reaction_check(hitby)) var/mob/living/carbon/human/H = owner owner.visible_message("The reactive teleport system flings [H] clear of [attack_text]!") var/list/turfs = new/list() @@ -332,33 +352,35 @@ if(!isturf(picked)) return H.forceMove(picked) - return 1 - return 0 + return TRUE + return FALSE /obj/item/clothing/suit/armor/reactive/fire name = "reactive incendiary armor" + desc = "This armor uses the power of a pyro anomaly core to shoot protective jets of fire." /obj/item/clothing/suit/armor/reactive/fire/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) - return 0 - if(prob(hit_reaction_chance)) + return FALSE + if(reaction_check(hitby)) owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!") for(var/mob/living/carbon/C in range(6, owner)) if(C != owner) C.fire_stacks += 8 C.IgniteMob() owner.fire_stacks = -20 - return 1 - return 0 + return TRUE + return FALSE /obj/item/clothing/suit/armor/reactive/stealth name = "reactive stealth armor" + desc = "This armor uses an anomaly core combined with holographic projectors to make the user invisible temporarly, and make a fake image of the user." /obj/item/clothing/suit/armor/reactive/stealth/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) - return 0 - if(prob(hit_reaction_chance)) + return FALSE + if(reaction_check(hitby)) var/mob/living/simple_animal/hostile/illusion/escape/E = new(owner.loc) E.Copy_Parent(owner, 50) E.GiveTarget(owner) //so it starts running right away @@ -367,23 +389,64 @@ owner.visible_message("[owner] is hit by [attack_text] in the chest!") //We pretend to be hit, since blocking it would stop the message otherwise spawn(40) owner.alpha = initial(owner.alpha) - return 1 + return TRUE /obj/item/clothing/suit/armor/reactive/tesla name = "reactive tesla armor" + desc = "This armor uses the power of a flux anomaly core to protect the user in shocking ways." /obj/item/clothing/suit/armor/reactive/tesla/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) if(!active) - return 0 - if(prob(hit_reaction_chance)) + return FALSE + if(reaction_check(hitby)) owner.visible_message("The [src] blocks the [attack_text], sending out arcs of lightning!") for(var/mob/living/M in view(6, owner)) if(M == owner) continue owner.Beam(M,icon_state="lightning[rand(1, 12)]",icon='icons/effects/effects.dmi',time=5) - M.adjustFireLoss(25) + M.adjustFireLoss(20) playsound(M, 'sound/machines/defib_zap.ogg', 50, 1, -1) - return 1 + disable(rand(2, 5)) // let's not have buckshot set it off 4 times and do 80 burn damage. + return TRUE + +/obj/item/clothing/suit/armor/reactive/repulse + name = "reactive repulse armor" + desc = "An experimental suit of armor that violently throws back attackers with the power of a gravitational anomaly core." + ///How strong the reactive armor is for throwing + var/repulse_power = 3 + /// How far away are we finding things to throw + var/repulse_range = 5 + +/obj/item/clothing/suit/armor/reactive/repulse/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK) + if(!active) + return FALSE + if(reaction_check(hitby)) + owner.visible_message("[src] blocks [attack_text], converting the attack into a wave of force!") + var/list/thrownatoms = list() + for(var/turf/T in range(repulse_range, owner)) //Done this way so things don't get thrown all around hilariously. + for(var/atom/movable/AM in T) + thrownatoms += AM + + for(var/am in thrownatoms) + var/atom/movable/AM = am + if(AM == owner || AM.anchored) + continue + + var/throwtarget = get_edge_target_turf(owner, get_dir(owner, get_step_away(AM, owner))) + var/distfromuser = get_dist(owner, AM) + if(distfromuser == 0) + if(isliving(AM)) + var/mob/living/M = AM + M.Weaken(3) + to_chat(M, "You're slammed into the floor by [owner]'s reactive armor!") + else + if(isliving(AM)) + var/mob/living/M = AM + to_chat(M, "You're thrown back by the [owner]'s reactive armor!") + spawn(0) + AM.throw_at(throwtarget, ((clamp((repulse_power - (clamp(distfromuser - 2, 0, distfromuser))), 3, repulse_power))), 1)//So stuff gets tossed around at the same time. + disable(rand(2, 5)) + return TRUE //All of the armor below is mostly unused @@ -427,13 +490,13 @@ hide_tail_by_species = list("Vox") /obj/item/clothing/suit/armor/tdome/red - name = "Red Thunderdome Armor" + name = "red Thunderdome armor" desc = "Armor worn by the red Thunderdome team." icon_state = "tdred" item_state = "tdred" /obj/item/clothing/suit/armor/tdome/green - name = "Green Thunderdome Armor" + name = "green Thunderdome armor" desc = "Armor worn by the green Thunderdome team." icon_state = "tdgreen" item_state = "tdgreen" diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index f2bc0f1bd8e..996ce7e3ad9 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -95,7 +95,7 @@ //Plague Dr mask can be found in clothing/masks/gasmask.dm /obj/item/clothing/suit/bio_suit/plaguedoctorsuit - name = "Plague doctor suit" + name = "plague doctor suit" desc = "It protected doctors from the Black Death, back then. You bet your arse it's gonna help you against viruses." icon_state = "plaguedoctor" item_state = "bio_suit" diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index 49b552d099d..b3fd2c5aa85 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -17,7 +17,7 @@ //Brig Physician /obj/item/clothing/suit/storage/brigdoc - name = "brig physician vest" + name = "brig physician's vest" desc = "A vest often worn by doctors caring for inmates." icon_state = "brigphysician-vest" item_state = "brigphysician-vest" @@ -209,7 +209,7 @@ //Blueshield /obj/item/clothing/suit/storage/blueshield - name = "blueshield coat" + name = "blueshield's coat" desc = "NT deluxe ripoff. You finally have your own coat." icon_state = "blueshieldcoat" item_state = "blueshieldcoat" diff --git a/code/modules/clothing/suits/labcoat.dm b/code/modules/clothing/suits/labcoat.dm index 5281a32676e..5e286ccb7e5 100644 --- a/code/modules/clothing/suits/labcoat.dm +++ b/code/modules/clothing/suits/labcoat.dm @@ -59,7 +59,7 @@ item_state = "labcoat_mort_open" /obj/item/clothing/suit/storage/labcoat/emt - name = "EMT labcoat" + name = "\improper EMT labcoat" desc = "A comfortable suit for paramedics. Has dark colours." icon_state = "labcoat_emt_open" item_state = "labcoat_emt_open" diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 6efe1d38026..ff4afe5d2ce 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -83,7 +83,7 @@ /obj/item/clothing/suit/greatcoat name = "great coat" - desc = "A Nazi great coat." + desc = "A Nazi great coat." //A what icon_state = "nazi" item_state = "nazi" @@ -708,7 +708,7 @@ icon_state = "white_jacket" /obj/item/clothing/suit/xenos - name = "xenos suit" + name = "xeno suit" desc = "A suit made out of chitinous alien hide." icon_state = "xenos" item_state = "xenos_helm" @@ -762,7 +762,7 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL /obj/item/clothing/head/mercy_hood - name = "Mercy Hood" + name = "mercy Hood" desc = "A soft white hood made of a synthetic fiber that provides improved protection against biohazards. Its elegant design allows a clear field of vision." icon_state = "mercy_hood" item_state = "mercy_hood" @@ -839,8 +839,8 @@ cold_protection = UPPER_TORSO|LOWER_TORSO|ARMS|LEGS /obj/item/clothing/suit/officercoat - name = "Clown Officer's Coat" - desc = "A classy clown officer's overcoat, also designed by Hugo Boss." + name = "clown officer's coat" + desc = "A classy clown officer's overcoat, also designed by Hugo Boss." //What and why icon_state = "officersuit" item_state = "officersuit" ignore_suitadjust = 0 @@ -852,7 +852,7 @@ ) /obj/item/clothing/suit/soldiercoat - name = "Clown Soldier's Coat" + name = "clown soldier's coat" desc = "An overcoat for the clown soldier, to keep him warm during those cold winter nights on the front." icon_state = "soldiersuit" item_state = "soldiersuit" @@ -895,7 +895,7 @@ A.UpdateButtonIcon() /obj/item/clothing/suit/lordadmiral - name = "Lord Admiral's Coat" + name = "lord admiral's coat" desc = "You'll be the Ruler of the King's Navy in no time." icon_state = "lordadmiral" item_state = "lordadmiral" @@ -912,7 +912,7 @@ ///Advanced Protective Suit, AKA, God Mode in wearable form. /obj/item/clothing/suit/advanced_protective_suit - name = "Advanced Protective Suit" + name = "advanced protective suit" desc = "An incredibly advanced and complex suit; it has so many buttons and dials as to be incomprehensible." w_class = WEIGHT_CLASS_BULKY icon_state = "bomb" diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 526086d2347..6cd8596d8b3 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -122,7 +122,7 @@ * Radiation protection */ /obj/item/clothing/head/radiation - name = "Radiation Hood" + name = "radiation hood" icon_state = "rad" desc = "A hood with radiation protective properties. Label: Made with lead, do not eat insulation" flags = BLOCKHAIR|THICKMATERIAL @@ -138,7 +138,7 @@ ) /obj/item/clothing/suit/radiation - name = "Radiation suit" + name = "radiation suit" desc = "A suit that protects against radiation. Label: Made with lead, do not eat insulation." icon_state = "rad" item_state = "rad_suit" diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 0c3a0e92310..d7c146e3602 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -22,7 +22,7 @@ name = "black wizard hat" desc = "Strange-looking black hat-wear that most certainly belongs to a real skeleton. Spooky." icon_state = "blackwizard" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/black_wizard /obj/item/clothing/head/wizard/clown name = "purple wizard hat" @@ -55,17 +55,17 @@ dog_fashion = /datum/dog_fashion/head/blue_wizard /obj/item/clothing/head/wizard/marisa - name = "Witch Hat" + name = "witch hat" desc = "Strange-looking hat-wear, makes you want to cast fireballs." icon_state = "marisa" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/wizard/marisa /obj/item/clothing/head/wizard/magus - name = "Magus Helm" + name = "magus helm" desc = "A mysterious helmet that hums with an unearthly power" icon_state = "magus" item_state = "magus" - dog_fashion = null + dog_fashion = /datum/dog_fashion/head/wizard/magus /obj/item/clothing/head/wizard/amp name = "psychic amplifier" @@ -119,19 +119,19 @@ ) /obj/item/clothing/suit/wizrobe/marisa - name = "Witch Robe" + name = "witch robe" desc = "Magic is all about the spell power, ZE!" icon_state = "marisa" item_state = "marisarobe" /obj/item/clothing/suit/wizrobe/magusblue - name = "Magus Robe" + name = "magus robe" desc = "A set of armoured robes that seem to radiate a dark power" icon_state = "magusblue" item_state = "magusblue" /obj/item/clothing/suit/wizrobe/magusred - name = "Magus Robe" + name = "magus robe" desc = "A set of armoured robes that seem to radiate a dark power" icon_state = "magusred" item_state = "magusred" @@ -154,7 +154,7 @@ magical = FALSE /obj/item/clothing/head/wizard/marisa/fake - name = "Witch Hat" + name = "witch hat" desc = "Strange-looking hat-wear, makes you want to cast fireballs." icon_state = "marisa" gas_transfer_coefficient = 1 @@ -164,7 +164,7 @@ magical = FALSE /obj/item/clothing/suit/wizrobe/marisa/fake - name = "Witch Robe" + name = "witch robe" desc = "Magic is all about the spell power, ZE!" icon_state = "marisa" item_state = "marisarobe" @@ -177,7 +177,7 @@ //Shielded Armour /obj/item/clothing/suit/space/hardsuit/shielded/wizard - name = "battlemage armour" + name = "battlemage armor" desc = "Not all wizards are afraid of getting up close and personal. Not spaceproof despite its appearance." icon_state = "hardsuit-wiz" item_state = "wiz_hardsuit" diff --git a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm index 2ca942338b1..2c106e456ec 100644 --- a/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm +++ b/code/modules/clothing/under/jobs/plasmamen/civilian_service.dm @@ -71,7 +71,7 @@ item_color = "clown_envirosuit" /obj/item/clothing/under/plasmaman/assistant - name = "Assistant envirosuit" + name = "assistant's envirosuit" desc = "The finest from the bottom of the plasmamen clothing barrel." icon_state = "assistant_envirosuit" item_state = "assistant_envirosuit" @@ -93,21 +93,21 @@ return FALSE /obj/item/clothing/under/plasmaman/hop - name = "head of personnel envirosuit" + name = "head of personnel's envirosuit" desc = "An envirosuit designed for plasmamen employed as the head of personnel." icon_state = "hop_envirosuit" item_state = "hop_envirosuit" item_color = "hop_envirosuit" /obj/item/clothing/under/plasmaman/captain - name = "captain envirosuit" + name = "captain's envirosuit" desc = "An envirosuit designed for plasmamen employed as the captain." icon_state = "cap_envirosuit" item_state = "cap_envirosuit" item_color = "cap_envirosuit" /obj/item/clothing/under/plasmaman/blueshield - name = "blueshield envirosuit" + name = "blueshield's envirosuit" desc = "An envirosuit designed for plasmamen employed as the blueshield." icon_state = "bs_envirosuit" item_state = "bs_envirosuit" diff --git a/code/modules/clothing/under/jobs/plasmamen/engineering.dm b/code/modules/clothing/under/jobs/plasmamen/engineering.dm index 02a71afcaf6..62c46f050a5 100644 --- a/code/modules/clothing/under/jobs/plasmamen/engineering.dm +++ b/code/modules/clothing/under/jobs/plasmamen/engineering.dm @@ -7,7 +7,7 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 10, "fire" = 95, "acid" = 95) /obj/item/clothing/under/plasmaman/engineering/ce - name = "chief engineer plasma envirosuit" + name = "chief engineer's plasma envirosuit" desc = "An airtight suit designed to be used by plasmamen employed as the chief engineer." icon_state = "ce_envirosuit" item_state = "ce_envirosuit" diff --git a/code/modules/clothing/under/jobs/plasmamen/medsci.dm b/code/modules/clothing/under/jobs/plasmamen/medsci.dm index 531bc3fb124..424540914b4 100644 --- a/code/modules/clothing/under/jobs/plasmamen/medsci.dm +++ b/code/modules/clothing/under/jobs/plasmamen/medsci.dm @@ -6,7 +6,7 @@ item_color = "doctor_envirosuit" /obj/item/clothing/under/plasmaman/cmo - name = "cmo plasma envirosuit" + name = "chief medical officer's plasma envirosuit" desc = "A suit designed for the station's more plasma-based chief medical officer." icon_state = "cmo_envirosuit" item_state = "cmo_envirosuit" @@ -20,7 +20,7 @@ item_color = "scientist_envirosuit" /obj/item/clothing/under/plasmaman/rd - name = "rd plasma envirosuit" + name = "research director's plasma envirosuit" desc = "A plasmaman envirosuit designed for the research director." icon_state = "rd_envirosuit" item_state = "rd_envirosuit" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index afeca2fb3bd..f022ab40d9d 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -10,8 +10,8 @@ * Security */ /obj/item/clothing/under/rank/warden - desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders." name = "warden's jumpsuit" + desc = "It's made of a slightly sturdier material than standard jumpsuits, to allow for more robust protection. It has the word \"Warden\" written on the shoulders." icon_state = "warden" item_state = "r_suit" item_color = "warden" @@ -19,8 +19,8 @@ strip_delay = 50 /obj/item/clothing/under/rank/warden/skirt - desc = "Standard feminine fashion for a Warden. It is made of sturdier material than standard jumpskirts. It has the word \"Warden\" written on the shoulders." name = "warden's jumpskirt" + desc = "Standard feminine fashion for a Warden. It is made of sturdier material than standard jumpskirts. It has the word \"Warden\" written on the shoulders." icon_state = "wardenf" item_state = "r_suit" item_color = "wardenf" @@ -91,8 +91,8 @@ * Head of Security */ /obj/item/clothing/under/rank/head_of_security - desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." name = "head of security's jumpsuit" + desc = "It's a jumpsuit worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." icon_state = "hos" item_state = "r_suit" item_color = "hosred" @@ -100,8 +100,8 @@ strip_delay = 60 /obj/item/clothing/under/rank/head_of_security/skirt - desc = "It's a fashionable jumpskirt worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." name = "head of security's jumpskirt" + desc = "It's a fashionable jumpskirt worn by those few with the dedication to achieve the position of \"Head of Security\". It has additional armor to protect the wearer." icon_state = "hosredf" item_state = "r_suit" item_color = "hosredf" @@ -113,8 +113,8 @@ //Jensen cosplay gear /obj/item/clothing/under/rank/head_of_security/jensen - desc = "You never asked for anything that stylish." name = "head of security's jumpsuit" + desc = "You never asked for anything that stylish." icon_state = "jensen" item_state = "jensen" item_color = "jensen" @@ -122,12 +122,12 @@ //Paradise Station /obj/item/clothing/suit/armor/hos/hosnavyjacket - name = "head of security navy jacket" + name = "head of security's navy jacket" icon_state = "hosdnavyjacket" item_state = "hosdnavyjacket" /obj/item/clothing/suit/armor/hos/hosbluejacket - name = "head of security blue jacket" + name = "head of security's blue jacket" icon_state = "hosbluejacket" item_state = "hosbluejacket" @@ -167,8 +167,8 @@ //Brig Physician /obj/item/clothing/under/rank/security/brigphys - desc = "Jumpsuit for Brig Physician it has both medical and security protection." name = "brig physician's jumpsuit" + desc = "Jumpsuit for Brig Physician it has both medical and security protection." icon_state = "brig_phys" item_state = "brig_phys" item_color = "brig_phys" @@ -176,8 +176,8 @@ armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 10, rad = 0, fire = 30, acid = 30) /obj/item/clothing/under/rank/security/brigphys/skirt - desc = "A skirted Brig Physician uniform. It has both security and medical protection." name = "brig physician's jumpskirt" + desc = "A skirted Brig Physician uniform. It has both security and medical protection." icon_state = "brig_physf" item_state = "brig_physf" item_color = "brig_physf" @@ -185,8 +185,8 @@ //Pod Pilot /obj/item/clothing/under/rank/security/pod_pilot - desc = "Suit for your regular pod pilot." name = "pod pilot's jumpsuit" + desc = "Suit for your regular pod pilot." icon_state = "pod_pilot" item_state = "pod_pilot" item_color = "pod_pilot" diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 974ad9fd26f..f4a16283fac 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -61,8 +61,8 @@ item_color = "vice" /obj/item/clothing/under/solgov - name = "Sol Federation marine uniform" - desc = "A comfortable and durable combat uniform worn by Sol Federation Marine Forces." + name = "\improper Trans-Solar Federation marine uniform" + desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces." icon_state = "solgov" item_state = "ro_suit" item_color = "solgov" @@ -70,21 +70,21 @@ displays_id = 0 /obj/item/clothing/under/solgov/command - name = "Sol Federation Lieutenant's uniform" - desc = "A comfortable and durable combat uniform worn by Sol Federation Marine Forces. This one has additional insignia on its shoulders." + name = "\improper Trans-Solar Federation Lieutenant's uniform" + desc = "A comfortable and durable combat uniform worn by Trans-Solar Federation Marine Forces. This one has additional insignia on its shoulders." icon_state = "solgovc" item_color = "solgovc" armor = list("melee" = 10, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 30, "acid" = 30) /obj/item/clothing/under/solgov/rep - name = "Sol Federation representative's uniform" - desc = "A formal uniform worn by the diplomatic representatives of the Sol Federation." + name = "\improper Trans-Solar Federation representative's uniform" + desc = "A formal uniform worn by the diplomatic representatives of the Trans-Solar Federation." icon_state = "solgovr" item_color = "solgovr" /obj/item/clothing/under/rank/centcom_officer - desc = "It's a jumpsuit worn by CentComm Officers." name = "\improper CentComm officer's jumpsuit" + desc = "It's a jumpsuit worn by CentComm Officers." icon_state = "officer" item_state = "g_suit" item_color = "officer" @@ -94,15 +94,15 @@ random_sensor = FALSE /obj/item/clothing/under/rank/centcom_commander + name = "\improper CentComm commander's jumpsuit" desc = "It's a jumpsuit worn by CentComm's highest-tier Commanders." - name = "\improper CentComm officer's jumpsuit" icon_state = "centcom" item_state = "dg_suit" item_color = "centcom" /obj/item/clothing/under/rank/centcom/officer + name = "\improper Nanotrasen naval officer's uniform" desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Lieutenant-Commander\" and bears \"N.A.S. Trurl \" on the left shoulder. Worn exclusively by officers of the Nanotrasen Navy. It's got exotic materials for protection." - name = "\improper Nanotrasen Naval Officer Uniform" icon_state = "navy_gold" item_state = "navy_gold" item_color = "navy_gold" @@ -110,8 +110,8 @@ displays_id = 0 /obj/item/clothing/under/rank/centcom/captain + name = "\improper Nanotrasen naval captain's uniform" desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Captain\" and bears \"N.A.S. Trurl \" on the left shoulder. Worn exclusively by officers of the Nanotrasen Navy. It's got exotic materials for protection." - name = "\improper Nanotrasen Naval Captain Uniform" icon_state = "navy_gold" item_state = "navy_gold" item_color = "navy_gold" @@ -119,8 +119,8 @@ displays_id = 0 /obj/item/clothing/under/rank/centcom/blueshield + name = "formal blueshield's uniform" desc = "Gold trim on space-black cloth, this uniform bears \"Close Protection\" on the left shoulder. It's got exotic materials for protection." - name = "\improper Formal Blueshield's Uniform" icon_state = "officer" item_state = "g_suit" item_color = "officer" @@ -128,8 +128,8 @@ displays_id = 0 /obj/item/clothing/under/rank/centcom/representative + name = "formal Nanotrasen Representative's uniform" desc = "Gold trim on space-black cloth, this uniform bears \"N.S.S. Cyberiad\" on the left shoulder." - name = "\improper Formal Nanotrasen Representative's Uniform" icon_state = "officer" item_state = "g_suit" item_color = "officer" @@ -140,8 +140,8 @@ desc = "Gold trim on space-black cloth, this uniform bears [station_name()] on the left shoulder." /obj/item/clothing/under/rank/centcom/magistrate + name = "formal magistrate's uniform" desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears \"N.S.S. Cyberiad\" on the left shoulder." - name = "\improper Formal Magistrate's Uniform" icon_state = "officer" item_state = "g_suit" item_color = "officer" @@ -152,8 +152,8 @@ desc = "Gold trim on space-black cloth, this uniform displays the rank of \"Magistrate\" and bears [station_name()] on the left shoulder." /obj/item/clothing/under/rank/centcom/diplomatic + name = "\improper Nanotrasen diplomatic uniform" desc = "A very gaudy and official looking uniform of the Nanotrasen Diplomatic Corps." - name = "\improper Nanotrasen Diplomatic Uniform" icon_state = "presidente" item_state = "g_suit" item_color = "presidente" @@ -422,25 +422,25 @@ item_color = "dress_saloon" /obj/item/clothing/under/dress/dress_rd - name = "research director dress uniform" + name = "research director's dress uniform" desc = "Feminine fashion for the style concious RD." icon_state = "dress_rd" item_color = "dress_rd" /obj/item/clothing/under/dress/dress_cap - name = "captain dress uniform" + name = "captain's dress uniform" desc = "Feminine fashion for the style concious captain." icon_state = "dress_cap" item_color = "dress_cap" /obj/item/clothing/under/dress/dress_hop - name = "head of personal dress uniform" + name = "head of personal's dress uniform" desc = "Feminine fashion for the style concious HoP." icon_state = "dress_hop" item_color = "dress_hop" /obj/item/clothing/under/dress/dress_hr - name = "human resources director uniform" + name = "human resources director's uniform" desc = "Superior class for the nosy H.R. Director." icon_state = "huresource" item_color = "huresource" @@ -604,14 +604,14 @@ /obj/item/clothing/under/bane - name = "Bane Harness" + name = "bane harness" desc = "Wear this harness to become the bane of the station." icon_state = "bane" item_state = "bane" item_color = "bane" /obj/item/clothing/under/vox - name = "Ripped Jumpsuit" + name = "ripped jumpsuit" desc = "A jumpsuit that looks like it's been shredded by some talons. Who could wear this now?" icon = 'icons/obj/clothing/species/vox/uniforms.dmi' icon_state = "vgrey" @@ -619,35 +619,35 @@ item_color = "vgrey" /obj/item/clothing/under/psyjump - name = "Psychic Amp Jumpsuit" + name = "psychic amp jumpsuit" desc = "A suit made of strange materials." icon_state = "psyamp" item_state = "psyamp" item_color = "psyamp" /obj/item/clothing/under/rebeloutfit - name = "Rebel Outfit" + name = "rebel outfit" desc = "Made in Seattle, 2216." icon_state = "colin_earle" item_state = "colin_earle" item_color = "colin_earle" /obj/item/clothing/under/officeruniform - name = "Clown Officer's Uniform" + name = "clown officer's uniform" desc = "For Clown officers, this uniform was designed by the great clown designer Hugo Boss." icon_state = "officeruniform" item_color = "officeruniform" body_parts_covered = UPPER_TORSO|LOWER_TORSO /obj/item/clothing/under/soldieruniform - name = "Clown Soldier's Uniform" + name = "clown soldier's uniform" desc = "For the basic grunt of the Clown army." icon_state = "soldieruniform" item_color = "soldieruniform" body_parts_covered = UPPER_TORSO|LOWER_TORSO /obj/item/clothing/under/pennywise - name = "Pennywise Costume" + name = "\improper Pennywise costume" desc = "It's everything you ever were afraid of." icon_state = "pennywise" item_color = "pennywise" diff --git a/code/modules/clothing/under/oldstation_uni.dm b/code/modules/clothing/under/oldstation_uni.dm index 97a3fa7614b..c39add82a3d 100644 --- a/code/modules/clothing/under/oldstation_uni.dm +++ b/code/modules/clothing/under/oldstation_uni.dm @@ -1,32 +1,32 @@ //Let's keep clothing sorting clean. This is for all the oldstation clothes. /obj/item/clothing/under/retro/security - desc = "A (now) retro corporate security jumpsuit. It doesn't have any sort of robust fabric, good ol' NT cutting costs." name = "retro security officer's uniform" + desc = "A (now) retro corporate security jumpsuit. It doesn't have any sort of robust fabric, good ol' NT cutting costs." icon_state = "retro_sec" item_state = "retro_sec" item_color = "retro_sec" displays_id = 0 /obj/item/clothing/under/retro/medical - desc = "A once biologically resistant medical uniform. The high-vis stripes are faded and unreflective." name = "retro medical officer's uniform" + desc = "A once biologically resistant medical uniform. The high-vis stripes are faded and unreflective." icon_state = "retro_med" item_state = "retro_med" item_color = "retro_med" displays_id = 0 /obj/item/clothing/under/retro/engineering - desc = "A faded grimy engineering jumpsuit and overall combo. It's coated with oil, dust, and grit." name = "retro engineering uniform" + desc = "A faded grimy engineering jumpsuit and overall combo. It's coated with oil, dust, and grit." icon_state = "retro_eng" item_state = "retro_eng" item_color = "retro_eng" displays_id = 0 /obj/item/clothing/under/retro/science - desc = "A faded polo and set of distinct white slacks. What a ridiculous tie." name = "retro science officer's uniform" + desc = "A faded polo and set of distinct white slacks. What a ridiculous tie." icon_state = "retro_sci" item_state = "retro_sci" item_color = "retro_sci" diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index 1be2504d387..3905458d864 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -361,6 +361,13 @@ /obj/item/bikehorn) category = CAT_MISC +/datum/crafting_recipe/sad_trombone + name = "Sad trombone" + result = list(/obj/item/instrument/trombone/sad) + time = 20 + reqs = list(/obj/item/stack/sheet/mineral/bananium = 5) + category = CAT_MISC + /datum/crafting_recipe/blackcarpet name = "Black Carpet" result = list(/obj/item/stack/tile/carpet/black) diff --git a/code/modules/detective_work/evidence.dm b/code/modules/detective_work/evidence.dm index 555dbe542de..e8bb1b578ae 100644 --- a/code/modules/detective_work/evidence.dm +++ b/code/modules/detective_work/evidence.dm @@ -76,6 +76,7 @@ "You hear someone rustle around in a plastic bag, and remove something.") overlays.Cut() //remove the overlays user.put_in_hands(I) + I.pickup(user) w_class = WEIGHT_CLASS_TINY icon_state = "evidenceobj" desc = "An empty evidence bag." @@ -83,4 +84,3 @@ else to_chat(user, "[src] is empty.") icon_state = "evidenceobj" - diff --git a/code/modules/events/apc_short.dm b/code/modules/events/apc_short.dm index 21facb9b411..9560140c2d8 100644 --- a/code/modules/events/apc_short.dm +++ b/code/modules/events/apc_short.dm @@ -2,7 +2,6 @@ /datum/event/apc_short var/const/announce_after_mc_ticks = 5 - var/const/delayed = FALSE var/const/event_max_duration_mc_ticks = announce_after_mc_ticks * 2 var/const/event_min_duration_mc_ticks = announce_after_mc_ticks @@ -12,7 +11,7 @@ endWhen = rand(event_min_duration_mc_ticks, event_max_duration_mc_ticks) /datum/event/apc_short/start() - power_failure(announce=delayed) + power_failure(announce = FALSE) var/sound/S = sound('sound/effects/powerloss.ogg') for(var/mob/living/M in GLOB.player_list) var/turf/T = get_turf(M) @@ -26,56 +25,96 @@ /datum/event/apc_short/end() return TRUE -/proc/power_failure(announce=TRUE) +/proc/depower_apcs() var/list/skipped_areas_apc = list( /area/engine/engineering, /area/engine/supermatter, /area/turret_protected/ai) + GLOB.event_announcement.Announce("Power failure detected in [station_name()]'s powernet. All APCs have lost power. Gravity systems likely to fail.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') + for(var/thing in GLOB.apcs) + var/obj/machinery/power/apc/A = thing + var/area/current_area = get_area(A) + if((current_area.type in skipped_areas_apc) || !is_station_level(A.z)) + continue + var/obj/item/stock_parts/cell/C = A.get_cell() + if(C) + C.charge = 0 + current_area.power_change() + log_and_message_admins("Power has been drained from all APCs.") +/proc/power_failure(announce = TRUE) + // skip any APCs that are too critical to disable + var/list/skipped_areas_apc = list( + /area/engine/engineering, + /area/turret_protected/ai) if(announce) GLOB.event_announcement.Announce("Overload detected in [station_name()]'s powernet. Engineering, please repair shorted APCs.", "Systems Power Failure", new_sound = 'sound/AI/attention.ogg') - // break APC_BREAK_PROBABILITY% of all of the APCs on the station var/affected_apc_count = 0 for(var/thing in GLOB.apcs) - var/obj/machinery/power/apc/C = thing - // skip any APCs that are too critical to disable - var/area/current_area = get_area(C) - if((current_area.type in skipped_areas_apc) || !is_station_level(C.z)) + var/obj/machinery/power/apc/A = thing + var/area/current_area = get_area(A) + if((current_area.type in skipped_areas_apc) || !is_station_level(A.z)) continue // if we are going to break this one if(prob(APC_BREAK_PROBABILITY)) // if it has internal wires, cut the power wires - if(C.wires) - if(!C.wires.is_cut(WIRE_MAIN_POWER1)) - C.wires.cut(WIRE_MAIN_POWER1) - if(!C.wires.is_cut(WIRE_MAIN_POWER2)) - C.wires.cut(WIRE_MAIN_POWER2) + if(A.wires) + if(!A.wires.is_cut(WIRE_MAIN_POWER1)) + A.wires.cut(WIRE_MAIN_POWER1) + if(!A.wires.is_cut(WIRE_MAIN_POWER2)) + A.wires.cut(WIRE_MAIN_POWER2) // if it was operating, toggle off the breaker - if(C.operating) - C.toggle_breaker() + if(A.operating) + A.toggle_breaker() // no matter what, ensure the area knows something happened to the power current_area.power_change() affected_apc_count++ - log_and_message_admins("APC Short event shorted out [affected_apc_count] APCs.") + log_and_message_admins("APC Short Out event has shorted out [affected_apc_count] APCs.") -/proc/power_restore(announce=TRUE) +/proc/power_restore(announce = TRUE, power_type) + if(power_type == 0) //Power without Repairing + if(announce) + GLOB.event_announcement.Announce("All operational APCs on \the [station_name()] have been fully charged.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + var/affected_apc_count = 0 + for(var/thing in GLOB.apcs) + var/obj/machinery/power/apc/A = thing + var/area/current_area = get_area(A) + if(!is_station_level(A.z)) + continue + if(!length(A.wires.cut_wires) && A.operating && !A.shorted) + A.recharge_apc() + affected_apc_count++ + current_area.power_change() + log_and_message_admins("Power has been restored to [affected_apc_count] APCs.") + if(power_type == 1) //Repair without charging + if(announce) + GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') + for(var/thing in GLOB.apcs) + var/obj/machinery/power/apc/A = thing + var/area/current_area = get_area(A) + if(!is_station_level(A.z)) + continue + A.repair_apc() + current_area.power_change() + log_and_message_admins("Power has been restored to all APCs.") + if(power_type == 2) //Repair and Power APCs + if(announce) + GLOB.event_announcement.Announce("All APCs on \the [station_name()] have been repaired and recharged. We apologize for the inconvenience.", "Power Systems Optimal", new_sound = 'sound/AI/poweron.ogg') + // repair the APCs and recharge them + for(var/thing in GLOB.apcs) + var/obj/machinery/power/apc/A = thing + var/area/current_area = get_area(A) + if(!is_station_level(A.z)) + continue + A.repair_apc() + A.recharge_apc() + current_area.power_change() + log_and_message_admins("Power has been restored to all APCs.") + +/proc/power_restore_quick(announce = TRUE) if(announce) - GLOB.event_announcement.Announce("Power has been restored to [station_name()]. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') - - // recharge the APCs - for(var/thing in GLOB.apcs) - var/obj/machinery/power/apc/A = thing - if(!is_station_level(A.z)) - continue - var/obj/item/stock_parts/cell/C = A.get_cell() - if(C) - C.give(C.maxcharge) - -/proc/power_restore_quick(announce=TRUE) - if(announce) - GLOB.event_announcement.Announce("All SMESs on [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') - + GLOB.event_announcement.Announce("All SMESs on \the [station_name()] have been recharged. We apologize for the inconvenience.", "Power Systems Nominal", new_sound = 'sound/AI/poweron.ogg') // fix all of the SMESs for(var/obj/machinery/power/smes/S in GLOB.machines) if(!is_station_level(S.z)) diff --git a/code/modules/flufftext/Dreaming.dm b/code/modules/flufftext/Dreaming.dm index a24b73ae56c..4cdb2f88f07 100644 --- a/code/modules/flufftext/Dreaming.dm +++ b/code/modules/flufftext/Dreaming.dm @@ -18,13 +18,13 @@ /mob/living/carbon/proc/custom_dreams(list/dreamlist, mob/user) var/list/newlist = dreamlist.Copy() for(var/i in 1 to newlist.len) - newlist[i] = replacetext(newlist[i], "\[DREAMER\]", "[user.name]") + newlist[i] = replacetext(newlist[i], "DREAMER", "[user.name]") return newlist //NIGHTMARES /mob/living/carbon/proc/nightmare() - var/list/nightmares = GLOB.nightmare_strings.Copy() + var/list/nightmares = custom_dreams(GLOB.nightmare_strings, src) for(var/obj/item/bedsheet/sheet in loc) nightmares += sheet.nightmare_messages diff --git a/code/modules/food_and_drinks/food.dm b/code/modules/food_and_drinks/food.dm index 15e28cc6c62..ea3055ad55e 100644 --- a/code/modules/food_and_drinks/food.dm +++ b/code/modules/food_and_drinks/food.dm @@ -44,8 +44,8 @@ if(isturf(loc) && !locate(/obj/structure/table) in T) if(ant_location == T) if(prob(15)) - if(!locate(/obj/effect/decal/ants) in T) - new /obj/effect/decal/ants(T) + if(!locate(/obj/effect/decal/cleanable/ants) in T) + new /obj/effect/decal/cleanable/ants(T) antable = FALSE desc += " It appears to be infested with ants. Yuck!" reagents.add_reagent("ants", 1) // Don't eat things with ants in i you weirdo. diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 898d3f3cc71..897e11443ff 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -23,6 +23,7 @@ "sodiumchloride" = list("saltshakersmall", "salt shaker", "Salt. From space oceans, presumably"), "blackpepper" = list("peppermillsmall", "pepper mill", "Often used to flavor food or make people sneeze"), "cornoil" = list("oliveoil", "corn oil bottle", "A delicious oil used in cooking. Made from corn"), + "wasabi" = list("wasabitube", "wasabi bottle", "A pungent paste commonly served in tiny amounts with sushi. Spicy!"), "sugar" = list("emptycondiment", "sugar bottle", "Tasty spacey sugar!")) var/originalname = "condiment" //Can't use initial(name) for this. This stores the name set by condimasters. diff --git a/code/modules/food_and_drinks/food/customizables.dm b/code/modules/food_and_drinks/food/customizables.dm index ef2ad5f777b..e08e5e243be 100644 --- a/code/modules/food_and_drinks/food/customizables.dm +++ b/code/modules/food_and_drinks/food/customizables.dm @@ -41,14 +41,13 @@ /obj/item/trash/bowl name = "bowl" desc = "An empty bowl. Put some food in it to start making a soup." - icon = 'icons/obj/food/food.dmi' + icon = 'icons/obj/food/custom.dmi' icon_state = "soup" -/obj/item/trash/bowl/attackby(obj/item/W, mob/user, params) - - if(istype(W, /obj/item/reagent_containers/food/snacks) && !(W.flags & NODROP)) +/obj/item/trash/bowl/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/reagent_containers/food/snacks) && !(I.flags & NODROP)) var/obj/item/reagent_containers/food/snacks/customizable/soup/S = new(get_turf(user)) - S.attackby(W,user, params) + S.attackby(I, user, params) qdel(src) else ..() @@ -313,6 +312,7 @@ icon_state = "soup" baseicon = "soup" basename = "soup" + consume_sound = 'sound/items/drink.ogg' snack_overlays = 0 trash = /obj/item/trash/bowl top = 0 diff --git a/code/modules/food_and_drinks/food/foods/soups.dm b/code/modules/food_and_drinks/food/foods/soups.dm index 17b70a26308..16048147fb3 100644 --- a/code/modules/food_and_drinks/food/foods/soups.dm +++ b/code/modules/food_and_drinks/food/foods/soups.dm @@ -3,143 +3,132 @@ // Soups // ////////////////////// -/obj/item/reagent_containers/food/snacks/meatballsoup +// Base object for soups, should never appear ingame. +/obj/item/reagent_containers/food/snacks/soup + name = "impossible soup" + desc = "This soup is so good, it shouldn't even exist!" + icon_state = "beans" // If you don't have a sprite, you get beans. + consume_sound = 'sound/items/drink.ogg' + trash = /obj/item/trash/snack_bowl + bitesize = 5 + +/obj/item/reagent_containers/food/snacks/soup/meatballsoup name = "meatball soup" desc = "You've got balls kid, BALLS!" icon_state = "meatballsoup" - trash = /obj/item/trash/snack_bowl filling_color = "#785210" - bitesize = 5 list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4) tastes = list("meatball" = 1) -/obj/item/reagent_containers/food/snacks/slimesoup +/obj/item/reagent_containers/food/snacks/soup/slimesoup name = "slime soup" desc = "If no water is available, you may substitute tears." icon_state = "slimesoup" filling_color = "#C4DBA0" - bitesize = 5 list_reagents = list("nutriment" = 5, "slimejelly" = 5, "water" = 5, "vitamin" = 4) tastes = list("slime" = 1) -/obj/item/reagent_containers/food/snacks/bloodsoup +/obj/item/reagent_containers/food/snacks/soup/bloodsoup name = "tomato soup" desc = "Smells like copper." icon_state = "tomatosoup" filling_color = "#FF0000" - bitesize = 5 list_reagents = list("nutriment" = 2, "blood" = 10, "water" = 5, "vitamin" = 4) tastes = list("iron" = 1) -/obj/item/reagent_containers/food/snacks/clownstears +/obj/item/reagent_containers/food/snacks/soup/clownstears name = "clown's tears" desc = "Not very funny." icon_state = "clownstears" filling_color = "#C4FBFF" - bitesize = 5 list_reagents = list("nutriment" = 4, "banana" = 5, "water" = 5, "vitamin" = 8) tastes = list("a bad joke" = 1) -/obj/item/reagent_containers/food/snacks/vegetablesoup +/obj/item/reagent_containers/food/snacks/soup/vegetablesoup name = "vegetable soup" desc = "A true vegan meal." //TODO icon_state = "vegetablesoup" - trash = /obj/item/trash/snack_bowl filling_color = "#AFC4B5" - bitesize = 5 list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4) tastes = list("vegetables" = 1) -/obj/item/reagent_containers/food/snacks/nettlesoup +/obj/item/reagent_containers/food/snacks/soup/nettlesoup name = "nettle soup" desc = "To think, the botanist would've beaten you to death with one of these." icon_state = "nettlesoup" - trash = /obj/item/trash/snack_bowl filling_color = "#AFC4B5" - bitesize = 5 list_reagents = list("nutriment" = 8, "water" = 5, "vitamin" = 4) tastes = list("nettles" = 1) -/obj/item/reagent_containers/food/snacks/mysterysoup +/obj/item/reagent_containers/food/snacks/soup/mysterysoup name = "mystery soup" desc = "The mystery is, why aren't you eating it?" icon_state = "mysterysoup" var/extra_reagent = null - bitesize = 5 list_reagents = list("nutriment" = 6) tastes = list("chaos" = 1) -/obj/item/reagent_containers/food/snacks/mysterysoup/New() +/obj/item/reagent_containers/food/snacks/soup/mysterysoup/New() ..() extra_reagent = pick("capsaicin", "frostoil", "omnizine", "banana", "blood", "slimejelly", "toxin", "banana", "carbon", "oculine") reagents.add_reagent("[extra_reagent]", 5) -/obj/item/reagent_containers/food/snacks/wishsoup +/obj/item/reagent_containers/food/snacks/soup/wishsoup name = "wish soup" desc = "I wish this was soup." icon_state = "wishsoup" - trash = /obj/item/trash/snack_bowl filling_color = "#D1F4FF" - bitesize = 5 list_reagents = list("water" = 10) tastes = list("wishes" = 1) -/obj/item/reagent_containers/food/snacks/wishsoup/New() +/obj/item/reagent_containers/food/snacks/soup/wishsoup/New() ..() if(prob(25)) desc = "A wish come true!" // hue reagents.add_reagent("nutriment", 9) reagents.add_reagent("vitamin", 1) -/obj/item/reagent_containers/food/snacks/tomatosoup +/obj/item/reagent_containers/food/snacks/soup/tomatosoup name = "tomato soup" desc = "Drinking this feels like being a vampire! A tomato vampire..." icon_state = "tomatosoup" - trash = /obj/item/trash/snack_bowl filling_color = "#D92929" - bitesize = 5 list_reagents = list("nutriment" = 5, "tomatojuice" = 10, "vitamin" = 3) tastes = list("tomato" = 1) -/obj/item/reagent_containers/food/snacks/misosoup +/obj/item/reagent_containers/food/snacks/soup/misosoup name = "miso soup" desc = "The universe's best soup! Yum!!!" icon_state = "misosoup" - trash = /obj/item/trash/snack_bowl - bitesize = 5 list_reagents = list("nutriment" = 7, "vitamin" = 2) tastes = list("miso" = 1) -/obj/item/reagent_containers/food/snacks/mushroomsoup +/obj/item/reagent_containers/food/snacks/soup/mushroomsoup name = "chantrelle soup" desc = "A delicious and hearty mushroom soup." icon_state = "mushroomsoup" - trash = /obj/item/trash/snack_bowl filling_color = "#E386BF" - bitesize = 5 list_reagents = list("nutriment" = 8, "vitamin" = 4) tastes = list("mushroom" = 1) -/obj/item/reagent_containers/food/snacks/beetsoup +/obj/item/reagent_containers/food/snacks/soup/beetsoup name = "beet soup" desc = "Wait, how do you spell it again..?" icon_state = "beetsoup" - trash = /obj/item/trash/snack_bowl - bitesize = 5 filling_color = "#FAC9FF" list_reagents = list("nutriment" = 7, "vitamin" = 2) tastes = list("beet" = 1) -/obj/item/reagent_containers/food/snacks/beetsoup/New() +/obj/item/reagent_containers/food/snacks/soup/beetsoup/New() ..() - name = pick("borsch","bortsch","borstch","borsh","borshch","borscht") + name = pick("borsch", "bortsch", "borstch", "borsh", "borshch", "borscht") ////////////////////// // Stews // ////////////////////// -/obj/item/reagent_containers/food/snacks/stew +/obj/item/reagent_containers/food/snacks/soup/stew name = "stew" desc = "A nice and warm stew. Healthy and strong." icon_state = "stew" @@ -161,22 +150,18 @@ // Chili // ////////////////////// -/obj/item/reagent_containers/food/snacks/hotchili +/obj/item/reagent_containers/food/snacks/soup/hotchili name = "hot chili" desc = "A five alarm Texan Chili!" icon_state = "hotchili" - trash = /obj/item/trash/snack_bowl filling_color = "#FF3C00" - bitesize = 5 list_reagents = list("nutriment" = 5, "capsaicin" = 1, "tomatojuice" = 2, "vitamin" = 2) tastes = list("hot peppers" = 1, "tomato" = 1) -/obj/item/reagent_containers/food/snacks/coldchili +/obj/item/reagent_containers/food/snacks/soup/coldchili name = "cold chili" desc = "This slush is barely a liquid!" icon_state = "coldchili" filling_color = "#2B00FF" - trash = /obj/item/trash/snack_bowl - bitesize = 5 list_reagents = list("nutriment" = 5, "frostoil" = 1, "tomatojuice" = 2, "vitamin" = 2) tastes = list("tomato" = 1, "mint" = 1) diff --git a/code/modules/food_and_drinks/recipes/recipes_microwave.dm b/code/modules/food_and_drinks/recipes/recipes_microwave.dm index 2214e44b772..a54ef40918a 100644 --- a/code/modules/food_and_drinks/recipes/recipes_microwave.dm +++ b/code/modules/food_and_drinks/recipes/recipes_microwave.dm @@ -227,30 +227,30 @@ /datum/recipe/microwave/meatballsoup reagents = list("water" = 10) items = list(/obj/item/reagent_containers/food/snacks/meatball, /obj/item/reagent_containers/food/snacks/grown/potato, /obj/item/reagent_containers/food/snacks/grown/carrot) - result = /obj/item/reagent_containers/food/snacks/meatballsoup + result = /obj/item/reagent_containers/food/snacks/soup/meatballsoup /datum/recipe/microwave/vegetablesoup reagents = list("water" = 10) items = list(/obj/item/reagent_containers/food/snacks/grown/potato, /obj/item/reagent_containers/food/snacks/grown/carrot, /obj/item/reagent_containers/food/snacks/grown/corn, /obj/item/reagent_containers/food/snacks/grown/eggplant) - result = /obj/item/reagent_containers/food/snacks/vegetablesoup + result = /obj/item/reagent_containers/food/snacks/soup/vegetablesoup /datum/recipe/microwave/nettlesoup reagents = list("water" = 10) items = list(/obj/item/reagent_containers/food/snacks/egg, /obj/item/grown/nettle/basic, /obj/item/reagent_containers/food/snacks/grown/potato) - result = /obj/item/reagent_containers/food/snacks/nettlesoup + result = /obj/item/reagent_containers/food/snacks/soup/nettlesoup /datum/recipe/microwave/wishsoup reagents = list("water" = 20) - result= /obj/item/reagent_containers/food/snacks/wishsoup + result = /obj/item/reagent_containers/food/snacks/soup/wishsoup /datum/recipe/microwave/hotchili items = list(/obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/grown/chili, /obj/item/reagent_containers/food/snacks/grown/tomato) - result = /obj/item/reagent_containers/food/snacks/hotchili + result = /obj/item/reagent_containers/food/snacks/soup/hotchili /datum/recipe/microwave/coldchili items = list(/obj/item/reagent_containers/food/snacks/meat, /obj/item/reagent_containers/food/snacks/grown/icepepper, /obj/item/reagent_containers/food/snacks/grown/tomato) - result = /obj/item/reagent_containers/food/snacks/coldchili + result = /obj/item/reagent_containers/food/snacks/soup/coldchili /datum/recipe/microwave/spellburger items = list( @@ -314,14 +314,14 @@ /datum/recipe/microwave/tomatosoup reagents = list("water" = 10) items = list(/obj/item/reagent_containers/food/snacks/grown/tomato, /obj/item/reagent_containers/food/snacks/grown/tomato) - result = /obj/item/reagent_containers/food/snacks/tomatosoup + result = /obj/item/reagent_containers/food/snacks/soup/tomatosoup /datum/recipe/microwave/stew reagents = list("water" = 10) items= list(/obj/item/reagent_containers/food/snacks/grown/tomato, /obj/item/reagent_containers/food/snacks/grown/potato, /obj/item/reagent_containers/food/snacks/grown/carrot, /obj/item/reagent_containers/food/snacks/grown/eggplant, /obj/item/reagent_containers/food/snacks/grown/mushroom, /obj/item/reagent_containers/food/snacks/meat) - result = /obj/item/reagent_containers/food/snacks/stew + result = /obj/item/reagent_containers/food/snacks/soup/stew /datum/recipe/microwave/slimetoast reagents = list("slimejelly" = 5) @@ -345,7 +345,7 @@ /obj/item/reagent_containers/food/snacks/tofu, /obj/item/reagent_containers/food/snacks/tofu, ) - result = /obj/item/reagent_containers/food/snacks/misosoup + result = /obj/item/reagent_containers/food/snacks/soup/misosoup /datum/recipe/microwave/stewedsoymeat items = list(/obj/item/reagent_containers/food/snacks/soydope, /obj/item/reagent_containers/food/snacks/soydope, @@ -463,11 +463,11 @@ /datum/recipe/microwave/bloodsoup reagents = list("blood" = 10) items = list(/obj/item/reagent_containers/food/snacks/grown/tomato/blood, /obj/item/reagent_containers/food/snacks/grown/tomato/blood) - result = /obj/item/reagent_containers/food/snacks/bloodsoup + result = /obj/item/reagent_containers/food/snacks/soup/bloodsoup /datum/recipe/microwave/slimesoup reagents = list("water" = 10, "slimejelly" = 5) - result = /obj/item/reagent_containers/food/snacks/slimesoup + result = /obj/item/reagent_containers/food/snacks/soup/slimesoup /datum/recipe/microwave/clownstears reagents = list("water" = 10) @@ -475,7 +475,7 @@ /obj/item/stack/ore/bananium, /obj/item/reagent_containers/food/snacks/grown/banana ) - result = /obj/item/reagent_containers/food/snacks/clownstears + result = /obj/item/reagent_containers/food/snacks/soup/clownstears /datum/recipe/microwave/boiledslimeextract reagents = list("water" = 5) @@ -503,12 +503,12 @@ /obj/item/reagent_containers/food/snacks/egg, /obj/item/reagent_containers/food/snacks/cheesewedge, ) - result = /obj/item/reagent_containers/food/snacks/mysterysoup + result = /obj/item/reagent_containers/food/snacks/soup/mysterysoup /datum/recipe/microwave/mushroomsoup reagents = list("water" = 5, "milk" = 5) items = list(/obj/item/reagent_containers/food/snacks/grown/mushroom) - result = /obj/item/reagent_containers/food/snacks/mushroomsoup + result = /obj/item/reagent_containers/food/snacks/soup/mushroomsoup /datum/recipe/microwave/chawanmushi reagents = list("water" = 5, "soysauce" = 5) @@ -522,7 +522,7 @@ /datum/recipe/microwave/beetsoup reagents = list("water" = 10) items = list(/obj/item/reagent_containers/food/snacks/grown/whitebeet, /obj/item/reagent_containers/food/snacks/grown/cabbage) - result = /obj/item/reagent_containers/food/snacks/beetsoup + result = /obj/item/reagent_containers/food/snacks/soup/beetsoup /datum/recipe/microwave/herbsalad items = list(/obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, /obj/item/reagent_containers/food/snacks/grown/ambrosia/vulgaris, diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm index 72bd5fe8bf7..a937a8a6ebb 100644 --- a/code/modules/hydroponics/grown/citrus.dm +++ b/code/modules/hydroponics/grown/citrus.dm @@ -58,7 +58,7 @@ icon_state = "orange" // Sprite created by https://github.com/binarysudoku for Goonstation, They have relicensed it for our use. tastes = list("orange" = 1) filling_color = "#FFA500" - distill_reagent = "triple_sec" + distill_reagent = "tequilasunrise" // Lemon /obj/item/seeds/lemon diff --git a/code/modules/hydroponics/grown/cocoa_vanilla.dm b/code/modules/hydroponics/grown/cocoa_vanilla.dm index ad80934ca18..136b4c7dbf4 100644 --- a/code/modules/hydroponics/grown/cocoa_vanilla.dm +++ b/code/modules/hydroponics/grown/cocoa_vanilla.dm @@ -26,7 +26,6 @@ filling_color = "#FFD700" bitesize_mod = 2 tastes = list("cocoa" = 1) - distill_reagent = "creme_de_cacao" // Vanilla Pod /obj/item/seeds/cocoapod/vanillapod diff --git a/code/modules/hydroponics/grown/nettle.dm b/code/modules/hydroponics/grown/nettle.dm index 97d35aa4eed..da7c63393b2 100644 --- a/code/modules/hydroponics/grown/nettle.dm +++ b/code/modules/hydroponics/grown/nettle.dm @@ -11,7 +11,7 @@ growthstages = 5 genes = list(/datum/plant_gene/trait/repeated_harvest, /datum/plant_gene/trait/plant_type/weed_hardy) mutatelist = list(/obj/item/seeds/nettle/death) - reagents_add = list("sacid" = 0.5) + reagents_add = list("wasabi" = 0.15) /obj/item/seeds/nettle/death name = "pack of death-nettle seeds" diff --git a/code/modules/hydroponics/grown/onion.dm b/code/modules/hydroponics/grown/onion.dm index cff3fcafdba..8594c6f37ea 100644 --- a/code/modules/hydroponics/grown/onion.dm +++ b/code/modules/hydroponics/grown/onion.dm @@ -37,6 +37,7 @@ plantname = "Red Onion Sprouts" weed_chance = 1 product = /obj/item/reagent_containers/food/snacks/grown/onion/red + mutatelist = list() reagents_add = list("vitamin" = 0.04, "plantmatter" = 0.1, "onionjuice" = 0.05) /obj/item/reagent_containers/food/snacks/grown/onion/red diff --git a/code/modules/hydroponics/grown/tobacco.dm b/code/modules/hydroponics/grown/tobacco.dm index 3087fa1dddb..36be1599728 100644 --- a/code/modules/hydroponics/grown/tobacco.dm +++ b/code/modules/hydroponics/grown/tobacco.dm @@ -22,7 +22,7 @@ icon_state = "tobacco_leaves" tastes = list("tobacco" = 1) filling_color = "#008000" - distill_reagent = "creme_de_menthe" //Menthol, I guess. + distill_reagent = "menthol" // Space Tobacco /obj/item/seeds/tobacco/space diff --git a/code/modules/instruments/objs/items/instruments.dm b/code/modules/instruments/objs/items/instruments.dm index 9920a808fc0..ec41f9578a7 100644 --- a/code/modules/instruments/objs/items/instruments.dm +++ b/code/modules/instruments/objs/items/instruments.dm @@ -135,6 +135,16 @@ playsound (src, 'sound/instruments/trombone/Cn4.mid', 100,1,-1) ..() +/obj/item/instrument/trombone/sad + name = "sad trombone" + desc = "Wah. Waah. Waaah. Waaaaaaah." + force = 0 + attack_verb = list("Wahed", "Waahed", "Waaahed", "Honked") + +/obj/item/instrument/trombone/sad/attack(mob/living/carbon/C, mob/user) + playsound(loc, 'sound/misc/sadtrombone.ogg', 50, 1, -1) + ..() + /obj/item/instrument/recorder name = "recorder" desc = "Just like in school, playing ability and all." diff --git a/code/modules/martial_arts/krav_maga.dm b/code/modules/martial_arts/krav_maga.dm index 2388a2d24a4..cad7d6451bc 100644 --- a/code/modules/martial_arts/krav_maga.dm +++ b/code/modules/martial_arts/krav_maga.dm @@ -17,6 +17,7 @@ to_chat(owner, "You cancel your prepared attack.") owner.visible_message(" [owner] relaxes [owner.p_their()] stance.") H.mind.martial_art.combos.Cut() + H.mind.martial_art.in_stance = FALSE /datum/action/neck_chop name = "Neck Chop - Injures the neck, stopping the victim from speaking for a while." @@ -150,3 +151,18 @@ desc = "These gloves can teach you to perform Krav Maga using nanochips." icon_state = "fightgloves" item_state = "fightgloves" + +/obj/item/clothing/gloves/color/black/krav_maga/combat // for nukies + name = "combat gloves plus" + desc = "These combat gloves have been upgraded with nanochips that teach the wearer Krav Maga." + icon_state = "combat" + item_state = "swat_gl" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + strip_delay = 8 SECONDS + cold_protection = HANDS + min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT + heat_protection = HANDS + max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT + resistance_flags = NONE + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 50) diff --git a/code/modules/martial_arts/sleeping_carp.dm b/code/modules/martial_arts/sleeping_carp.dm index 7da1634b9da..faded5e7fec 100644 --- a/code/modules/martial_arts/sleeping_carp.dm +++ b/code/modules/martial_arts/sleeping_carp.dm @@ -12,6 +12,7 @@ var/obj/item/grab/G = D.grabbedby(A,1) if(G) G.state = GRAB_AGGRESSIVE //Instant aggressive grab + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Grabbed", ATKLOG_ALL) return TRUE /datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D) @@ -27,6 +28,7 @@ if(prob(D.getBruteLoss()) && !D.lying) D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!") D.Weaken(4) + add_attack_logs(A, D, "Melee attacked with martial-art [src] : Punched", ATKLOG_ALL) return TRUE /datum/martial_art/the_sleeping_carp/explaination_header(user) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index e6dedf2218a..08324fb937a 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -387,6 +387,30 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp to_chat(usr, "AntagHud Toggled OFF") M.antagHUD = FALSE +/mob/dead/observer/verb/set_dnr() + set name = "Set DNR" + set category = "Ghost" + set desc = "Prevent your character from being revived." + + if(!isobserver(src)) // Somehow + return + if(!can_reenter_corpse) + to_chat(src, "You are already set to DNR!") + return + if(!mind || QDELETED(mind.current)) + to_chat(src, "You have no body.") + return + if(mind.current.stat != DEAD) + to_chat(src, "Your body is still alive!") + return + + var/choice = alert(src, "If you enable this, your body will be unrevivable for the remainder of the round.", "Are you sure?", "Yes", "No") + if(choice == "Yes") + to_chat(src, "Do Not Revive state enabled.") + can_reenter_corpse = FALSE + if(!QDELETED(mind.current)) // Could change while they're choosing + mind.current.med_hud_set_status() + /mob/dead/observer/proc/dead_tele() set category = "Ghost" set name = "Teleport" @@ -698,6 +722,9 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp updateghostimages() +/mob/dead/observer/can_see_reagents() + return TRUE + /proc/updateallghostimages() for(var/mob/dead/observer/O in GLOB.player_list) O.updateghostimages() diff --git a/code/modules/mob/living/carbon/brain/robotic_brain.dm b/code/modules/mob/living/carbon/brain/robotic_brain.dm index 908e905c1c8..841b0187d92 100644 --- a/code/modules/mob/living/carbon/brain/robotic_brain.dm +++ b/code/modules/mob/living/carbon/brain/robotic_brain.dm @@ -90,10 +90,13 @@ /obj/item/mmi/robotic_brain/transfer_identity(mob/living/carbon/H) name = "[src] ([H])" - if(isnull(brainmob.dna)) - brainmob.dna = H.dna.Clone() - brainmob.name = brainmob.dna.real_name - brainmob.real_name = brainmob.name + + brainmob.dna = H.dna.Clone() + // I'm not sure we can remove species override. There might be some loophole + // that would allow posibrains to be cloned without this. + brainmob.dna.species = new /datum/species/machine() + brainmob.real_name = brainmob.dna.real_name + brainmob.name = brainmob.real_name brainmob.timeofhostdeath = H.timeofdeath brainmob.stat = CONSCIOUS if(brainmob.mind) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 8b0f8961e53..077b4073ca1 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -215,7 +215,7 @@ if(stat == DEAD) if(M != src) M.visible_message("[M] desperately shakes [src] trying to wake [p_them()] up, but sadly there is no reaction!", \ - "You shake [src] trying to wake [p_them()] sadly they appear to be too far gone!") + "You shake [src] trying to wake [p_them()], sadly they appear to be too far gone!") return if(health >= HEALTH_THRESHOLD_CRIT) if(src == M && ishuman(src)) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index b8257bb877f..d80ab50e0b0 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -118,6 +118,11 @@ on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' else //Everyone else fails, skip the emote attempt return + if("rattle", "rattles") + if(isskeleton(src) || isplasmaman(src)) //Only Plasmamen and Skeletons can rattle. + on_CD = handle_emote_CD() //proc located in code\modules\mob\emote.dm' + else //Everyone else fails, skip the emote attempt + return if("scream", "screams") on_CD = handle_emote_CD(50) //longer cooldown @@ -269,6 +274,12 @@ playsound(loc, 'sound/machines/synth_no.ogg', 50, 1, frequency = get_age_pitch()) m_type = 2 + if("rattle", "rattles") + var/M = handle_emote_param(param) + + message = "[src] rattles [p_their()] bones[M ? " at [M]" : ""]." + m_type = 1 + if("wag", "wags") if(body_accessory) if(body_accessory.try_restrictions(src)) @@ -966,6 +977,10 @@ emotelist += "\nVox specific emotes :- wag(s), swag(s), quill(s)" if("Vulpkanin") emotelist += "\nVulpkanin specific emotes :- wag(s), swag(s), growl(s)-none/mob, howl(s)-none/mob" + if("Plasmaman") + emotelist += "\nPlasmaman specific emotes :- rattle(s)-none/mob" + if("Skeleton") + emotelist += "\nSkeleton specific emotes :- rattle(s)-none/mob" if(ismachineperson(src)) emotelist += "\nMachine specific emotes :- beep(s)-none/mob, buzz(es)-none/mob, no-none/mob, ping(s)-none/mob, yes-none/mob, buzz2-none/mob" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 99f48536593..cd36a902c33 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -205,91 +205,60 @@ stat("Spacepod Integrity", "[!S.health ? "0" : "[(S.health / initial(S.health)) * 100]"]%") /mob/living/carbon/human/ex_act(severity) - var/shielded = 0 - var/b_loss = null - var/f_loss = null - if(status_flags & GODMODE) - return 0 + return FALSE + + var/brute_loss = 0 + var/burn_loss = 0 + var/bomb_armor = getarmor(null, "bomb") + var/list/valid_limbs = list("l_arm", "l_leg", "r_arm", "r_leg") + var/limbs_amount = 1 + var/limb_loss_chance = 50 switch(severity) - if(1) - b_loss += 500 - if(!prob(getarmor(null, "bomb"))) + if(EXPLODE_DEVASTATE) + if(!prob(bomb_armor)) gib() - return 0 + return else + brute_loss = 200 + burn_loss = 200 var/atom/target = get_edge_target_turf(src, get_dir(src, get_step_away(src, src))) throw_at(target, 200, 4) + limbs_amount = 4 - var/limbs_affected = pick(2,3,4) - var/obj/item/organ/external/processing_dismember - var/list/valid_limbs = bodyparts.Copy() - - while(limbs_affected != 0 && valid_limbs.len > 0) - processing_dismember = pick(valid_limbs) - if(processing_dismember.limb_name != "chest" && processing_dismember.limb_name != "head" && processing_dismember.limb_name != "groin") - processing_dismember.droplimb(1,DROPLIMB_SHARP,0,1) - valid_limbs -= processing_dismember - limbs_affected -= 1 - else valid_limbs -= processing_dismember - - if(2) - if(!shielded) //literally nothing could change shielded before this so wth - b_loss += 60 - - f_loss += 60 - - var/limbs_affected = 0 - var/obj/item/organ/external/processing_dismember - var/list/valid_limbs = bodyparts.Copy() - - if(prob(getarmor(null, "bomb"))) - b_loss = b_loss/1.5 - f_loss = f_loss/1.5 - - limbs_affected = pick(1, 1, 2) - else - limbs_affected = pick(1, 2, 3) - - while(limbs_affected != 0 && valid_limbs.len > 0) - processing_dismember = pick(valid_limbs) - if(processing_dismember.limb_name != "chest" && processing_dismember.limb_name != "head" && processing_dismember.limb_name != "groin") - processing_dismember.droplimb(1,DROPLIMB_SHARP,0,1) - valid_limbs -= processing_dismember - limbs_affected -= 1 - else valid_limbs -= processing_dismember - + if(EXPLODE_HEAVY) + brute_loss = 60 + burn_loss = 60 + if(bomb_armor) + brute_loss = 30 * (2 - round(bomb_armor * 0.01, 0.05)) + burn_loss = brute_loss //Damage gets reduced from 120 to up to 60 combined brute+burn if(check_ear_prot() < HEARING_PROTECTION_TOTAL) AdjustEarDamage(30, 120) - if(prob(70) && !shielded) - Paralyse(10) - - if(3) - b_loss += 30 - if(prob(getarmor(null, "bomb"))) - b_loss = b_loss/2 - - else - - var/limbs_affected = pick(0, 1) - var/obj/item/organ/external/processing_dismember - var/list/valid_limbs = bodyparts.Copy() - - while(limbs_affected != 0 && valid_limbs.len > 0) - processing_dismember = pick(valid_limbs) - if(processing_dismember.limb_name != "chest" && processing_dismember.limb_name != "head" && processing_dismember.limb_name != "groin") - processing_dismember.droplimb(1,DROPLIMB_SHARP,0,1) - valid_limbs -= processing_dismember - limbs_affected -= 1 - else valid_limbs -= processing_dismember + Weaken(20 SECONDS_TO_LIFE_CYCLES - (bomb_armor * 1.6 / 10) SECONDS_TO_LIFE_CYCLES) //Between ~4 and ~20 seconds of knockdown depending on bomb armor + if(EXPLODE_LIGHT) + brute_loss = 30 + if(bomb_armor) + brute_loss = 15 * (2 - round(bomb_armor * 0.01, 0.05)) //Reduced from 30 to up to 15 if(check_ear_prot() < HEARING_PROTECTION_TOTAL) AdjustEarDamage(15, 60) - if(prob(50) && !shielded) - Paralyse(10) + Weaken(16 SECONDS_TO_LIFE_CYCLES - (bomb_armor * 1.6 / 10) SECONDS_TO_LIFE_CYCLES) //Between no knockdown to ~16 seconds depending on bomb armor + valid_limbs = list("l_hand", "l_foot", "r_hand", "r_foot") + limb_loss_chance = 25 - take_overall_damage(b_loss,f_loss, TRUE, used_weapon = "Explosive Blast") + //attempt to dismember bodyparts + for(var/X in valid_limbs) + var/obj/item/organ/external/BP = get_organ(X) + if(!BP) //limb already blown off, move to the next one without counting it + continue + if(prob(limb_loss_chance) && !prob(getarmor(BP, "bomb"))) + BP.droplimb(TRUE, DROPLIMB_SHARP, FALSE, TRUE) + limbs_amount-- + if(!limbs_amount) + break + + take_overall_damage(brute_loss, burn_loss, TRUE, used_weapon = "Explosive Blast") ..() diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 5b1e11d1437..4e3727aaf25 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -354,11 +354,12 @@ emp_act if(prob(min(acidpwr * acid_volume / 10, 90))) //Applies disfigurement head_organ.receive_damage(acidity, 2 * acidity) emote("scream") - head_organ.h_style = "Bald" - head_organ.f_style = "Shaved" - update_hair() - update_fhair() head_organ.disfigure() + if(!(NO_HAIR in dna.species.species_traits)) + head_organ.h_style = "Bald" + head_organ.f_style = "Shaved" + update_hair() + update_fhair() UpdateDamageIcon() diff --git a/code/modules/mob/living/carbon/human/species/_species.dm b/code/modules/mob/living/carbon/human/species/_species.dm index 9d642c155f8..215f43b2491 100644 --- a/code/modules/mob/living/carbon/human/species/_species.dm +++ b/code/modules/mob/living/carbon/human/species/_species.dm @@ -807,7 +807,7 @@ if(radiation > RAD_MOB_HAIRLOSS) var/obj/item/organ/external/head/head_organ = H.get_organ("head") - if(!head_organ) + if(!head_organ || (NO_HAIR in species_traits)) return if(prob(15) && head_organ.h_style != "Bald") to_chat(H, "Your hair starts to fall out in clumps...") diff --git a/code/modules/mob/living/carbon/human/species/abductor.dm b/code/modules/mob/living/carbon/human/species/abductor.dm index 058abc8d0cf..646dbe8ac58 100644 --- a/code/modules/mob/living/carbon/human/species/abductor.dm +++ b/code/modules/mob/living/carbon/human/species/abductor.dm @@ -13,7 +13,7 @@ "eyes" = /obj/item/organ/internal/eyes/abductor //3 darksight. ) - species_traits = list(NO_BLOOD) + species_traits = list(NO_BLOOD, NO_HAIR) inherent_traits = list(TRAIT_VIRUSIMMUNE, TRAIT_CHUNKYFINGERS, TRAIT_NOHUNGER, TRAIT_NOBREATH, TRAIT_NOEXAMINE) dies_at_threshold = TRUE diff --git a/code/modules/mob/living/carbon/human/species/diona.dm b/code/modules/mob/living/carbon/human/species/diona.dm index ffb7510dd40..3813dedbdd7 100644 --- a/code/modules/mob/living/carbon/human/species/diona.dm +++ b/code/modules/mob/living/carbon/human/species/diona.dm @@ -20,6 +20,7 @@ even the simplest concepts of other minds. Their alien physiology allows them survive happily off a diet of nothing but light, \ water and other radiation." + species_traits = list(NO_HAIR) inherent_traits = list(TRAIT_NOGERMS, TRAIT_NODECAY) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_PLANT clothing_flags = HAS_SOCKS diff --git a/code/modules/mob/living/carbon/human/species/drask.dm b/code/modules/mob/living/carbon/human/species/drask.dm index 5eb62de833f..05767c244f1 100644 --- a/code/modules/mob/living/carbon/human/species/drask.dm +++ b/code/modules/mob/living/carbon/human/species/drask.dm @@ -31,7 +31,7 @@ "is sucking in warm air!", "is holding their breath!") - species_traits = list(LIPS, IS_WHITELISTED) + species_traits = list(LIPS, IS_WHITELISTED, NO_HAIR) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT bodyflags = HAS_SKIN_TONE | HAS_BODY_MARKINGS has_gender = FALSE diff --git a/code/modules/mob/living/carbon/human/species/golem.dm b/code/modules/mob/living/carbon/human/species/golem.dm index e940136702d..3880d578b58 100644 --- a/code/modules/mob/living/carbon/human/species/golem.dm +++ b/code/modules/mob/living/carbon/human/species/golem.dm @@ -4,7 +4,7 @@ icobase = 'icons/mob/human_races/r_golem.dmi' - species_traits = list(NO_BLOOD) + species_traits = list(NO_BLOOD, NO_HAIR) inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_NOBREATH, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_NOFIRE, TRAIT_CHUNKYFINGERS, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_NOPAIN) inherent_biotypes = MOB_HUMANOID | MOB_MINERAL dies_at_threshold = TRUE diff --git a/code/modules/mob/living/carbon/human/species/grey.dm b/code/modules/mob/living/carbon/human/species/grey.dm index 008fa9b39ac..915d0072434 100644 --- a/code/modules/mob/living/carbon/human/species/grey.dm +++ b/code/modules/mob/living/carbon/human/species/grey.dm @@ -18,7 +18,7 @@ brute_mod = 1.25 //greys are fragile - species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS) + species_traits = list(LIPS, IS_WHITELISTED, CAN_WINGDINGS, NO_HAIR) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_BODY_MARKINGS dietflags = DIET_HERB @@ -81,7 +81,7 @@ to_chat(H, "A speech translator implant has been installed due to your role on the station.") /datum/species/grey/handle_reagents(mob/living/carbon/human/H, datum/reagent/R) - if(R.id == "sacid") + if(R.id == "sacid" || R.id == "facid") H.reagents.remove_reagent(R.id, REAGENTS_METABOLISM) return FALSE if(R.id == "water") diff --git a/code/modules/mob/living/carbon/human/species/kidan.dm b/code/modules/mob/living/carbon/human/species/kidan.dm index da887e261b6..df364f6122b 100644 --- a/code/modules/mob/living/carbon/human/species/kidan.dm +++ b/code/modules/mob/living/carbon/human/species/kidan.dm @@ -9,7 +9,7 @@ hunger_drain = 0.15 tox_mod = 1.7 - species_traits = list(IS_WHITELISTED) + species_traits = list(IS_WHITELISTED, NO_HAIR) inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID | MOB_BUG clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_HEAD_ACCESSORY | HAS_HEAD_MARKINGS | HAS_BODY_MARKINGS diff --git a/code/modules/mob/living/carbon/human/species/plasmaman.dm b/code/modules/mob/living/carbon/human/species/plasmaman.dm index 69f28131aa0..926ed17348e 100644 --- a/code/modules/mob/living/carbon/human/species/plasmaman.dm +++ b/code/modules/mob/living/carbon/human/species/plasmaman.dm @@ -5,7 +5,7 @@ dangerous_existence = TRUE //So so much //language = "Clatter" - species_traits = list(IS_WHITELISTED, NO_BLOOD, NOTRANSSTING) + species_traits = list(IS_WHITELISTED, NO_BLOOD, NOTRANSSTING, NO_HAIR) inherent_traits = list(TRAIT_RADIMMUNE, TRAIT_NOHUNGER) inherent_biotypes = MOB_HUMANOID | MOB_MINERAL forced_heartattack = TRUE // Plasmamen have no blood, but they should still get heart-attacks diff --git a/code/modules/mob/living/carbon/human/species/skeleton.dm b/code/modules/mob/living/carbon/human/species/skeleton.dm index a0f929f3f48..92207de211e 100644 --- a/code/modules/mob/living/carbon/human/species/skeleton.dm +++ b/code/modules/mob/living/carbon/human/species/skeleton.dm @@ -9,7 +9,7 @@ blood_color = "#FFFFFF" flesh_color = "#E6E6C6" - species_traits = list(NO_BLOOD) + species_traits = list(NO_BLOOD, NO_HAIR) inherent_traits = list(TRAIT_RESISTHEAT, TRAIT_NOBREATH, TRAIT_RESISTCOLD, TRAIT_RESISTHIGHPRESSURE, TRAIT_RESISTLOWPRESSURE, TRAIT_RADIMMUNE, TRAIT_PIERCEIMMUNE, TRAIT_NOHUNGER, TRAIT_XENO_IMMUNE) inherent_biotypes = MOB_UNDEAD | MOB_HUMANOID tox_mod = 0 diff --git a/code/modules/mob/living/carbon/human/species/skrell.dm b/code/modules/mob/living/carbon/human/species/skrell.dm index 99fa6344253..1beed1d8773 100644 --- a/code/modules/mob/living/carbon/human/species/skrell.dm +++ b/code/modules/mob/living/carbon/human/species/skrell.dm @@ -12,7 +12,7 @@ the secrets of their empire to their allies." - species_traits = list(LIPS) + species_traits = list(LIPS, NO_HAIR) inherent_traits = list(TRAIT_NOFAT, TRAIT_WATERBREATH) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_SKIN_COLOR | HAS_BODY_MARKINGS diff --git a/code/modules/mob/living/carbon/human/species/wryn.dm b/code/modules/mob/living/carbon/human/species/wryn.dm index 78b707aed31..a88b0efaf8b 100644 --- a/code/modules/mob/living/carbon/human/species/wryn.dm +++ b/code/modules/mob/living/carbon/human/species/wryn.dm @@ -34,7 +34,7 @@ "antennae" = /obj/item/organ/internal/wryn/hivenode ) - species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, HIVEMIND) + species_traits = list(LIPS, IS_WHITELISTED, NO_CLONESCAN, NO_HAIR, HIVEMIND) inherent_traits = list(TRAIT_NOBREATH) clothing_flags = HAS_UNDERWEAR | HAS_UNDERSHIRT | HAS_SOCKS bodyflags = HAS_SKIN_COLOR diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm index 7acb4640b76..eaf7261a7b0 100644 --- a/code/modules/mob/living/silicon/ai/ai.dm +++ b/code/modules/mob/living/silicon/ai/ai.dm @@ -1319,6 +1319,9 @@ GLOBAL_LIST_INIT(ai_verbs_default, list( /mob/living/silicon/ai/proc/open_nearest_door(mob/living/target) if(!istype(target)) return + + if(check_unable(AI_CHECK_WIRELESS)) + return if(target && target.can_track()) var/obj/machinery/door/airlock/A = null diff --git a/code/modules/mob/living/silicon/ai/latejoin.dm b/code/modules/mob/living/silicon/ai/latejoin.dm index e1be5450811..449df48288a 100644 --- a/code/modules/mob/living/silicon/ai/latejoin.dm +++ b/code/modules/mob/living/silicon/ai/latejoin.dm @@ -28,7 +28,7 @@ GLOBAL_LIST_EMPTY(empty_playable_ai_cores) current_mode.possible_traitors.Remove(src) // Ghost the current player and disallow them to return to the body - ghostize(FALSE) + ghostize() // Delete the old AI shell qdel(src) diff --git a/code/modules/mob/living/silicon/robot/drone/drone.dm b/code/modules/mob/living/silicon/robot/drone/drone.dm index 0a4bbfa6ec1..00f70a7031a 100644 --- a/code/modules/mob/living/silicon/robot/drone/drone.dm +++ b/code/modules/mob/living/silicon/robot/drone/drone.dm @@ -8,6 +8,7 @@ health = 35 bubble_icon = "machine" pass_flags = PASSTABLE + flags_2 = RAD_PROTECT_CONTENTS_2 | RAD_NO_CONTAMINATE_2 braintype = "Robot" lawupdate = FALSE density = FALSE @@ -361,6 +362,10 @@ . = ..() density = emagged //this is reset every canmove update otherwise +/mob/living/silicon/robot/drone/add_ventcrawl(obj/machinery/atmospherics/starting_machine) + ..() + update_headlamp(TRUE, 0, FALSE) + /mob/living/silicon/robot/drone/flash_eyes(intensity = 1, override_blindness_check = FALSE, affect_silicon = FALSE, visual = FALSE) if(affect_silicon) return ..() diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index caacfc0e34b..c67d64a72b1 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1146,17 +1146,20 @@ GLOBAL_LIST_INIT(robot_verbs_default, list( if(stat || lamp_recharging || low_power_mode) to_chat(src, "This function is currently offline.") return + if(is_ventcrawling(src)) + return //Some sort of magical "modulo" thing which somehow increments lamp power by 2, until it hits the max and resets to 0. lamp_intensity = (lamp_intensity+2) % (lamp_max+2) to_chat(src, "[lamp_intensity ? "Headlamp power set to Level [lamp_intensity/2]" : "Headlamp disabled."]") update_headlamp() -/mob/living/silicon/robot/proc/update_headlamp(turn_off = 0, cooldown = 100) +/mob/living/silicon/robot/proc/update_headlamp(turn_off = 0, cooldown = 100, show_warning = TRUE) set_light(0) if(lamp_intensity && (turn_off || stat || low_power_mode)) - to_chat(src, "Your headlamp has been deactivated.") + if(show_warning) + to_chat(src, "Your headlamp has been deactivated.") lamp_intensity = 0 lamp_recharging = 1 spawn(cooldown) //10 seconds by default, if the source of the deactivation does not keep stat that long. diff --git a/code/modules/mob/living/simple_animal/bot/honkbot.dm b/code/modules/mob/living/simple_animal/bot/honkbot.dm index 6c9d9d38bee..84a87fbd51f 100644 --- a/code/modules/mob/living/simple_animal/bot/honkbot.dm +++ b/code/modules/mob/living/simple_animal/bot/honkbot.dm @@ -101,6 +101,14 @@ addtimer(CALLBACK(src, .proc/react_buzz), 5) return ..() +/mob/living/simple_animal/bot/honkbot/attackby(obj/item/W, mob/user, params) + ..() + if(istype(W, /obj/item/weldingtool) && user.a_intent != INTENT_HARM) // Any intent but harm will heal, so we shouldn't get angry. + return + if(!istype(W, /obj/item/screwdriver) && (W.force) && (!target) && (W.damtype != STAMINA) ) // Added check for welding tool to fix #2432. Welding tool behavior is handled in superclass. + retaliate(user) + addtimer(CALLBACK(src, .proc/react_buzz), 5) + /mob/living/simple_animal/bot/honkbot/emag_act(mob/user) ..() if(emagged == 2) @@ -167,6 +175,9 @@ sensor_blink() if(!spam_flag) if(ishuman(C)) + var/mob/living/carbon/human/H = C + if(H.check_ear_prot() >= HEARING_PROTECTION_MAJOR) + return C.stuttering = 20 //stammer C.AdjustEarDamage(0, 5) //far less damage than the H.O.N.K. C.Jitter(50) @@ -202,6 +213,7 @@ // if can't reach perp for long enough, go idle if(frustration >= 5) //gives up easier than beepsky walk_to(src, 0) + playsound(loc, 'sound/misc/sadtrombone.ogg', 25, 1, -1) back_to_idle() return if(target) // make sure target exists @@ -257,14 +269,12 @@ if((C.name == oldtarget_name) && (world.time < last_found + 100)) continue - if(threatlevel <= 3) + if(threatlevel <= 3 && emagged <= 1) if(C in view(4, src)) //keep the range short for patrolling if(!spam_flag) bike_horn() - else if(threatlevel >= 10) - bike_horn() //just spam the shit outta this else if(threatlevel >= 4) - if(!spam_flag) + if(!spam_flag || emagged > 1) target = C oldtarget_name = C.name bike_horn() @@ -275,6 +285,8 @@ break else continue + else if(emagged > 1) + bike_horn() //just spam the shit outta this /mob/living/simple_animal/bot/honkbot/explode() //doesn't drop cardboard nor its assembly, since its a very frail material. walk_to(src, 0) diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 415d012b402..cd66b3e9d90 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -503,53 +503,58 @@ /mob/living/simple_animal/pet/dog/corgi/Ian/handle_automated_movement() . = ..() //Feeding, chasing food, FOOOOODDDD - if(!resting && !buckled) - turns_since_scan++ - if(turns_since_scan > 5) - turns_since_scan = 0 - if((movement_target) && !(isturf(movement_target.loc) || ishuman(movement_target.loc) )) - movement_target = null - stop_automated_movement = 0 - if( !movement_target || !(movement_target.loc in oview(src, 3)) ) - movement_target = null - stop_automated_movement = 0 - for(var/obj/item/reagent_containers/food/snacks/S in oview(src,3)) - if(isturf(S.loc) || ishuman(S.loc)) - movement_target = S + if(resting || buckled) + return + + if(++turns_since_scan > 5) + turns_since_scan = 0 + + // Has a target, but it's not where it was before, and it wasn't picked up by someone. + if(movement_target && !(isturf(movement_target.loc) || ishuman(movement_target.loc))) + movement_target = null + stop_automated_movement = FALSE + + // No current target, or current target is out of range. + var/list/snack_range = oview(src, 3) + if(!movement_target || !(movement_target.loc in snack_range)) + movement_target = null + stop_automated_movement = FALSE + var/obj/item/possible_target = null + for(var/I in snack_range) + if(istype(I, /obj/item/reagent_containers/food/snacks)) // Noms + possible_target = I + break + else if(istype(I, /obj/item/paper)) // Important noms + if(prob(10)) + possible_target = I break - if(movement_target) - spawn(0) - stop_automated_movement = 1 - step_to(src,movement_target,1) - sleep(3) - step_to(src,movement_target,1) - sleep(3) - step_to(src,movement_target,1) + if(possible_target && (isturf(possible_target.loc) || ishuman(possible_target.loc))) // On the ground or in someone's hand. + movement_target = possible_target + if(movement_target) + INVOKE_ASYNC(src, .proc/move_to_target) - if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds - if(movement_target.loc.x < src.x) - dir = WEST - else if(movement_target.loc.x > src.x) - dir = EAST - else if(movement_target.loc.y < src.y) - dir = SOUTH - else if(movement_target.loc.y > src.y) - dir = NORTH - else - dir = SOUTH + if(prob(1)) + chasetail() - if(!Adjacent(movement_target)) //can't reach food through windows. - return +/mob/living/simple_animal/pet/dog/corgi/Ian/proc/move_to_target() + stop_automated_movement = TRUE + step_to(src, movement_target, 1) + sleep(3) + step_to(src, movement_target, 1) + sleep(3) + step_to(src, movement_target, 1) - if(isturf(movement_target.loc) ) - movement_target.attack_animal(src) - else if(ishuman(movement_target.loc) ) - if(prob(20)) - custom_emote(1, "stares at [movement_target.loc]'s [movement_target] with a sad puppy-face") + if(movement_target) // Not redundant due to sleeps, Item can be gone in 6 deciseconds + // Face towards the thing + dir = get_dir(src, movement_target) - if(prob(1)) - custom_emote(1, pick("dances around.","chases its tail!")) - spin(20, 1) + if(!Adjacent(movement_target)) //can't reach food through windows. + return + + if(isturf(movement_target.loc)) + movement_target.attack_animal(src) // Eat the thing + else if(prob(30) && ishuman(movement_target.loc)) // mean hooman has stolen it + custom_emote(EMOTE_VISUAL, "stares at [movement_target.loc]'s [movement_target] with a sad puppy-face.") /obj/item/reagent_containers/food/snacks/meat/corgi name = "Corgi meat" diff --git a/code/modules/mob/living/simple_animal/hostile/headcrab.dm b/code/modules/mob/living/simple_animal/hostile/headcrab.dm index c093c8e3d36..8cd010d96e7 100644 --- a/code/modules/mob/living/simple_animal/hostile/headcrab.dm +++ b/code/modules/mob/living/simple_animal/hostile/headcrab.dm @@ -76,9 +76,9 @@ attacktext = "bites" attack_sound = 'sound/creatures/zombie_attack.ogg' icon_state = "zombie2_s" - if(head_organ) + if(head_organ && !(NO_HAIR in H.dna.species.species_traits)) head_organ.h_style = null - H.update_hair() + H.update_hair() host_species = H.dna.species.name human_overlays = H.overlays update_icons() diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 24b87e836fa..146f5562c54 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -478,9 +478,9 @@ GLOBAL_LIST_INIT(intents, list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM lname = "[lname] " to_chat(M, "[lname][follow][message]") -/proc/notify_ghosts(message, ghost_sound = null, enter_link = null, title = null, atom/source = null, image/alert_overlay = null, flashwindow = TRUE, action = NOTIFY_JUMP) //Easy notification of ghosts. +/proc/notify_ghosts(message, ghost_sound = null, enter_link = null, title = null, atom/source = null, image/alert_overlay = null, flashwindow = TRUE, action = NOTIFY_JUMP, role = null) //Easy notification of ghosts. for(var/mob/dead/observer/O in GLOB.player_list) - if(O.client) + if(O.client && (!role || (role in O.client.prefs.be_special))) to_chat(O, "[message][(enter_link) ? " [enter_link]" : ""]") if(ghost_sound) O << sound(ghost_sound) @@ -670,4 +670,3 @@ GLOBAL_LIST_INIT(intents, list(INTENT_HELP,INTENT_DISARM,INTENT_GRAB,INTENT_HARM message_admins("[src.ckey] just got booted back to lobby with no jobs enabled, but antag rolling enabled. Likely antag rolling abuse.") return FALSE //This is the only case someone should actually be completely blocked from antag rolling as well return TRUE - diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index e694f3531ed..ff0875c763c 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -198,7 +198,8 @@ QDEL_NULL(mind) GLOB.respawnable_list += observer qdel(src) - return 1 + return TRUE + return FALSE if(href_list["tos"]) privacy_consent() return FALSE diff --git a/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm b/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm index 6868521f9c2..316f50b96fa 100644 --- a/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm +++ b/code/modules/mob/new_player/sprite_accessories/ipc/ipc_face.dm @@ -88,6 +88,14 @@ name = "Glider IPC Screen" icon_state = "gol_glider" +/datum/sprite_accessory/hair/ipc/ipc_screen_smoking + name = "Smoking IPC Screen" + icon_state = "smoking" + +/datum/sprite_accessory/hair/ipc/ipc_screen_test + name = "Test IPC Screen" + icon_state = "test" + /datum/sprite_accessory/hair/ipc/hesphiastos_alt_off name = "Dark Hesphiastos Screen" icon_state = "off" diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index ec1f6a2d1c4..feb60d9ba67 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -91,13 +91,21 @@ O.job = "Cyborg" if(O.mind && O.mind.assigned_role == "Cyborg") - if(O.mind.role_alt_title == "Robot") - O.mmi = new /obj/item/mmi/robotic_brain(O) - if(O.mmi.brainmob) - O.mmi.brainmob.name = O.name - else - O.mmi = new /obj/item/mmi(O) - O.mmi.transfer_identity(src) //Does not transfer key/client. + var/obj/item/mmi/new_mmi + switch(O.mind.role_alt_title) + if("Robot") + new_mmi = new /obj/item/mmi/robotic_brain(O) + if(new_mmi.brainmob) + new_mmi.brainmob.name = O.name + if("Cyborg") + new_mmi = new /obj/item/mmi(O) + else + // This should never happen, but oh well + new_mmi = new /obj/item/mmi(O) + new_mmi.transfer_identity(src) //Does not transfer key/client. + // Replace the MMI. + QDEL_NULL(O.mmi) + O.mmi = new_mmi O.update_pipe_vision() diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index c8b24eea2c5..ba809fd7119 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -163,6 +163,51 @@ else return ..() +/obj/item/paper/attack_animal(mob/living/simple_animal/M) + if(!isdog(M)) // Only dogs can eat homework. + return + var/mob/living/simple_animal/pet/dog/D = M + D.changeNext_move(CLICK_CD_MELEE) + if(world.time < D.last_eaten + 30 SECONDS) + to_chat(D, "You are too full to try eating [src] now.") + return + + D.visible_message("[D] starts chewing the corner of [src]!", + "You start chewing the corner of [src].", + "You hear a quiet gnawing, and the sound of paper rustling.") + playsound(src, 'sound/effects/pageturn2.ogg', 100, TRUE) + if(!do_after(D, 10 SECONDS, FALSE, src)) + return + + if(world.time < D.last_eaten + 30 SECONDS) // Check again to prevent eating multiple papers at once. + to_chat(D, "You are too full to try eating [src] now.") + return + D.last_eaten = world.time + + // 90% chance of a crumpled paper with illegible text. + if(prob(90)) + var/message_ending = "." + var/obj/item/paper/crumpled/P = new(loc) + P.name = name + if(info) // Something written on the paper. + /*var/new_text = strip_html_properly(info, MAX_PAPER_MESSAGE_LEN, TRUE) // Don't want HTML stuff getting gibberished. + P.info = Gibberish(new_text, 100)*/ + P.info = "Whatever was once written here has been made completely illegible by a combination of chew marks and saliva." + message_ending = ", the drool making it an unreadable mess!" + P.update_icon() + qdel(src) + + D.visible_message("[D] finishes eating [src][message_ending]", + "You finish eating [src][message_ending]") + D.emote("bark") + + // 10% chance of the paper just being eaten entirely. + else + D.visible_message("[D] swallows [src] whole!", "You swallow [src] whole. Tasty!") + playsound(D, 'sound/items/eatfood.ogg', 50, TRUE) + qdel(src) + + /obj/item/paper/proc/addtofield(id, text, links = 0) if(id > MAX_PAPER_FIELDS) return @@ -487,7 +532,8 @@ icon_state = "scrap" /obj/item/paper/crumpled/update_icon() - return + if(info) + icon_state = "scrap_words" /obj/item/paper/crumpled/bloody icon_state = "scrap_bloodied" @@ -591,10 +637,6 @@ name = "paper- 'Note'" info = "The call has gone out! Our ancestral home has been rediscovered! Not a small patch of land, but a true clown nation, a true Clown Planet! We're on our way home at last!" -/obj/item/paper/crumpled - name = "paper scrap" - icon_state = "scrap" - /obj/item/paper/syndicate name = "paper" header = "


" @@ -611,13 +653,6 @@ info = "" footer = "

Failure to adhere appropriately to orders that may be contained herein is in violation of Space Law, and punishments may be administered appropriately upon return to Central Command.
The recipient(s) of this memorandum acknowledge by reading it that they are liable for any and all damages to crew or station that may arise from ignoring suggestions or advice given herein.

" - -/obj/item/paper/crumpled/update_icon() - return - -/obj/item/paper/crumpled/bloody - icon_state = "scrap_bloodied" - /obj/item/paper/evilfax name = "Centcomm Reply" info = "" diff --git a/code/modules/paperwork/photography.dm b/code/modules/paperwork/photography.dm index 465608481a5..a20f3989e43 100644 --- a/code/modules/paperwork/photography.dm +++ b/code/modules/paperwork/photography.dm @@ -167,6 +167,7 @@ var/icon_off = "camera_off" var/size = 3 var/see_ghosts = 0 //for the spoop of it + var/current_photo_num = 1 /obj/item/camera/spooky/CheckParts(list/parts_list) @@ -386,7 +387,10 @@ GLOBAL_LIST_INIT(SpookyGhosts, list("ghost","shade","shade2","ghost-narsie","hor var/datum/picture/P = new() if(istype(src,/obj/item/camera/digital)) P.fields["name"] = input(user,"Name photo:","photo") - P.name = P.fields["name"]//So the name is displayed on the print/delete list. + if(!P.fields["name"]) + P.fields["name"] = "Photo [current_photo_num]" + current_photo_num++ + P.name = P.fields["name"] //So the name is displayed on the print/delete list. else P.fields["name"] = "photo" P.fields["author"] = user diff --git a/code/modules/pda/cart_apps.dm b/code/modules/pda/cart_apps.dm index 1dbd072b263..4606003b49e 100644 --- a/code/modules/pda/cart_apps.dm +++ b/code/modules/pda/cart_apps.dm @@ -148,7 +148,7 @@ . = TRUE - if(!pda.silent) + if(pda && !pda.silent) playsound(pda, 'sound/machines/terminal_select.ogg', 15, TRUE) switch(action) diff --git a/code/modules/power/apc.dm b/code/modules/power/apc.dm index 6382c9fcdca..00fe161e6d4 100644 --- a/code/modules/power/apc.dm +++ b/code/modules/power/apc.dm @@ -1357,8 +1357,20 @@ aidisabled = FALSE updateDialog() -#undef APC_UPDATE_ICON_COOLDOWN +/obj/machinery/power/apc/proc/repair_apc() + if(wires) + wires.repair() + if(!operating) + toggle_breaker() + if(shorted) + shorted = FALSE +/obj/machinery/power/apc/proc/recharge_apc() + var/obj/item/stock_parts/cell/C = get_cell() + if(C) + C.charge = C.maxcharge + +#undef APC_UPDATE_ICON_COOLDOWN #undef APC_EXTERNAL_POWER_NOTCONNECTED #undef APC_EXTERNAL_POWER_NOENERGY #undef APC_EXTERNAL_POWER_GOOD diff --git a/code/modules/power/singularity/containment_field.dm b/code/modules/power/singularity/containment_field.dm index 70ef60b11d6..0701e848a53 100644 --- a/code/modules/power/singularity/containment_field.dm +++ b/code/modules/power/singularity/containment_field.dm @@ -7,6 +7,7 @@ density = 0 move_resist = INFINITY resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF + flags_2 = RAD_NO_CONTAMINATE_2 use_power = NO_POWER_USE light_range = 4 layer = OBJ_LAYER + 0.1 diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index e5aa9dea053..bd14f07c785 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -1,25 +1,38 @@ +#define EMITTER_NEEDS_WRENCH 0 +#define EMITTER_NEEDS_WELDER 1 +#define EMITTER_WELDED 2 + /obj/machinery/power/emitter - name = "Emitter" + name = "emitter" desc = "A heavy duty industrial laser" icon = 'icons/obj/singularity.dmi' icon_state = "emitter" - anchored = 0 - density = 1 + anchored = FALSE + density = TRUE req_access = list(ACCESS_ENGINE_EQUIP) use_power = NO_POWER_USE idle_power_usage = 10 active_power_usage = 300 - var/active = 0 - var/powered = 0 + /// Is the emitter turned on + var/active = FALSE + /// Is the emitter powered + var/powered = FALSE + /// Delay between each emitter shot (In deciseconds) var/fire_delay = 100 + /// Maximum delay between each emitter shot var/maximum_fire_delay = 100 + /// Minimum delay between each emitter shot var/minimum_fire_delay = 20 + /// When was the last emitter shot var/last_shot = 0 + /// How many shots have been fired var/shot_number = 0 - var/state = 0 - var/locked = 0 + /// Construction state + var/state = EMITTER_NEEDS_WRENCH + /// Locked by an ID card + var/locked = FALSE var/projectile_type = /obj/item/projectile/beam/emitter var/projectile_sound = 'sound/weapons/emitter.ogg' @@ -32,12 +45,17 @@ component_parts += new /obj/item/stock_parts/micro_laser(null) component_parts += new /obj/item/stock_parts/manipulator(null) RefreshParts() - if(state == 2 && anchored) + if(state == EMITTER_WELDED && anchored) connect_to_network() sparks = new sparks.attach(src) sparks.set_up(5, 1, src) +/obj/machinery/power/emitter/examine(mob/user) + . = ..() + if(panel_open) + . += "The maintenance panel is open." + /obj/machinery/power/emitter/RefreshParts() var/max_firedelay = 120 var/firedelay = 120 @@ -59,11 +77,10 @@ set category = "Object" set src in oview(1) - if(src.anchored || usr:stat) + if(anchored) to_chat(usr, "It is fastened to the floor!") - return 0 - src.dir = turn(src.dir, 90) - return 1 + return + dir = turn(dir, 90) /obj/machinery/power/emitter/AltClick(mob/user) if(user.incapacitated()) @@ -87,46 +104,49 @@ icon_state = "emitter" -/obj/machinery/power/emitter/attack_hand(mob/user as mob) - src.add_fingerprint(user) - if(state == 2) - if(!powernet) - to_chat(user, "The emitter isn't connected to a wire.") - return 1 - if(!src.locked) - if(src.active==1) - src.active = 0 - to_chat(user, "You turn off the [src].") - message_admins("Emitter turned off by [key_name_admin(user)] in ([x], [y], [z] - JMP)",0,1) - log_game("Emitter turned off by [key_name(user)] in [x], [y], [z]") - investigate_log("turned off by [key_name(usr)]","singulo") - else - src.active = 1 - to_chat(user, "You turn on the [src].") - src.shot_number = 0 - src.fire_delay = maximum_fire_delay - message_admins("Emitter turned on by [key_name_admin(user)] in ([x], [y], [z] - JMP)",0,1) - log_game("Emitter turned on by [key_name(user)] in [x], [y], [z]") - investigate_log("turned on by [key_name(usr)]","singulo") - update_icon() - else - to_chat(user, "The controls are locked!") +/obj/machinery/power/emitter/emag_act(mob/living/user) + if(!emagged) + locked = FALSE + emagged = TRUE + if(user) + user.visible_message("[user] shorts out the lock on [src].", + "You short out the lock on [src].") + +/obj/machinery/power/emitter/attack_hand(mob/user) + add_fingerprint(user) + if(state != EMITTER_WELDED) + to_chat(user, "[src] needs to be firmly secured to the floor first.") + return TRUE + if(!powernet) + to_chat(user, "The emitter isn't connected to a wire.") + return TRUE + if(panel_open) + to_chat(user, "The maintenance panel needs to be closed!") + return + if(locked) + to_chat(user, "The controls are locked!") + return + + var/toggle + if(active) + active = FALSE + toggle = "off" + shot_number = 0 + fire_delay = maximum_fire_delay + investigate_log("turned off by [key_name(user)]", "singulo") else - to_chat(user, "The [src] needs to be firmly secured to the floor first.") - return 1 + active = TRUE + toggle = "on" + investigate_log("turned on by [key_name(user)]", "singulo") - -/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues -// add_load(1000) -/* if((severity == 1)&&prob(1)&&prob(1)) - if(src.active) - src.active = 0 - src.use_power = IDLE_POWER_USE */ - return 1 + to_chat(user, "You turn [src] [toggle].") + message_admins("Emitter turned [toggle] by [key_name_admin(user)] in ([x], [y], [z] - JMP)") + log_game("Emitter turned [toggle] by [key_name(user)] in [x], [y], [z]") + update_icon() /obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M) if(ismegafauna(M) && anchored) - state = 0 + state = EMITTER_NEEDS_WRENCH anchored = FALSE M.visible_message("[M] rips [src] free from its moorings!") else @@ -134,30 +154,120 @@ if(!anchored) step(src, get_dir(M, src)) -/obj/machinery/power/emitter/process() - if(stat & (BROKEN)) +/obj/machinery/power/emitter/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/card/id) || istype(I, /obj/item/pda)) + if(emagged) + to_chat(user, "The lock seems to be broken.") + return + if(allowed(user)) + if(active) + locked = !locked + to_chat(user, "The controls are now [locked ? "locked" : "unlocked"].") + else + locked = FALSE //just in case it somehow gets locked + to_chat(user, "The controls can only be locked when [src] is online!") + else + to_chat(user, "Access denied.") return - if(src.state != 2 || (!powernet && active_power_usage)) - src.active = 0 + + if(exchange_parts(user, I)) + return + + return ..() + +/obj/machinery/power/emitter/wrench_act(mob/living/user, obj/item/I) + . = TRUE + if(active) + to_chat(user, "Turn off [src] first!") + return + if(state == EMITTER_WELDED) + to_chat(user, "[src] needs to be unwelded from the floor!") + return + + if(state == EMITTER_NEEDS_WRENCH) + for(var/obj/machinery/power/emitter/E in get_turf(src)) + if(E.anchored) + to_chat(user, "There is already an emitter here!") + return + state = EMITTER_NEEDS_WELDER + anchored = TRUE + user.visible_message("[user] secures [src] to the floor.", + "You secure the external reinforcing bolts to the floor.", + "You hear a ratchet.") + else + state = EMITTER_NEEDS_WRENCH + anchored = FALSE + user.visible_message("[user] unsecures [src] reinforcing bolts from the floor.", + "You undo the external reinforcing bolts.", + "You hear a ratchet.") + playsound(src, I.usesound, I.tool_volume, TRUE) + +/obj/machinery/power/emitter/screwdriver_act(mob/living/user, obj/item/I) + . = TRUE + if(active) + to_chat(user, "[src] needs to be disabled first!") + return + default_deconstruction_screwdriver(user, "emitter_open", "emitter", I) + +/obj/machinery/power/emitter/crowbar_act(mob/living/user, obj/item/I) + . = TRUE + default_deconstruction_crowbar(user, I) + +/obj/machinery/power/emitter/welder_act(mob/user, obj/item/I) + . = TRUE + if(active) + to_chat(user, "Turn off [src] first.") + return + if(state == EMITTER_NEEDS_WRENCH) + to_chat(user, "[src] needs to be wrenched to the floor.") + return + if(!I.tool_use_check(user, 0)) + return + + if(state == EMITTER_NEEDS_WELDER) + WELDER_ATTEMPT_FLOOR_WELD_MESSAGE + else if(state == EMITTER_WELDED) + WELDER_ATTEMPT_FLOOR_SLICE_MESSAGE + + if(!I.use_tool(src, user, 20, volume = I.tool_volume)) + return + + if(state == EMITTER_NEEDS_WELDER) + WELDER_FLOOR_WELD_SUCCESS_MESSAGE + connect_to_network() + state = EMITTER_WELDED + else if(state == EMITTER_WELDED) + WELDER_FLOOR_SLICE_SUCCESS_MESSAGE + disconnect_from_network() + state = EMITTER_NEEDS_WELDER + +/obj/machinery/power/emitter/emp_act(severity)//Emitters are hardened but still might have issues + return TRUE + +/obj/machinery/power/emitter/process() + if((stat & BROKEN) || !active) + return + if(state != EMITTER_WELDED || (!powernet && active_power_usage)) + active = FALSE update_icon() return - if(active == TRUE) - if(!active_power_usage || surplus() >= active_power_usage) - add_load(active_power_usage) - if(!powered) - powered = 1 - update_icon() - investigate_log("regained power and turned on","singulo") - else - if(powered) - powered = 0 - update_icon() - investigate_log("lost power and turned off","singulo") - return - if(!check_delay()) - return FALSE - fire_beam() + if(!active_power_usage || surplus() >= active_power_usage) + add_load(active_power_usage) + if(!powered) + powered = TRUE + update_icon() + investigate_log("regained power and turned on","singulo") + else + if(powered) + powered = FALSE + update_icon() + investigate_log("lost power and turned off","singulo") + return + + if(!check_delay()) + return FALSE + fire_beam() /obj/machinery/power/emitter/proc/check_delay() if((last_shot + fire_delay) <= world.time) @@ -198,7 +308,7 @@ last_shot = world.time if(shot_number < 3) fire_delay = 20 - shot_number ++ + shot_number++ else fire_delay = rand(minimum_fire_delay, maximum_fire_delay) shot_number = 0 @@ -208,89 +318,6 @@ P.fire() return P -/obj/machinery/power/emitter/attackby(obj/item/W, mob/user, params) - if(istype(W, /obj/item/multitool)) - update_multitool_menu(user) - return 1 - - if(istype(W, /obj/item/wrench)) - if(active) - to_chat(user, "Turn off the [src] first.") - return - switch(state) - if(0) - state = 1 - playsound(src.loc, W.usesound, 75, 1) - user.visible_message("[user.name] secures [src.name] to the floor.", \ - "You secure the external reinforcing bolts to the floor.", \ - "You hear a ratchet") - src.anchored = 1 - if(1) - state = 0 - playsound(src.loc,W.usesound, 75, 1) - user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \ - "You undo the external reinforcing bolts.", \ - "You hear a ratchet") - src.anchored = 0 - if(2) - to_chat(user, "The [src.name] needs to be unwelded from the floor.") - return - - if(istype(W, /obj/item/card/id) || istype(W, /obj/item/pda)) - if(emagged) - to_chat(user, "The lock seems to be broken") - return - if(src.allowed(user)) - if(active) - src.locked = !src.locked - to_chat(user, "The controls are now [src.locked ? "locked." : "unlocked."]") - else - src.locked = 0 //just in case it somehow gets locked - to_chat(user, "The controls can only be locked when the [src] is online") - else - to_chat(user, "Access denied.") - return - - if(default_deconstruction_screwdriver(user, "emitter_open", "emitter", W)) - return - - if(exchange_parts(user, W)) - return - - if(default_deconstruction_crowbar(user, W)) - return - - return ..() - -/obj/machinery/power/emitter/emag_act(mob/living/user as mob) - if(!emagged) - locked = 0 - emagged = 1 - if(user) - user.visible_message("[user.name] emags the [src.name].","You short out the lock.") - - -/obj/machinery/power/emitter/welder_act(mob/user, obj/item/I) - if(active) - to_chat(user, "Turn off [src] first.") - return - if(state == 0) - to_chat(user, "[src] needs to be wrenched to the floor.") - return - . = TRUE - if(!I.tool_use_check(user, 0)) - return - if(state == 1) - WELDER_ATTEMPT_FLOOR_WELD_MESSAGE - else if(state == 2) - WELDER_ATTEMPT_FLOOR_SLICE_MESSAGE - if(!I.use_tool(src, user, 20, volume = I.tool_volume)) - return - if(state == 1) - WELDER_FLOOR_WELD_SUCCESS_MESSAGE - connect_to_network() - state = 2 - else if(state == 2) - WELDER_FLOOR_SLICE_SUCCESS_MESSAGE - disconnect_from_network() - state = 1 +#undef EMITTER_NEEDS_WRENCH +#undef EMITTER_NEEDS_WELDER +#undef EMITTER_WELDED diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index aa4ae90d380..0cc682eae32 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -280,6 +280,10 @@ add_overlay(causality_field, TRUE) var/speaking = "[emergency_alert] The supermatter has reached critical integrity failure. Emergency causality destabilization field has been activated." + for(var/mob/M in GLOB.player_list) // for all players + var/turf/T = get_turf(M) + if(istype(T) && atoms_share_level(T, src)) // if the player is on the same zlevel as the SM shared + SEND_SOUND(M, sound('sound/machines/engine_alert2.ogg')) // then send them the sound file radio.autosay(speaking, name, null, list(z)) for(var/i in SUPERMATTER_COUNTDOWN_TIME to 0 step -10) if(damage < explosion_point) // Cutting it a bit close there engineers @@ -373,9 +377,9 @@ if(last_accent_sound < world.time && prob(20)) var/aggression = min(((damage / 800) * (power / 2500)), 1.0) * 100 if(damage >= 300) - playsound(src, "smdelam", max(50, aggression), FALSE, 40, 30, falloff_distance = 10) + playsound(src, "smdelam", max(50, aggression), FALSE, 40, 30, falloff_distance = 10, channel = CHANNEL_ENGINE) else - playsound(src, "smcalm", max(50, aggression), FALSE, 25, 25, falloff_distance = 10) + playsound(src, "smcalm", max(50, aggression), FALSE, 25, 25, falloff_distance = 10, channel = CHANNEL_ENGINE) var/next_sound = round((100 - aggression) * 5) last_accent_sound = world.time + max(SUPERMATTER_ACCENT_SOUND_MIN_COOLDOWN, next_sound) @@ -564,7 +568,7 @@ zap_count += 1 if(zap_count >= 1) - playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, TRUE, extrarange = 10) + playsound(src.loc, 'sound/weapons/emitter2.ogg', 100, TRUE, extrarange = 10, channel = CHANNEL_ENGINE) for(var/i in 1 to zap_count) supermatter_zap(src, range, clamp(power*2, 4000, 20000), flags) @@ -803,7 +807,7 @@ icon_state = "darkmatter" /obj/machinery/power/supermatter_crystal/proc/supermatter_pull(turf/center, pull_range = 3) - playsound(center, 'sound/weapons/marauder.ogg', 100, TRUE, extrarange = pull_range - world.view) + playsound(center, 'sound/weapons/marauder.ogg', 100, TRUE, extrarange = pull_range - world.view, channel = CHANNEL_ENGINE) for(var/atom/movable/P in orange(pull_range,center)) if((P.anchored || P.move_resist >= MOVE_FORCE_EXTREMELY_STRONG)) //move resist memes. if(istype(P, /obj/structure/closet)) diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm index a840c583128..02eaa84183e 100644 --- a/code/modules/power/tesla/energy_ball.dm +++ b/code/modules/power/tesla/energy_ball.dm @@ -65,7 +65,7 @@ move_the_basket_ball(4 + length(orbiting_balls) * 1.5) - playsound(loc, 'sound/magic/lightningbolt.ogg', 100, TRUE, extrarange = 30) + playsound(loc, 'sound/magic/lightningbolt.ogg', 100, TRUE, extrarange = 30, channel = CHANNEL_ENGINE) pixel_x = 0 pixel_y = 0 @@ -112,7 +112,7 @@ energy_to_lower = energy_to_raise - 20 energy_to_raise = energy_to_raise * 1.25 - playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, TRUE, extrarange = 30) + playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, TRUE, extrarange = 30, channel = CHANNEL_ENGINE) addtimer(CALLBACK(src, .proc/new_mini_ball), 100) else if(energy < energy_to_lower && length(orbiting_balls)) diff --git a/code/modules/projectiles/ammunition.dm b/code/modules/projectiles/ammunition.dm index 58ba6adba90..1e8bd595bb2 100644 --- a/code/modules/projectiles/ammunition.dm +++ b/code/modules/projectiles/ammunition.dm @@ -88,6 +88,13 @@ to_chat(user, "There is no bullet in the casing to inscribe anything into.") ..() +/obj/item/ammo_casing/decompile_act(obj/item/matter_decompiler/C, mob/user) + if(!BB) + C.stored_comms["metal"] += 1 + qdel(src) + return TRUE + return ..() + //Boxes of ammo /obj/item/ammo_box name = "ammo box (generic)" diff --git a/code/modules/projectiles/ammunition/energy.dm b/code/modules/projectiles/ammunition/energy.dm index f8e66f02b80..41e2aa0ed2d 100644 --- a/code/modules/projectiles/ammunition/energy.dm +++ b/code/modules/projectiles/ammunition/energy.dm @@ -125,9 +125,10 @@ fire_sound = 'sound/weapons/pulse3.ogg' /obj/item/ammo_casing/energy/mindflayer - projectile_type = /obj/item/projectile/beam/mindflayer - select_name = "MINDFUCK" - fire_sound = 'sound/weapons/laser.ogg' + projectile_type = /obj/item/projectile/energy/mindflayer + muzzle_flash_color = LIGHT_COLOR_PURPLE + select_name = "mindflayer" + fire_sound = 'sound/weapons/pulse3.ogg' /obj/item/ammo_casing/energy/flora fire_sound = 'sound/effects/stealthoff.ogg' diff --git a/code/modules/projectiles/guns/energy/laser.dm b/code/modules/projectiles/guns/energy/laser.dm index 9848f48c3c2..543989bb146 100644 --- a/code/modules/projectiles/guns/energy/laser.dm +++ b/code/modules/projectiles/guns/energy/laser.dm @@ -1,6 +1,6 @@ /obj/item/gun/energy/laser name = "laser gun" - desc = "A basic energy-based laser gun that fires concentrated beams of light which pass through glass and thin metal." + desc = "A WT-650 'Sentinel' laser carbine manufactured by Warp-Tac Inc. The golden shield of Nanotrasen Security is visible." icon_state = "laser" item_state = "laser" w_class = WEIGHT_CLASS_NORMAL @@ -8,7 +8,7 @@ origin_tech = "combat=4;magnets=2" ammo_type = list(/obj/item/ammo_casing/energy/lasergun) ammo_x_offset = 1 - shaded_charge = 1 + shaded_charge = TRUE /obj/item/gun/energy/laser/practice name = "practice laser gun" @@ -106,6 +106,8 @@ name = "xray laser gun" desc = "A high-power laser gun capable of expelling concentrated xray blasts. These blasts will penetrate solid objects, but will decrease in power the longer they have to travel." icon_state = "xray" + item_state = null + shaded_charge = TRUE origin_tech = "combat=6;materials=4;magnets=4;syndicate=1" ammo_type = list(/obj/item/ammo_casing/energy/xray) diff --git a/code/modules/projectiles/guns/energy/nuclear.dm b/code/modules/projectiles/guns/energy/nuclear.dm index 3d9925da974..a39e018909a 100644 --- a/code/modules/projectiles/guns/energy/nuclear.dm +++ b/code/modules/projectiles/guns/energy/nuclear.dm @@ -1,15 +1,15 @@ /obj/item/gun/energy/gun name = "energy gun" - desc = "A basic energy-based gun with two settings: kill and disable." + desc = "An E-07 energy gun manufactured by Shellguard Munitions. The fire selector has 'kill' and 'disable' settings." icon_state = "energy" item_state = null //so the human update icon uses the icon_state instead. ammo_type = list(/obj/item/ammo_casing/energy/disabler, /obj/item/ammo_casing/energy/laser) origin_tech = "combat=4;magnets=3" modifystate = 2 can_flashlight = 1 - ammo_x_offset = 3 - flight_x_offset = 15 + flight_x_offset = 20 flight_y_offset = 10 + shaded_charge = TRUE /obj/item/gun/energy/gun/cyborg desc = "An energy-based laser gun that draws power from the cyborg's internal energy cell directly. So this is what freedom looks like?" @@ -30,6 +30,7 @@ charge_sections = 3 can_flashlight = 0 // Can't attach or detach the flashlight, and override it's icon update actions_types = list(/datum/action/item_action/toggle_gunlight) + shaded_charge = FALSE /obj/item/gun/energy/gun/mini/Initialize(mapload, ...) gun_light = new /obj/item/flashlight/seclite(src) @@ -51,6 +52,7 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos, /obj/item/ammo_casing/energy/disabler) ammo_x_offset = 4 resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + shaded_charge = FALSE /obj/item/gun/energy/gun/blueshield name = "advanced stun revolver" @@ -60,7 +62,7 @@ force = 7 ammo_type = list(/obj/item/ammo_casing/energy/electrode/hos, /obj/item/ammo_casing/energy/laser/hos) ammo_x_offset = 1 - shaded_charge = 1 + shaded_charge = TRUE /obj/item/gun/energy/gun/blueshield/pdw9 name = "PDW-9 taser pistol" @@ -79,6 +81,7 @@ can_flashlight = 0 trigger_guard = TRIGGER_GUARD_NONE ammo_x_offset = 2 + shaded_charge = FALSE /obj/item/gun/energy/gun/nuclear name = "advanced energy gun" @@ -92,3 +95,4 @@ ammo_x_offset = 1 ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/laser, /obj/item/ammo_casing/energy/disabler) selfcharge = 1 + shaded_charge = FALSE diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 5bd4c4eb283..01f7234b8fa 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -85,10 +85,10 @@ /obj/item/gun/energy/mindflayer name = "\improper Mind Flayer" desc = "A prototype weapon recovered from the ruins of Research-Station Epsilon." - icon_state = "xray" + icon_state = "flayer" item_state = null + shaded_charge = TRUE ammo_type = list(/obj/item/ammo_casing/energy/mindflayer) - ammo_x_offset = 2 // Energy Crossbows // /obj/item/gun/energy/kinetic_accelerator/crossbow diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 141366dd5d9..2247a1a6c9c 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -15,7 +15,7 @@ origin_tech = "combat=4;materials=4;powerstorage=4" ammo_type = list(/obj/item/ammo_casing/energy/shock_revolver) can_flashlight = 0 - shaded_charge = 1 + shaded_charge = FALSE /obj/item/gun/energy/gun/advtaser name = "hybrid taser" @@ -24,6 +24,8 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) origin_tech = "combat=4" ammo_x_offset = 2 + flight_x_offset = 15 + shaded_charge = FALSE /obj/item/gun/energy/gun/advtaser/cyborg name = "cyborg taser" diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm index 248a39f07d4..d50865457dc 100644 --- a/code/modules/projectiles/guns/projectile/shotgun.dm +++ b/code/modules/projectiles/guns/projectile/shotgun.dm @@ -105,7 +105,7 @@ return if(chambered) //if the gun is chambering live ammo, shoot self, if chambering empty ammo, 'click' if(chambered.BB) - afterattack(user, user) + process_fire(user, user) user.visible_message("\The [src] goes off!", "\The [src] goes off in your face!") return else diff --git a/code/modules/projectiles/projectile/special.dm b/code/modules/projectiles/projectile/special.dm index 74dc958c5bd..5d659eca377 100644 --- a/code/modules/projectiles/projectile/special.dm +++ b/code/modules/projectiles/projectile/special.dm @@ -141,10 +141,10 @@ nodamage = 1 flag = "energy" -/obj/item/projectile/beam/mindflayer +/obj/item/projectile/energy/mindflayer name = "flayer ray" -/obj/item/projectile/beam/mindflayer/on_hit(atom/target, blocked = 0) +/obj/item/projectile/energy/mindflayer/on_hit(atom/target, blocked = 0) . = ..() if(ishuman(target)) var/mob/living/carbon/human/M = target diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm index d05f7f4d8ea..a8649eb5145 100644 --- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm +++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm @@ -436,24 +436,26 @@ switch(mode) if("dispense") var/free = target.reagents.maximum_volume - target.reagents.total_volume - var/actual = min(amount, cell.charge / efficiency, free) - target.reagents.add_reagent(current_reagent, actual) - cell.charge -= actual / efficiency + var/actual = min(amount, round(cell.charge * efficiency), free) if(actual) - to_chat(user, "You dispense [amount] units of [current_reagent] into the [target].") - update_icon() + target.reagents.add_reagent(current_reagent, actual) + cell.charge -= actual / efficiency + to_chat(user, "You dispense [actual] unit\s of [current_reagent] into [target].") + update_icon() + else if(free) // If actual is nil and there's still free space, it means we're out of juice + to_chat(user, "Insufficient energy to complete operation.") if("remove") if(!target.reagents.remove_reagent(current_reagent, amount)) - to_chat(user, "You remove [amount] units of [current_reagent] from the [target].") + to_chat(user, "You remove [amount] unit\s of [current_reagent] from [target].") if("isolate") if(!target.reagents.isolate_reagent(current_reagent)) - to_chat(user, "You remove all but the [current_reagent] from the [target].") + to_chat(user, "You remove all but [current_reagent] from [target].") /obj/item/handheld_chem_dispenser/attack_self(mob/user) if(cell) ui_interact(user) else - to_chat(user, "The [src] lacks a power cell!") + to_chat(user, "[src] lacks a power cell!") /obj/item/handheld_chem_dispenser/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.inventory_state) @@ -493,7 +495,7 @@ . = TRUE switch(action) if("amount") - amount = clamp(round(text2num(params["amount"])), 0, 50) // round to nearest 1 and clamp to 0 - 50 + amount = clamp(round(text2num(params["amount"])), 1, 50) // round to nearest 1 and clamp to 1 - 50 if("dispense") if(params["reagent"] in dispensable_reagents) current_reagent = params["reagent"] diff --git a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm index 2422c7a143d..1c6981ff0b5 100644 --- a/code/modules/reagents/chemistry/machinery/reagentgrinder.dm +++ b/code/modules/reagents/chemistry/machinery/reagentgrinder.dm @@ -30,7 +30,7 @@ /obj/item/stack/sheet/mineral/tranquillite = list("nothing" = 20), /obj/item/stack/sheet/mineral/silver = list("silver" = 20), /obj/item/stack/sheet/mineral/gold = list("gold" = 20), - /obj/item/grown/nettle/basic = list("sacid" = 0), + /obj/item/grown/nettle/basic = list("wasabi" = 0), /obj/item/grown/nettle/death = list("facid" = 0, "sacid" = 0), /obj/item/grown/novaflower = list("capsaicin" = 0, "condensedcapsaicin" = 0), diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm index d22adff060d..38430bc3dce 100644 --- a/code/modules/reagents/chemistry/reagents/food.dm +++ b/code/modules/reagents/chemistry/reagents/food.dm @@ -794,6 +794,21 @@ color = "#B4641B" taste_description = "gravy" +/datum/reagent/consumable/wasabi + name = "Wasabi" + id = "wasabi" + description = "A pungent green paste often served with sushi. Consuming too much causes an uncomfortable burning sensation in the nostrils." + reagent_state = LIQUID + color = "#80942F" + taste_description = "pungency" + +/datum/reagent/consumable/wasabi/reaction_mob(mob/living/M, method=REAGENT_TOUCH, volume) + if(method == REAGENT_INGEST) + if(volume <= 1) + to_chat(M, "Your nostrils tingle briefly.") + else + to_chat(M, "Your nostrils burn uncomfortably!") + M.adjustFireLoss(1) ///Food Related, but non-nutritious diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm index c05b578a42c..dd676794f74 100644 --- a/code/modules/reagents/chemistry/reagents/medicine.dm +++ b/code/modules/reagents/chemistry/reagents/medicine.dm @@ -774,6 +774,11 @@ if(M.getBruteLoss() + M.getFireLoss() + M.getCloneLoss() >= 150) M.delayed_gib() return + var/mob/dead/observer/ghost = M.get_ghost(TRUE) + if(ghost && !ghost.can_reenter_corpse) // DNR or AntagHUD + M.visible_message("[M] twitches slightly, but is otherwise unresponsive!") + return + if(!M.suiciding && !HAS_TRAIT(M, TRAIT_HUSK) && !HAS_TRAIT(M, TRAIT_BADDNA)) var/time_dead = world.time - M.timeofdeath M.visible_message("[M] seems to rise from the dead!") diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm index 9a3adde3a0a..c286c6a8ae4 100644 --- a/code/modules/reagents/chemistry/reagents/toxins.dm +++ b/code/modules/reagents/chemistry/reagents/toxins.dm @@ -203,6 +203,7 @@ reagent_state = LIQUID color = "#7DFF00" taste_description = "slime" + can_synth = FALSE /datum/reagent/stable_mutagen/on_new(data) ..() @@ -333,7 +334,7 @@ return ..() | update_flags /datum/reagent/acid/facid/reaction_mob(mob/living/M, method = REAGENT_TOUCH, volume) - if(ishuman(M)) + if(ishuman(M) && !isgrey(M)) var/mob/living/carbon/human/H = M if(method == REAGENT_TOUCH) if(volume > 9) @@ -1076,7 +1077,7 @@ return ..() | update_flags /datum/reagent/pestkiller/reaction_obj(obj/O, volume) - if(istype(O, /obj/effect/decal/ants)) + if(istype(O, /obj/effect/decal/cleanable/ants)) O.visible_message("The ants die.") qdel(O) diff --git a/code/modules/reagents/chemistry/reagents/water.dm b/code/modules/reagents/chemistry/reagents/water.dm index cb69f3b7b31..c51972b99c6 100644 --- a/code/modules/reagents/chemistry/reagents/water.dm +++ b/code/modules/reagents/chemistry/reagents/water.dm @@ -284,7 +284,7 @@ update_flags |= M.adjustStaminaLoss(5, FALSE) if(prob(20)) M.emote("scream") - M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2) + M.mind.vampire.adjust_nullification(5, 2) M.mind.vampire.bloodusable = max(M.mind.vampire.bloodusable - 3,0) if(M.mind.vampire.bloodusable) V.vomit(0,1) @@ -296,7 +296,7 @@ switch(current_cycle) if(1 to 4) to_chat(M, "Something sizzles in your veins!") - M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2) + M.mind.vampire.adjust_nullification(5, 2) if(5 to 12) to_chat(M, "You feel an intense burning inside of you!") update_flags |= M.adjustFireLoss(1, FALSE) @@ -304,7 +304,7 @@ M.Jitter(20) if(prob(20)) M.emote("scream") - M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2) + M.mind.vampire.adjust_nullification(5, 2) if(13 to INFINITY) to_chat(M, "You suddenly ignite in a holy fire!") for(var/mob/O in viewers(M, null)) @@ -316,7 +316,7 @@ M.Jitter(30) if(prob(40)) M.emote("scream") - M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2) + M.mind.vampire.adjust_nullification(5, 2) return ..() | update_flags @@ -333,7 +333,7 @@ return else to_chat(M, "Something holy interferes with your powers!") - M.mind.vampire.nullified = max(5, M.mind.vampire.nullified + 2) + M.mind.vampire.adjust_nullification(5, 2) /datum/reagent/holywater/reaction_turf(turf/simulated/T, volume) diff --git a/code/modules/reagents/chemistry/recipes/drinks.dm b/code/modules/reagents/chemistry/recipes/drinks.dm index 737ccb4e0b9..34ea484d712 100644 --- a/code/modules/reagents/chemistry/recipes/drinks.dm +++ b/code/modules/reagents/chemistry/recipes/drinks.dm @@ -455,7 +455,7 @@ name = "Daiquiri" id = "daiquiri" result = "daiquiri" - required_reagents = list("limejuice" = 1, "sugar" = 1, "rum" = 2) + required_reagents = list("limejuice" = 1, "sugar" = 1, "rum" = 2, "ice" = 1) result_amount = 4 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' diff --git a/code/modules/reagents/chemistry/recipes/toxins.dm b/code/modules/reagents/chemistry/recipes/toxins.dm index 001d8d2f7c6..cf61f2f916b 100644 --- a/code/modules/reagents/chemistry/recipes/toxins.dm +++ b/code/modules/reagents/chemistry/recipes/toxins.dm @@ -154,19 +154,6 @@ result_amount = 3 mix_message = "The substance turns neon green and bubbles unnervingly." -/datum/chemical_reaction/stable_mutagen - name = "Stable mutagen" - id = "stable_mutagen" - result = "stable_mutagen" - required_reagents = list("mutagen" = 1, "lithium" = 1, "acetone" = 1, "bromine" = 1) - result_amount = 3 - mix_message = "The substance turns a drab green and begins to bubble." - -/datum/chemical_reaction/stable_mutagen/stable_mutagen2 - id = "stable_mutagen2" - required_reagents = list("mutadone" = 3, "lithium" = 1) - result_amount = 4 - /datum/chemical_reaction/rotatium name = "Rotatium" id = "Rotatium" diff --git a/code/modules/reagents/reagent_containers/glass_containers.dm b/code/modules/reagents/reagent_containers/glass_containers.dm index c5a5195a848..bead1467de5 100644 --- a/code/modules/reagents/reagent_containers/glass_containers.dm +++ b/code/modules/reagents/reagent_containers/glass_containers.dm @@ -297,6 +297,7 @@ slot_flags = SLOT_HEAD resistance_flags = NONE container_type = OPENCONTAINER + dog_fashion = /datum/dog_fashion/head/bucket /obj/item/reagent_containers/glass/bucket/wooden name = "wooden bucket" diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 945c9744324..adb27fccc82 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -164,9 +164,9 @@ to_chat(user, "You [mode ? "unfasten": "fasten"] the screws around the power connection.") /obj/machinery/disposal/welder_act(mob/user, obj/item/I) - . = TRUE if(mode != required_mode_to_deconstruct) return + . = TRUE if(contents.len > 0) to_chat(user, "Eject the items first!") return diff --git a/code/modules/research/anomaly/anomaly.dm b/code/modules/research/anomaly/anomaly.dm index c8401b6ed99..5074c94afc8 100644 --- a/code/modules/research/anomaly/anomaly.dm +++ b/code/modules/research/anomaly/anomaly.dm @@ -51,3 +51,47 @@ icon_state = "vortex_core" anomaly_type = /obj/effect/anomaly/bhole origin_tech = "engineering=7" + +/obj/item/assembly/signaler/anomaly/random + name = "Random anomaly core" + +/obj/item/assembly/signaler/anomaly/random/New() + ..() + var/list/types = list(/obj/item/assembly/signaler/anomaly/pyro, /obj/item/assembly/signaler/anomaly/grav, /obj/item/assembly/signaler/anomaly/flux, /obj/item/assembly/signaler/anomaly/bluespace, /obj/item/assembly/signaler/anomaly/vortex) + var/A = pick(types) + new A(loc) + qdel(src) + +/obj/item/reactive_armour_shell + name = "reactive armour shell" + desc = "An experimental suit of armour, awaiting installation of an anomaly core." + icon_state = "reactiveoff" + icon = 'icons/obj/clothing/suits.dmi' + w_class = WEIGHT_CLASS_NORMAL + +/obj/item/reactive_armour_shell/attackby(obj/item/I, mob/user, params) + var/static/list/anomaly_armour_types = list( + /obj/item/assembly/signaler/anomaly/grav = /obj/item/clothing/suit/armor/reactive/repulse, + /obj/item/assembly/signaler/anomaly/flux = /obj/item/clothing/suit/armor/reactive/tesla, + /obj/item/assembly/signaler/anomaly/bluespace = /obj/item/clothing/suit/armor/reactive/teleport, + /obj/item/assembly/signaler/anomaly/pyro = /obj/item/clothing/suit/armor/reactive/fire + ) + + if(istype(I, /obj/item/assembly/signaler/anomaly)) + var/obj/item/assembly/signaler/anomaly/A = I + var/armour_path = /obj/item/clothing/suit/armor/reactive/stealth //Fallback + if(istype(I, /obj/item/assembly/signaler/anomaly/grav)) + armour_path = /obj/item/clothing/suit/armor/reactive/repulse + if(istype(I, /obj/item/assembly/signaler/anomaly/flux)) + armour_path = /obj/item/clothing/suit/armor/reactive/tesla + if(istype(I, /obj/item/assembly/signaler/anomaly/bluespace)) + armour_path = /obj/item/clothing/suit/armor/reactive/teleport + if(istype(I, /obj/item/assembly/signaler/anomaly/pyro)) + armour_path = /obj/item/clothing/suit/armor/reactive/fire + if(istype(I, /obj/item/assembly/signaler/anomaly/vortex)) + armour_path = /obj/item/clothing/suit/armor/reactive/stealth // Vortex needs one, this is just temporary(TM) till one is coded for them. + to_chat(user, "You insert [A] into the chest plate, and the armour gently hums to life.") + new armour_path(get_turf(src)) + qdel(src) + qdel(A) + return ..() diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index 22a5c7494bb..b7c208a75cc 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -1056,7 +1056,7 @@ id = "borg_upgrade_disablercooler" build_type = MECHFAB build_path = /obj/item/borg/upgrade/disablercooler - req_tech = list("combat" = 5, "powerstorage" = 4, "engineering" = 4) + req_tech = list("combat" = 7, "powerstorage" = 7, "engineering" = 7) materials = list(MAT_METAL=80000 , MAT_GLASS=6000 , MAT_GOLD= 2000, MAT_DIAMOND = 500) construction_time = 120 category = list("Cyborg Upgrade Modules") diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 417adf813d7..82cf2c7bbf6 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -257,3 +257,15 @@ build_path = /obj/item/gun/energy/immolator locked = 1 category = list("Weapons") + +/datum/design/reactive_armour + name = "Reactive Armor Shell" + desc = "A reactive armor shell, that can have an anomaly core inserted to make a reactive armor" + id = "reactivearmor" + req_tech = list("combat" = 6, "materials" = 7, "engineering" = 5) + build_type = PROTOLATHE + materials = list(MAT_PLASMA = 8000, MAT_TITANIUM = 14000, MAT_BLUESPACE = 6000) //Big strong armor needs big-ish investment + build_path = /obj/item/reactive_armour_shell + locked = TRUE + access_requirement = list(ACCESS_RD) + category = list("Weapons") diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 2cc58c8e68e..3c2e2cfda0c 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -45,18 +45,19 @@ GLOBAL_LIST_EMPTY(message_servers) priority = "Undetermined" /obj/machinery/message_server - icon = 'icons/obj/machines/research.dmi' - icon_state = "server" name = "Messaging Server" - density = 1 - anchored = 1.0 + desc = "A machine that processes and routes PDA and request console messages." + icon = 'icons/obj/machines/telecomms.dmi' + icon_state = "message_server" + density = TRUE + anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 100 var/list/datum/data_pda_msg/pda_msgs = list() var/list/datum/data_rc_msg/rc_msgs = list() - var/active = 1 + var/active = TRUE var/decryptkey = "password" /obj/machinery/message_server/New() @@ -64,22 +65,18 @@ GLOBAL_LIST_EMPTY(message_servers) decryptkey = GenerateKey() send_pda_message("System Administrator", "system", "This is an automated message. The messaging system is functioning correctly.") ..() - return /obj/machinery/message_server/Destroy() GLOB.message_servers -= src return ..() /obj/machinery/message_server/process() - //if(decryptkey == "password") - // decryptkey = generateKey() - if(active && (stat & (BROKEN|NOPOWER))) - active = 0 + if(active && (stat & (BROKEN | NOPOWER))) + active = FALSE + update_icon() return if(prob(3)) playsound(loc, "computer_ambience", 50, 1) - update_icon() - return /obj/machinery/message_server/proc/send_pda_message(recipient = "", sender = "", message = "") pda_msgs += new/datum/data_pda_msg(recipient,sender,message) @@ -114,28 +111,20 @@ GLOBAL_LIST_EMPTY(message_servers) RC.set_light(2) /obj/machinery/message_server/attack_hand(user as mob) -// to_chat(user, "There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few CentComm delays.") to_chat(user, "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]") active = !active update_icon() - return - /obj/machinery/message_server/update_icon() - if((stat & (BROKEN|NOPOWER))) - icon_state = "server-nopower" - else if(!active) - icon_state = "server-off" - else - icon_state = "server-on" + ..() + icon_state = "[initial(icon_state)][panel_open ? "_o" : null][active ? null : "_off"]" - return /obj/machinery/blackbox_recorder icon = 'icons/obj/stationobjs.dmi' icon_state = "blackbox" name = "Blackbox Recorder" - density = 1 - anchored = 1.0 + density = TRUE + anchored = TRUE use_power = IDLE_POWER_USE idle_power_usage = 10 active_power_usage = 100 diff --git a/code/modules/research/protolathe.dm b/code/modules/research/protolathe.dm index 485039c56b7..44fa7e00e1b 100644 --- a/code/modules/research/protolathe.dm +++ b/code/modules/research/protolathe.dm @@ -63,18 +63,18 @@ Note: Must be placed west/left of and R&D console to function. for(var/obj/item/stock_parts/matter_bin/M in component_parts) T += M.rating materials.max_amount = T * 75000 - T = 1.2 + T = 12 for(var/obj/item/stock_parts/manipulator/M in component_parts) - T -= M.rating/10 - efficiency_coeff = min(max(0, T), 1) + T -= M.rating + efficiency_coeff = min(max(0, T / 10), 1) /obj/machinery/r_n_d/protolathe/check_mat(datum/design/being_built, M) // now returns how many times the item can be built with the material var/A = materials.amount(M) if(!A) A = reagents.get_reagent_amount(M) - A = A / max(1, (being_built.reagents_list[M])) + A = A / max(1, (being_built.reagents_list[M] * efficiency_coeff)) else - A = A / max(1, (being_built.materials[M])) + A = A / max(1, (being_built.materials[M] * efficiency_coeff)) return A /obj/machinery/r_n_d/protolathe/attackby(obj/item/O as obj, mob/user as mob, params) diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 7d146e08feb..da21ae77d78 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -427,7 +427,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/enough_materials = TRUE - if(!machine.materials.has_materials(efficient_mats, amount)) + if(!machine.materials.has_materials(being_built.materials, coeff)) atom_say("Not enough materials to complete prototype.") enough_materials = FALSE else diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm index c82ce4dbf50..ac78e892c7e 100644 --- a/code/modules/research/rdmachines.dm +++ b/code/modules/research/rdmachines.dm @@ -122,15 +122,14 @@ /obj/machinery/r_n_d/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted) var/stack_name if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal)) - stack_name = "bluespace polycrystal" + stack_name = "bluespace" use_power(MINERAL_MATERIAL_AMOUNT / 10) else var/obj/item/stack/S = type_inserted stack_name = initial(S.name) use_power(min(1000, (amount_inserted / 100))) - overlays += "[initial(name)]_[stack_name]" - sleep(10) - overlays -= "[initial(name)]_[stack_name]" + add_overlay("protolathe_[stack_name]") + addtimer(CALLBACK(src, /atom/proc/cut_overlay, "protolathe_[stack_name]"), 10) /obj/machinery/r_n_d/proc/check_mat(datum/design/being_built, M) return 0 // number of copies of design beign_built you can make with material M diff --git a/code/modules/research/research.dm b/code/modules/research/research.dm index d4a3626de74..63bfe492692 100644 --- a/code/modules/research/research.dm +++ b/code/modules/research/research.dm @@ -410,3 +410,11 @@ datum/tech/robotics . = ..() var/datum/design/golem_shell/G = new blueprint = G + +/datum/research/autolathe/syndicate/New() + // Used by syndi autolathe in syndie space base ruin. Removes methods of contacting main station. + . = ..() + known_designs -= "intercom_electronics" + known_designs -= "radio_headset" + known_designs -= "bounced_radio" + known_designs -= "newscaster_frame" diff --git a/code/modules/research/server.dm b/code/modules/research/server.dm index 2ca1509b431..74321993be5 100644 --- a/code/modules/research/server.dm +++ b/code/modules/research/server.dm @@ -1,7 +1,7 @@ /obj/machinery/r_n_d/server name = "R&D Server" icon = 'icons/obj/machines/research.dmi' - icon_state = "server" + icon_state = "RD-server" var/datum/research/files var/health = 100 var/list/id_with_upload = list() //List of R&D consoles with upload to server access. @@ -44,6 +44,16 @@ tot_rating += SP.rating heat_gen /= max(1, tot_rating) +/obj/machinery/r_n_d/server/update_icon() + if(stat & NOPOWER) + icon_state = "[initial(icon_state)]-off" + return + icon_state = "[initial(icon_state)]-on" + +/obj/machinery/r_n_d/server/power_change() + . = ..() + update_icon() + /obj/machinery/r_n_d/server/proc/initialize_serv() if(!files) files = new /datum/research(src) @@ -137,7 +147,7 @@ shock(user,50) if(istype(O, /obj/item/screwdriver)) - default_deconstruction_screwdriver(user, "server_o", "server", O) + default_deconstruction_screwdriver(user, "RD-server-on_t", "RD-server-on", O) return 1 if(exchange_parts(user, O)) diff --git a/code/modules/response_team/ert.dm b/code/modules/response_team/ert.dm index 13002089925..f709e0455f9 100644 --- a/code/modules/response_team/ert.dm +++ b/code/modules/response_team/ert.dm @@ -312,6 +312,7 @@ GLOBAL_VAR_INIT(ert_request_answered, FALSE) id = /obj/item/card/id/ert l_ear = /obj/item/radio/headset/ert/alt box = /obj/item/storage/box/responseteam + gloves = /obj/item/clothing/gloves/combat implants = list(/obj/item/implant/mindshield) diff --git a/code/modules/response_team/ert_outfits.dm b/code/modules/response_team/ert_outfits.dm index d5be97a4081..8c3fbda5e57 100644 --- a/code/modules/response_team/ert_outfits.dm +++ b/code/modules/response_team/ert_outfits.dm @@ -54,7 +54,6 @@ /datum/outfit/job/centcom/response_team/commander/amber name = "RT Commander (Amber)" shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/color/black suit = /obj/item/clothing/suit/armor/vest/ert/command glasses = /obj/item/clothing/glasses/sunglasses mask = /obj/item/clothing/mask/gas/sechailer @@ -71,7 +70,6 @@ /datum/outfit/job/centcom/response_team/commander/red name = "RT Commander (Red)" shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/commander glasses = /obj/item/clothing/glasses/sunglasses mask = /obj/item/clothing/mask/gas/sechailer/swat @@ -95,7 +93,6 @@ /datum/outfit/job/centcom/response_team/commander/gamma name = "RT Commander (Gamma)" shoes = /obj/item/clothing/shoes/magboots/advance - gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/commander/gamma glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/sechailer/swat @@ -136,7 +133,6 @@ /datum/outfit/job/centcom/response_team/security/amber name = "RT Security (Amber)" shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/color/black suit = /obj/item/clothing/suit/armor/vest/ert/security suit_store = /obj/item/gun/energy/gun/advtaser glasses = /obj/item/clothing/glasses/hud/security/sunglasses @@ -155,7 +151,6 @@ name = "RT Security (Red)" shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/color/black suit = /obj/item/clothing/suit/space/hardsuit/ert/security suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 glasses = /obj/item/clothing/glasses/sunglasses @@ -183,7 +178,6 @@ /datum/outfit/job/centcom/response_team/security/gamma name = "RT Security (Gamma)" shoes = /obj/item/clothing/shoes/magboots/advance - gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/security/gamma belt = /obj/item/storage/belt/security/response_team_gamma suit_store = /obj/item/gun/energy/gun/nuclear @@ -221,7 +215,6 @@ rt_mob_job = "ERT Engineering" back = /obj/item/storage/backpack/ert/engineer uniform = /obj/item/clothing/under/rank/engineer - belt = /obj/item/storage/belt/utility/full/multitool pda = /obj/item/pda/heads/ert/engineering id = /obj/item/card/id/ert/engineering @@ -229,7 +222,6 @@ /datum/outfit/job/centcom/response_team/engineer/amber name = "RT Engineer (Amber)" shoes = /obj/item/clothing/shoes/magboots - gloves = /obj/item/clothing/gloves/color/yellow suit = /obj/item/clothing/suit/space/hardsuit/ert/engineer suit_store = /obj/item/tank/internals/emergency_oxygen/engi glasses = /obj/item/clothing/glasses/meson/engine @@ -248,7 +240,6 @@ /datum/outfit/job/centcom/response_team/engineer/red name = "RT Engineer (Red)" shoes = /obj/item/clothing/shoes/magboots/advance - gloves = /obj/item/clothing/gloves/color/yellow belt = /obj/item/storage/belt/utility/chief/full suit = /obj/item/clothing/suit/space/hardsuit/ert/engineer/gamma suit_store = /obj/item/tank/internals/emergency_oxygen/engi @@ -274,7 +265,6 @@ /datum/outfit/job/centcom/response_team/engineer/gamma name = "RT Engineer (Gamma)" shoes = /obj/item/clothing/shoes/magboots/advance - gloves = /obj/item/clothing/gloves/color/yellow belt = /obj/item/storage/belt/utility/chief/full suit = /obj/item/clothing/suit/space/hardsuit/ert/engineer/gamma suit_store = /obj/item/gun/energy/gun/blueshield/pdw9 @@ -316,7 +306,6 @@ name = "RT Medic (Amber)" shoes = /obj/item/clothing/shoes/white - gloves = /obj/item/clothing/gloves/color/latex suit = /obj/item/clothing/suit/armor/vest/ert/medical suit_store = /obj/item/gun/energy/gun/mini glasses = /obj/item/clothing/glasses/hud/health @@ -345,7 +334,6 @@ name = "RT Medic (Red)" rt_mob_job = "ERT Medical" shoes = /obj/item/clothing/shoes/white - gloves = /obj/item/clothing/gloves/color/latex/nitrile suit = /obj/item/clothing/suit/space/hardsuit/ert/medical glasses = /obj/item/clothing/glasses/hud/health/sunglasses suit_store = /obj/item/gun/energy/gun @@ -378,7 +366,6 @@ /datum/outfit/job/centcom/response_team/medic/gamma name = "RT Medic (Gamma)" shoes = /obj/item/clothing/shoes/magboots/advance - gloves = /obj/item/clothing/gloves/combat suit = /obj/item/clothing/suit/space/hardsuit/ert/medical/gamma glasses = /obj/item/clothing/glasses/night mask = /obj/item/clothing/mask/gas/sechailer/swat @@ -418,7 +405,6 @@ rt_mob_job = "ERT Paranormal" uniform = /obj/item/clothing/under/rank/chaplain back = /obj/item/storage/backpack/ert/security - gloves = /obj/item/clothing/gloves/color/black shoes = /obj/item/clothing/shoes/combat l_ear = /obj/item/radio/headset/ert/alt glasses = /obj/item/clothing/glasses/hud/security/sunglasses @@ -487,7 +473,6 @@ uniform = /obj/item/clothing/under/color/purple/sensor back = /obj/item/storage/backpack/ert/janitor belt = /obj/item/storage/belt/janitor/full - gloves = /obj/item/clothing/gloves/color/yellow shoes = /obj/item/clothing/shoes/galoshes l_ear = /obj/item/radio/headset/ert/alt id = /obj/item/card/id/centcom @@ -529,7 +514,6 @@ name = "RT Janitor (Gamma)" suit = /obj/item/clothing/suit/space/hardsuit/ert/janitor/gamma glasses = /obj/item/clothing/glasses/hud/security/sunglasses - gloves = /obj/item/clothing/gloves/combat suit_store = /obj/item/gun/energy/gun l_pocket = /obj/item/grenade/clusterbuster/cleaner r_pocket = /obj/item/scythe/tele diff --git a/code/modules/ruins/lavalandruin_code/ash_walker_den.dm b/code/modules/ruins/lavalandruin_code/ash_walker_den.dm index c173097fcad..e03b5a56b00 100644 --- a/code/modules/ruins/lavalandruin_code/ash_walker_den.dm +++ b/code/modules/ruins/lavalandruin_code/ash_walker_den.dm @@ -25,7 +25,7 @@ STOP_PROCESSING(SSprocessing, src) /obj/structure/lavaland/ash_walker/deconstruct(disassembled) - new /obj/item/assembly/signaler/anomaly(get_step(loc, pick(GLOB.alldirs))) + new /obj/item/assembly/signaler/anomaly/random(get_step(loc, pick(GLOB.alldirs))) new /obj/effect/collapse(loc) return ..() @@ -67,6 +67,7 @@ anchored = FALSE move_resist = MOVE_FORCE_NORMAL density = FALSE + death_cooldown = 300 SECONDS important_info = "Do not leave Lavaland without admin permission. Do not attack the mining outpost without being provoked." description = "You are an ashwalker, a native inhabitant of Lavaland. Try to survive with nothing but spears and other tribal technology. Bring dead bodies back to your tendril to create more of your kind. You are free to attack miners and other outsiders." flavour_text = "Your tribe worships the Necropolis. The wastes are sacred ground, its monsters a blessed bounty. \ diff --git a/code/modules/ruins/lavalandruin_code/syndicate_base.dm b/code/modules/ruins/lavalandruin_code/syndicate_base.dm deleted file mode 100644 index 1e745e8d3ed..00000000000 --- a/code/modules/ruins/lavalandruin_code/syndicate_base.dm +++ /dev/null @@ -1,93 +0,0 @@ -// SyndiChem -/obj/machinery/vending/syndichem - name = "\improper SyndiChem" - desc = "A vending machine full of grenades and grenade accessories. Sponsored by DonkCo(tm)." - req_access = list(ACCESS_SYNDICATE) - products = list(/obj/item/stack/cable_coil/random = 5, - /obj/item/assembly/igniter = 20, - /obj/item/assembly/prox_sensor = 5, - /obj/item/assembly/signaler = 5, - /obj/item/assembly/timer = 5, - /obj/item/assembly/voice = 5, - /obj/item/assembly/health = 5, - /obj/item/assembly/infra = 5, - /obj/item/grenade/chem_grenade = 5, - /obj/item/grenade/chem_grenade/large = 5, - /obj/item/grenade/chem_grenade/pyro = 5, - /obj/item/grenade/chem_grenade/cryo = 5, - /obj/item/grenade/chem_grenade/adv_release = 5, - /obj/item/reagent_containers/food/drinks/bottle/holywater = 1) - slogan_list = list("It's not pyromania if you're getting paid!","You smell that? Plasma, son. Nothing else in the world smells like that.","I love the smell of Plasma in the morning.") - resistance_flags = FIRE_PROOF - -// Spawners -/obj/effect/mob_spawn/human/lavaland_syndicate - name = "Syndicate Bioweapon Scientist sleeper" - mob_name = "Syndicate Bioweapon Scientist" - roundstart = FALSE - death = FALSE - icon = 'icons/obj/cryogenic2.dmi' - icon_state = "sleeper_s" - important_info = "Do not work against Syndicate personnel (such as traitors or nuclear operatives). You may work with or against non-Syndicate antagonists on a case-by-case basis. Do not leave your base without admin permission." - description = "Experiment with deadly chems and viruses in peace or help any visiting Syndicate Agent." - flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Continue your research as best you can, and try to keep a low profile. The base is rigged with explosives, do not abandon it or let it fall into enemy hands!\ - It's been made clear to you that the Syndicate will make you regret it if you disappoint them." - outfit = /datum/outfit/lavaland_syndicate - assignedrole = "Lavaland Syndicate" - del_types = list() // Necessary to prevent del_types from removing radio! - allow_species_pick = TRUE - -/obj/effect/mob_spawn/human/lavaland_syndicate/Destroy() - var/obj/structure/fluff/empty_sleeper/syndicate/S = new /obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) - S.setDir(dir) - return ..() - -/datum/outfit/lavaland_syndicate - name = "Lavaland Syndicate Agent" - r_hand = /obj/item/gun/projectile/automatic/sniper_rifle - uniform = /obj/item/clothing/under/syndicate - suit = /obj/item/clothing/suit/storage/labcoat - shoes = /obj/item/clothing/shoes/combat - gloves = /obj/item/clothing/gloves/combat - r_ear = /obj/item/radio/headset/syndicate/alt/lavaland // See del_types above - back = /obj/item/storage/backpack - r_pocket = /obj/item/gun/projectile/automatic/pistol - id = /obj/item/card/id/syndicate/anyone - implants = list(/obj/item/implant/weapons_auth) - -/datum/outfit/lavaland_syndicate/post_equip(mob/living/carbon/human/H) - H.faction |= "syndicate" - -/obj/effect/mob_spawn/human/lavaland_syndicate/comms - name = "Syndicate Comms Agent sleeper" - mob_name = "Syndicate Comms Agent" - important_info = "Do not work against Syndicate personnel (such as traitors or nuclear operatives). You may work with or against non-Syndicate antagonists on a case-by-case basis. Do not leave your base without admin permission. Do not reveal the existence of yourself to NT." - description = "Monitor comms and cameras and try to assist any agents on station while keeping your existence a secret." - flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Unfortunately, your hated enemy, Nanotrasen, has begun mining in this sector. Monitor enemy activity as best you can, and try to keep a low profile." - outfit = /datum/outfit/lavaland_syndicate/comms - -/obj/effect/mob_spawn/human/lavaland_syndicate/comms/space - flavour_text = "You are a syndicate agent, employed in a small listening outpost. You'd be bored to death if you couldn't listen in on those NT idiots mess up all the time." - -/obj/effect/mob_spawn/human/lavaland_syndicate/comms/space/Initialize(mapload) - . = ..() - if(prob(90)) //only has a 10% chance of existing, otherwise it'll just be a NPC syndie. - new /mob/living/simple_animal/hostile/syndicate/ranged(get_turf(src)) - return INITIALIZE_HINT_QDEL - -/datum/outfit/lavaland_syndicate/comms - name = "Lavaland Syndicate Comms Agent" - r_ear = /obj/item/radio/headset/syndicate/alt // See del_types above - r_hand = /obj/item/melee/energy/sword/saber - mask = /obj/item/clothing/mask/chameleon/gps - suit = /obj/item/clothing/suit/armor/vest - backpack_contents = list( - /obj/item/paper/monitorkey = 1 // message console on lavaland does NOT spawn with this - ) - -/obj/item/clothing/mask/chameleon/gps/New() - . = ..() - new /obj/item/gps/internal/lavaland_syndicate_base(src) - -/obj/item/gps/internal/lavaland_syndicate_base - gpstag = "Encrypted Signal" diff --git a/code/modules/ruins/syndicate_space_base.dm b/code/modules/ruins/syndicate_space_base.dm new file mode 100644 index 00000000000..0efe55882df --- /dev/null +++ b/code/modules/ruins/syndicate_space_base.dm @@ -0,0 +1,67 @@ +// SyndiChem +/obj/machinery/vending/syndichem + name = "\improper SyndiChem" + desc = "A vending machine full of grenades and grenade accessories. Sponsored by DonkCo(tm)." + req_access = list(ACCESS_SYNDICATE) + products = list(/obj/item/stack/cable_coil/random = 5, + /obj/item/assembly/igniter = 20, + /obj/item/assembly/prox_sensor = 5, + /obj/item/assembly/signaler = 5, + /obj/item/assembly/timer = 5, + /obj/item/assembly/voice = 5, + /obj/item/assembly/health = 5, + /obj/item/assembly/infra = 5, + /obj/item/grenade/chem_grenade = 5, + /obj/item/grenade/chem_grenade/large = 5, + /obj/item/grenade/chem_grenade/pyro = 5, + /obj/item/grenade/chem_grenade/cryo = 5, + /obj/item/grenade/chem_grenade/adv_release = 5, + /obj/item/reagent_containers/food/drinks/bottle/holywater = 1) + slogan_list = list("It's not pyromania if you're getting paid!","You smell that? Plasma, son. Nothing else in the world smells like that.","I love the smell of Plasma in the morning.") + resistance_flags = FIRE_PROOF + +// Spawners +/obj/effect/mob_spawn/human/spacebase_syndicate + name = "Syndicate Researcher sleeper" + mob_name = "Syndicate Researcher" + roundstart = FALSE + death = FALSE + icon = 'icons/obj/cryogenic2.dmi' + icon_state = "sleeper_s" + important_info = "Do not work against traitors or nukies. Do not leave the base." + description = "Experiment with deadly chems, plants, viruses, etc in peace." + flavour_text = "You are a syndicate agent, employed in a top secret research facility developing biological weapons. Continue your research as best you can, and try to keep a low profile. Do not leave your base or let non-syndicate enter it." + outfit = /datum/outfit/spacebase_syndicate + assignedrole = "Syndicate Researcher" + del_types = list() // Necessary to prevent del_types from removing radio! + allow_species_pick = TRUE + +/obj/effect/mob_spawn/human/spacebase_syndicate/Destroy() + var/obj/structure/fluff/empty_sleeper/syndicate/S = new /obj/structure/fluff/empty_sleeper/syndicate(get_turf(src)) + S.setDir(dir) + return ..() + +/datum/outfit/spacebase_syndicate + name = "Syndicate Researcher" + uniform = /obj/item/clothing/under/syndicate + suit = /obj/item/clothing/suit/storage/labcoat + shoes = /obj/item/clothing/shoes/combat + gloves = /obj/item/clothing/gloves/combat + r_ear = /obj/item/radio/headset/syndicate/alt/nocommon // See del_types above + back = /obj/item/storage/backpack + belt = /obj/item/storage/belt/utility/full/multitool + r_pocket = /obj/item/gun/projectile/automatic/pistol + id = /obj/item/card/id/syndicate/researcher + implants = list(/obj/item/implant/weapons_auth) + backpack_contents = list( + /obj/item/ammo_box/magazine/m10mm = 1, + /obj/item/flashlight = 1, + /obj/item/clothing/mask/gas/syndicate = 1, + /obj/item/tank/internals/emergency_oxygen/engi/syndi = 1 + ) + +/datum/outfit/spacebase_syndicate/post_equip(mob/living/carbon/human/H) + H.faction |= "syndicate" + var/random_name = random_name(pick(MALE,FEMALE), H.dna.species.name) + H.rename_character(H.real_name, random_name) + H.job = "Syndi Researcher" // ensures they show up right in player panel for admins diff --git a/code/modules/station_goals/bluespace_tap.dm b/code/modules/station_goals/bluespace_tap.dm index 5bca3129d0f..6eb4cb9572e 100644 --- a/code/modules/station_goals/bluespace_tap.dm +++ b/code/modules/station_goals/bluespace_tap.dm @@ -156,10 +156,10 @@ /obj/item/reagent_containers/food/snacks/sliceable/cheesecake, /obj/item/reagent_containers/food/snacks/sliceable/bananacake, /obj/item/reagent_containers/food/snacks/sliceable/chocolatecake, - /obj/item/reagent_containers/food/snacks/meatballsoup, - /obj/item/reagent_containers/food/snacks/mysterysoup, - /obj/item/reagent_containers/food/snacks/stew, - /obj/item/reagent_containers/food/snacks/hotchili, + /obj/item/reagent_containers/food/snacks/soup/meatballsoup, + /obj/item/reagent_containers/food/snacks/soup/mysterysoup, + /obj/item/reagent_containers/food/snacks/soup/stew, + /obj/item/reagent_containers/food/snacks/soup/hotchili, /obj/item/reagent_containers/food/snacks/burrito, /obj/item/reagent_containers/food/snacks/fishburger, /obj/item/reagent_containers/food/snacks/cubancarp, diff --git a/code/modules/surgery/organs/augments_arms.dm b/code/modules/surgery/organs/augments_arms.dm index 571d3f06c18..035cb1b31b2 100644 --- a/code/modules/surgery/organs/augments_arms.dm +++ b/code/modules/surgery/organs/augments_arms.dm @@ -62,8 +62,13 @@ Retract() ..() +/obj/item/organ/internal/cyberimp/arm/proc/check_cuffs() + if(owner.handcuffed) + to_chat(owner, "The handcuffs interfere with [src]!") + return TRUE + /obj/item/organ/internal/cyberimp/arm/proc/Retract() - if(!holder || (holder in src)) + if(!holder || (holder in src) || check_cuffs()) return owner.visible_message("[owner] retracts [holder] back into [owner.p_their()] [parent_organ == "r_arm" ? "right" : "left"] arm.", @@ -80,10 +85,9 @@ playsound(get_turf(owner), 'sound/mecha/mechmove03.ogg', 50, 1) /obj/item/organ/internal/cyberimp/arm/proc/Extend(obj/item/item) - if(!(item in src)) + if(!(item in src) || check_cuffs()) return - holder = item holder.flags |= NODROP diff --git a/code/modules/surgery/organs/subtypes/diona.dm b/code/modules/surgery/organs/subtypes/diona.dm index 3317aca4648..9812c3d8fc6 100644 --- a/code/modules/surgery/organs/subtypes/diona.dm +++ b/code/modules/surgery/organs/subtypes/diona.dm @@ -5,6 +5,7 @@ amputation_point = "trunk" encased = null gendered_icon = 0 + convertable_children = list(/obj/item/organ/external/groin/diona) /obj/item/organ/external/groin/diona name = "fork" @@ -17,24 +18,28 @@ max_damage = 35 min_broken_damage = 20 amputation_point = "upper left trunk" + convertable_children = list(/obj/item/organ/external/arm/diona) /obj/item/organ/external/arm/right/diona name = "right upper tendril" max_damage = 35 min_broken_damage = 20 amputation_point = "upper right trunk" + convertable_children = list(/obj/item/organ/external/arm/right/diona) /obj/item/organ/external/leg/diona name = "left lower tendril" max_damage = 35 min_broken_damage = 20 amputation_point = "lower left fork" + convertable_children = list(/obj/item/organ/external/leg/diona) /obj/item/organ/external/leg/right/diona name = "right lower tendril" max_damage = 35 min_broken_damage = 20 amputation_point = "lower right fork" + convertable_children = list(/obj/item/organ/external/leg/right/diona) /obj/item/organ/external/foot/diona name = "left foot" diff --git a/code/modules/surgery/organs/subtypes/skrell.dm b/code/modules/surgery/organs/subtypes/skrell.dm index 9021e53393b..46ca75b623f 100644 --- a/code/modules/surgery/organs/subtypes/skrell.dm +++ b/code/modules/surgery/organs/subtypes/skrell.dm @@ -51,15 +51,18 @@ held_item = null /obj/item/organ/internal/headpocket/emp_act(severity) - held_item.emp_act(severity) + if(held_item) + held_item.emp_act(severity) ..() /obj/item/organ/internal/headpocket/hear_talk(mob/living/M, list/message_pieces) - held_item.hear_talk(M, message_pieces) + if(held_item) + held_item.hear_talk(M, message_pieces) ..() /obj/item/organ/internal/headpocket/hear_message(mob/living/M, msg) - held_item.hear_message(M, msg) + if(held_item) + held_item.hear_message(M, msg) ..() /obj/item/organ/internal/heart/skrell diff --git a/code/modules/surgery/organs/subtypes/unbreakable.dm b/code/modules/surgery/organs/subtypes/unbreakable.dm index b4fca2150fc..047e2f01fa1 100644 --- a/code/modules/surgery/organs/subtypes/unbreakable.dm +++ b/code/modules/surgery/organs/subtypes/unbreakable.dm @@ -1,21 +1,26 @@ /obj/item/organ/external/chest/unbreakable cannot_break = TRUE encased = null + convertable_children = list(/obj/item/organ/external/groin/unbreakable) /obj/item/organ/external/groin/unbreakable cannot_break = TRUE /obj/item/organ/external/arm/unbreakable cannot_break = TRUE + convertable_children = list(/obj/item/organ/external/hand/unbreakable) /obj/item/organ/external/arm/right/unbreakable cannot_break = TRUE + convertable_children = list(/obj/item/organ/external/hand/right/unbreakable) /obj/item/organ/external/leg/unbreakable cannot_break = TRUE + convertable_children = list(/obj/item/organ/external/foot/right/unbreakable) /obj/item/organ/external/leg/right/unbreakable cannot_break = TRUE + convertable_children = list(/obj/item/organ/external/foot/right/unbreakable) /obj/item/organ/external/foot/unbreakable cannot_break = TRUE diff --git a/code/modules/surgery/organs/vocal_cords.dm b/code/modules/surgery/organs/vocal_cords.dm index 6e118068127..51267c859b9 100644 --- a/code/modules/surgery/organs/vocal_cords.dm +++ b/code/modules/surgery/organs/vocal_cords.dm @@ -112,6 +112,9 @@ GLOBAL_DATUM_INIT(multispin_words, /regex, regex("like a record baby")) if(check_flags & AB_CHECK_CONSCIOUS) if(owner.stat) return FALSE + if(istype(owner.loc, /obj/effect/dummy/spell_jaunt)) + to_chat(owner, "No one can hear you when you are jaunting, no point in talking now!") + return FALSE return TRUE /datum/action/item_action/organ_action/colossus/Trigger() @@ -139,12 +142,15 @@ GLOBAL_DATUM_INIT(multispin_words, /regex, regex("like a record baby")) return FALSE if(owner.stat) return FALSE + if(istype(owner.loc, /obj/effect/dummy/spell_jaunt)) + to_chat(owner, "No one can hear you when you are jaunting, no point in talking now!") + return FALSE return TRUE /obj/item/organ/internal/vocal_cords/colossus/handle_speech(message) spans = "colossus yell" //reset spans, just in case someone gets deculted or the cords change owner if(iscultist(owner)) - spans += " narsiesmall" + spans += "narsiesmall" return "[uppertext(message)]" /obj/item/organ/internal/vocal_cords/colossus/speak_with(message) diff --git a/config/example/admin_ranks.txt b/config/example/admin_ranks.txt index 6f37f5bf234..84b0036e2c8 100644 --- a/config/example/admin_ranks.txt +++ b/config/example/admin_ranks.txt @@ -24,21 +24,15 @@ # +SPAWN (or +CREATE) = mob transformations, spawning of most atoms including mobs (high-risk atoms, e.g. blackholes, will require the +FUN flag too) # +EVERYTHING (or +HOST or +ALL) = Simply gives you everything without having to type every flag # +VIEWRUNTIMES = Allows a player to view the runtimes of the server, but not use other debug verbs - + # Admin Ranks Admin Observer Mentor +MENTOR -Moderator +MOD -Trial Admin +ADMIN +BAN +DEBUG +REJUVINATE -Game Admin +ADMIN +BAN +DEBUG +REJUVINATE +BUILDMODE +EVENT +SERVER +POSSESS +STEALTH +VAREDIT +SOUND +SPAWN -Senior Admin +ADMIN +BAN +DEBUG +REJUVINATE +BUILDMODE +EVENT +SERVER +POSSESS +STEALTH +VAREDIT +SOUND +SPAWN -Retired Admin +ADMIN +BAN +STEALTH +VAREDIT +SPAWN +Trial Admin +ADMIN +BAN +STEALTH +REJUVINATE +Game Admin +ADMIN +BAN +DEBUG +REJUVINATE +BUILDMODE +EVENT +SERVER +POSSESS +PROCCALL +STEALTH +VAREDIT +SOUND +SPAWN Head of Staff +EVERYTHING Hosting Provider +EVERYTHING # Coder Ranks -Trial Coder +ADMIN +VAREDIT +REJUVINATE +DEBUG -Coders +ADMIN +VAREDIT +REJUVINATE +DEBUG +BUILDMODE +EVENT +SERVER +POSSESS +STEALTH +SOUND +SPAWN -Retired Coder +ADMIN +VAREDIT +REJUVINATE +DEBUG +BUILDMODE +EVENT +SERVER +POSSESS +STEALTH +SOUND +SPAWN +BAN Maintainers +EVERYTHING \ No newline at end of file diff --git a/config/example/away_mission_config.txt b/config/example/away_mission_config.txt index 5d2967295c2..bfbc792d821 100644 --- a/config/example/away_mission_config.txt +++ b/config/example/away_mission_config.txt @@ -10,24 +10,25 @@ #===================================# # BROKEN / INCOMPLETE AWAY MISSIONS # #===================================# -#_maps/map_files/RandomZLevels/centcomAway.dmm #_maps/map_files/RandomZLevels/example.dmm #_maps/map_files/RandomZLevels/spacebattle.dmm #_maps/map_files/RandomZLevels/stationCollision.dmm +#_maps/map_files/RandomZLevels/spacehotel.dmm +#_maps/map_files/RandomZLevels/wildwest.dmm +#_maps/map_files/RandomZLevels/academy.dmm #===================================# # USABLE AWAY MISSIONS # #===================================# - -_maps/map_files/RandomZLevels/beach.dmm _maps/map_files/RandomZLevels/moonoutpost19.dmm -_maps/map_files/RandomZLevels/undergroundoutpost45.dmm -_maps/map_files/RandomZLevels/academy.dmm +#_maps/map_files/RandomZLevels/undergroundoutpost45.dmm _maps/map_files/RandomZLevels/blackmarketpackers.dmm -_maps/map_files/RandomZLevels/wildwest.dmm _maps/map_files/RandomZLevels/terrorspiders.dmm +_maps/map_files/RandomZLevels/centcomAway.dmm +_maps/map_files/RandomZLevels/beach.dmm + #===================================# # SPECIAL AWAY MISSIONS # #===================================# -#_maps/map_files/RandomZLevels/evil_santa.dmm \ No newline at end of file +#_maps/map_files/RandomZLevels/evil_santa.dmm diff --git a/config/example/config.txt b/config/example/config.txt index f38e30ba40c..c378f41b89d 100644 --- a/config/example/config.txt +++ b/config/example/config.txt @@ -1,11 +1,14 @@ -## Server name: This appears at the top of the screen in-game. In this case it will read "spacestation13: station_name" where station_name is the randomly generated name of the station for the round. Remove the # infront of SERVERNAME and replace 'spacestation13' with the name of your choice -# SERVERNAME spacestation13 +## Server name: This identifies your server in the server list. It may also be used as the title of the game window. +SERVERNAME ParaCode Test ## Server tagline: This appears on the hub entry. -#SERVER_TAG_LINE The Perfect Mix of RP & Action +SERVER_TAG_LINE ParaCode Test ## Server extra features: This appears in the feature list on the hub entry. -#SERVER_EXTRA_FEATURES medium RP, varied species/jobs/modes +SERVER_EXTRA_FEATURES Medium RP, varied species/jobs. + +## Download the RSC from the web - this needs to be regenerated every time the code is changed. +#RESOURCE_URLS http://www.paradisestation.org/windows/paradise.rsc.zip ## Add a # infront of this if you want to use the SQL based admin system, the legacy system uses admins.txt. You need to set up your database to use the SQL based system. ADMIN_LEGACY_SYSTEM @@ -13,9 +16,6 @@ ADMIN_LEGACY_SYSTEM ## Add a # infront of this if you want to use the SQL based banning system. The legacy systems use the files in the data folder. You need to set up your database to use the SQL based system. BAN_LEGACY_SYSTEM -## Add a # infront of this to unlimit the builds used to play. Advised is to keep it atleast 1421 due to the middle mouse button locking exploit -MINIMUM_CLIENT_BUILD 1421 - ## Add a # here if you wish to use the setup where jobs have more access. This is intended for servers with low populations - where there are not enough players to fill all roles, so players need to do more than just one job. Also for servers where they don't want people to hide in their own departments. JOBS_HAVE_MINIMAL_ACCESS @@ -46,12 +46,6 @@ LOG_SAY ## log admin actions LOG_ADMIN -## log debug messages -LOG_DEBUG - -## log admin chat -LOG_ADMINCHAT - ## log client access (logon/logoff) LOG_ACCESS @@ -77,49 +71,53 @@ LOG_PDA LOG_RUNTIME ## log world.log messages -LOG_WORLD_OUTPUT +# LOG_WORLD_OUTPUT ## log all Topic() calls (for use by coders in tracking down Topic issues) -# LOG_HREFS +LOG_HREFS -## log admin warning messages +## log admin warning messages - may result in some message duplication LOG_ADMINWARN -## Amount of minutes that a person has to be AFK before he'll be listed on the "List AFK players" verb -#LIST_AFK_MINIMUM 5 +## Log admin chat +LOG_ADMINCHAT ## Amount of minutes that a person has to be AFK before he will be warned by the AFK subsystem. Leave this 0 to prevent the subsystem from activating -WARN_AFK_MINIMUM 0 +WARN_AFK_MINIMUM 15 ## Amount of minutes that a person has to be AFK before he will be cryod by the AFK subsystem. Leave this 0 to prevent the subsystem from activating -AUTO_CRYO_AFK 0 +AUTO_CRYO_AFK 20 ## Amount of minutes that a person has to be AFK before he will be despawned by the AFK subsystem. Leave this 0 to prevent the subsystem from activating -AUTO_DESPAWN_AFK 0 +AUTO_DESPAWN_AFK 21 ## probablities for game modes chosen in "secret" and "random" modes ## ## default probablity is 1, increase to make that mode more likely to be picked ## set to 0 to disable that mode -PROBABILITY EXTEND-A-TRAITORMONGOUS 3 +PROBABILITY ABDUCTION 0 +PROBABILITY BLOB 1 +PROBABILITY CHANGELING 3 +PROBABILITY CULT 3 +PROBABILITY EXTEND-A-TRAITORMONGOUS 2 +PROBABILITY EXTENDED 3 +PROBABILITY HEIST 0 +PROBABILITY METEOR 0 +PROBABILITY NUCLEAR 2 +PROBABILITY RAGINMAGES 0 +PROBABILITY REVOLUTION 0 +PROBABILITY SHADOWLING 1 +PROBABILITY TRAITOR 2 PROBABILITY TRAITORCHAN 3 PROBABILITY TRAITORVAMP 3 -PROBABILITY REVOLUTION 0 -PROBABILITY SHADOWLING 2 -PROBABILITY CULT 4 -PROBABILITY CHANGELING 3 -PROBABILITY WIZARD 2 -PROBABILITY BLOB 1 -PROBABILITY RAGINMAGES 0 -PROBABILITY METEOR 0 -PROBABILITY HEIST 0 PROBABILITY VAMPIRE 3 -PROBABILITY EXTENDED 2 -PROBABILITY NUCLEAR 3 -PROBABILITY ABDUCTION 0 +PROBABILITY WIZARD 2 -## Maximum cycles shadowlings can remain unhatched before they take damage. 1800 = 60 minutes, 900 = 30 minutes, 0 = feature disabled. -SHADOWLING_MAX_AGE 0 +## Uncomment to allow free golems on all roundtypes. Otherwise, disabled on cult, wiz, raging mages, blob, and nuclear. +#UNRESTRICTED_FREE_GOLEMS + +## MAXIMUM SECONDS SHADOWLINGS CAN REMAIN UNHATCHED BEFORE THEY TAKE DAMAGE +SHADOWLING_MAX_AGE 600 ## Hash out to disable random events during the round. ALLOW_RANDOM_EVENTS @@ -178,9 +176,6 @@ NORESPAWN ## disables calling qdel(src) on newmobs if they logout before spawnin in # DONT_DEL_NEWMOB -## set a hosted by name for unix platforms -# HOSTEDBY Example - ## Set to jobban "Guest-" accounts from Captain, HoS, HoP, CE, RD, CMO, Warden, Security, Detective, and AI positions. ## Set to 1 to jobban them from those positions, set to 0 to allow them. GUEST_JOBBAN @@ -194,7 +189,7 @@ PANIC_BUNKER_THRESHOLD 150 ### IPINTEL: ### This allows you to detect likely proxies by checking ips against getipintel.net ## Rating to warn at: (0.90 is good, 1 is 100% likely to be a spammer/proxy, 0.8 is 80%, etc) anything equal to or higher then this number triggers an admin warning -#IPINTEL_RATING_BAD 0.90 +#IPINTEL_RATING_BAD 0.98 ## Contact email, (required to use the service, leaving blank or default disables IPINTEL) #IPINTEL_EMAIL ch@nge.me ## How long to save good matches (ipintel rate limits to 15 per minute and 500 per day. so this shouldn't be too low, getipintel.net suggests 6 hours, time is in hours) (Your ip will get banned if you go over 500 a day too many times) @@ -217,40 +212,40 @@ PANIC_BUNKER_THRESHOLD 150 #FORUM_PLAYERINFO_URL https://example.com/info.php?ckey= ## Comment to disable checking for the cid randomizer dll. (disabled if database isn't enabled or connected) -CHECK_RANDOMIZER +#CHECK_RANDOMIZER ## the whitelist -#USEWHITELIST +USEWHITELIST ## set a server location for world reboot. Don't include the byond://, just give the address and port. # SERVER server.net:port ## Forum address -# FORUMURL http://example.org +FORUMURL https://www.paradisestation.org/forum/ ## Wiki address -# WIKIURL http://example.org +WIKIURL https://www.paradisestation.org/wiki ## Rules address -# RULESURL http://example.org +RULESURL https://www.paradisestation.org/rules -## GitHub address -# GITHUBURL http://example.org +## Github address +GITHUBURL https://github.com/ParadiseSS13/Paradise ## Discord address -# DISCORDURL http://example.org +#DISCORDURL http://example.org ## Discord address (forum-based invite) -# DISCORDFORUMURL http://example.org +DISCORDFORUMURL https://www.paradisestation.org/forum/discord/invite/general/ ## Donations address -# DONATIONSURL http://example.org +DONATIONSURL https://www.patreon.com/ParadiseStation ## Repository address -# REPOSITORYURL http://example.org +REPOSITORYURL https://github.com/ParadiseSS13/Paradise ## Ban appeals URL - usually for a forum or wherever people should go to contact your admins -# BANAPPEALS http://example.org +BANAPPEALS https://www.paradisestation.org/forum/55-unban-requests/ ## In-game features ## spawns a spellbook which gives object-type spells instead of verb-type spells for the wizard @@ -279,16 +274,13 @@ SOCKET_TALK 0 #AUTOMUTE_ON ## How long the delay is before the Away Mission gate opens. Default is half an hour. -GATEWAY_DELAY 6000 +GATEWAY_DELAY 10 ## Remove the # to give assistants maint access. ASSISTANT_MAINT ## Remove the # to enable assistant limiting. -ASSISTANT_LIMIT - -## If you enabled assistant limiting set the ratio of assistants to security members default is 2 assistants to 1 officer -ASSISTANT_RATIO 2 +#ASSISTANT_LIMIT # Mins before SSD crew are cryoed. AUTO_CRYO_SSD_MINS 15 @@ -296,18 +288,21 @@ AUTO_CRYO_SSD_MINS 15 # If enabled, prevents people interacting with SSD players unless they acknowledge they have read the server rules. SSD_WARNING +## If you enabled assistant limiting set the ratio of assistants to security members default is 2 assistants to 1 officer +ASSISTANT_RATIO 2 + ## Remove the # to make rounds which end instantly (Rev, Wizard, Malf) to continue until the shuttle is called or the station is nuked. ## Malf and Rev will let the shuttle be called when the antags/protags are dead. #CONTINUOUS_ROUNDS ## Uncomment to restrict non-admins from using humanoid alien races -#USEALIENWHITELIST +USEALIENWHITELIST ## Comment this to unrestrict the number of alien players allowed in the round. The number represents the number of alien players for every human player. ALIEN_PLAYER_RATIO 0.2 ##Remove the # to let ghosts spin chairs -GHOST_INTERACTION +#GHOST_INTERACTION ## Password used for authorizing external tools via world/Topic. #COMMS_PASSWORD @@ -326,12 +321,12 @@ EVENT_DELAY_UPPER 15;45;70 ## The delay until the first time an event of the given severity runs in minutes. ## Unset setting use the EVENT_DELAY_LOWER and EVENT_DELAY_UPPER values instead. #EVENT_CUSTOM_START_MINOR 10;15 -#EVENT_CUSTOM_START_MODERATE 30;45 -EVENT_CUSTOM_START_MAJOR 80;100 +EVENT_CUSTOM_START_MODERATE 25;40 +EVENT_CUSTOM_START_MAJOR 55;75 ## Starlight for exterior walls and breaches. Uncomment for starlight! ## This is disabled by default to make testing quicker, should be enabled on production servers or testing servers messing with lighting -#STARLIGHT +STARLIGHT ## Player rerouting stuff ## If not 0, players can be rerouted to an overflow server after a certain cap is reached @@ -349,10 +344,10 @@ PLAYER_REROUTE_CAP 0 #DISABLE_SPACE_RUINS ## Minimum number of space ruins levels to generate -EXTRA_SPACE_RUIN_LEVELS_MIN 4 +EXTRA_SPACE_RUIN_LEVELS_MIN 2 ## Maximum number of space ruins levels to generate -EXTRA_SPACE_RUIN_LEVELS_MAX 8 +EXTRA_SPACE_RUIN_LEVELS_MAX 4 ## Uncomment to disable the OOC/LOOC channel by default. #DISABLE_OOC @@ -390,7 +385,7 @@ EXTRA_SPACE_RUIN_LEVELS_MAX 8 ## Uncomment this to shut down the world any time it would normally reboot #SHUTDOWN_ON_REBOOT ## A command to run prior to the world shutting down, only used if the above option is enabled -## This default value will kill Dream Daemon on Windows machines +## This default value will kill Dream Daemon on Windows machines. #SHUTDOWN_SHELL_COMMAND taskkill /f /im dreamdaemon.exe ## Uncomment this to disable karma and unlock all karma purchases for players by default @@ -420,23 +415,24 @@ HIGH_POP_MC_MODE_AMOUNT 65 ##Disengage high pop mode if player count drops below this DISABLE_HIGH_POP_MC_MODE_AMOUNT 60 -##Developer options - ##Uncomment to enable developer start. Auto starts the server after initialization -##DEVELOPER_EXPRESS_START +#DEVELOPER_EXPRESS_START ## Uncomment to disable automatic admin for localhost #DISABLE_LOCALHOST_ADMIN +## Add a # infront of this to unlimit the builds used to play. Advised is to keep it atleast 1421 due to the middle mouse button locking exploit +MINIMUM_CLIENT_BUILD 1421 + ## Uncomment to give a confirmation before hitting start now #START_NOW_CONFIRMATION ## If uncommented, all gamemodes will respect the number of required players. Defaults to no. -#ENABLE_GAMEMODE_PLAYER_LIMIT +ENABLE_GAMEMODE_PLAYER_LIMIT ## BYOND accounts younger than the value below will alert admins when they connect for the first time, ## as well as making the BYOND account age in player panel bold -BYOND_ACCOUNT_AGE_THRESHOLD 7 +BYOND_ACCOUNT_AGE_THRESHOLD 3 ##### DISCORD STUFF ##### @@ -447,7 +443,7 @@ BYOND_ACCOUNT_AGE_THRESHOLD 7 ## Role ID to be pinged with administrative events. If unset, all pings to this role will be disabled ## IF YOU ARE DISABLING THIS COMMENT IT OUT ENTIRELY, DONT LEAVE IT BLANK -#DISCORD_WEBHOOKS_ADMIN_ROLE_ID +#DISCORD_WEBHOOKS_ADMIN_ROLE_ID 111111111111 ## Webhook URLs for the main discord webhook. Separate multiple URLs with a | (EG: https://url1|https://url2) #DISCORD_WEBHOOKS_MAIN_URL @@ -471,7 +467,7 @@ BYOND_ACCOUNT_AGE_THRESHOLD 7 CENTCOM_BAN_DB_URL https://centcom.melonmesa.com/ban/search/ ## Max amount of CIDs that one ckey can have attached to them before they trip a warning. Set to 0 to disable. -MAX_CLIENT_CID_HISTORY 2 +MAX_CLIENT_CID_HISTORY 20 ## Uncomment to enable automatic performance profiling of rounds -#ENABLE_AUTO_PROFILER +ENABLE_AUTO_PROFILER \ No newline at end of file diff --git a/config/example/dbconfig.txt b/config/example/dbconfig.txt index 7c8f67e57c4..d009ca2c7ea 100644 --- a/config/example/dbconfig.txt +++ b/config/example/dbconfig.txt @@ -5,15 +5,9 @@ ## Should SQL be enabled? Uncomment to enable. #SQL_ENABLED -## Database version. This value is used if SQL_ENABLED is uncommented -## This value must be set to the version of the paradise schema in use. -## If this value does not match, the SQL database will not be loaded and an error will be generated. -## Roundstart will be delayed. -DB_VERSION 23 - ## Server the MySQL database can be found at. # Examples: localhost, 200.135.5.43, www.mysqldb.com, etc. -ADDRESS localhost +ADDRESS 127.0.0.1 ## MySQL server port (default is 3306). PORT 3306 @@ -21,6 +15,11 @@ PORT 3306 ## Database for all SQL functions, not just feedback. FEEDBACK_DATABASE feedback +## This value must be set to the version of the paradise schema in use. +## If this value does not match, the SQL database will not be loaded and an error will be generated. +## Roundstart will be delayed. +DB_VERSION 23 + ## Prefix to be added to the name of every table, older databases will require this be set to erro_ ## If left out defaults to erro_ for legacy reasons, if you want no table prefix, give a blank prefix rather then comment out ## Note, this does not change the table names in the database, you will have to do that yourself. diff --git a/config/example/game_options.txt b/config/example/game_options.txt index b05023098a1..0d81a9402c8 100644 --- a/config/example/game_options.txt +++ b/config/example/game_options.txt @@ -11,11 +11,11 @@ REVIVAL_POD_PLANTS 1 REVIVAL_CLONING 1 ## Amount of time (in hundredths of seconds) for which a brain retains the "spark of life" after the person's death (set to -1 for infinite) -REVIVAL_BRAIN_LIFE -1 +REVIVAL_BRAIN_LIFE 60000 ### AUTO TOGGLE OOC DURING ROUND ### #Uncomment this if you want OOC to be automatically disabled during the round, it will be enabled during the lobby and after the round end results. -#AUTO_TOGGLE_OOC_DURING_ROUND +AUTO_TOGGLE_OOC_DURING_ROUND ### MOB MOVEMENT ### ## We suggest editing these variabled in-game to find a good speed for your server. To do this you must be a high level admin. Open the 'debug' tab ingame. Select "Debug Controller" and then, in the popup, select "Configuration". These variables should have the same name. @@ -27,7 +27,7 @@ WALK_SPEED 4 ## The variables below affect the movement of specific mob types. HUMAN_DELAY 1.5 -ROBOT_DELAY 1.5 +ROBOT_DELAY 2.5 MONKEY_DELAY 1.5 ALIEN_DELAY 1.5 SLIME_DELAY 1.5 diff --git a/config/example/jobs.txt b/config/example/jobs.txt index 44543fca332..6a73ab5f517 100644 --- a/config/example/jobs.txt +++ b/config/example/jobs.txt @@ -6,13 +6,13 @@ Research Director=1 Chief Medical Officer=1 Station Engineer=5 -Roboticist=1 +Roboticist=2 Medical Doctor=5 Geneticist=2 Virologist=1 -Scientist=3 +Scientist=6 Chemist=2 Bartender=1 @@ -27,11 +27,11 @@ Detective=1 Security Officer=7 Assistant=-1 -Atmospheric Technician=4 +Atmospheric Technician=3 Cargo Technician=3 Chaplain=1 Lawyer=2 Librarian=1 AI=1 -Cyborg=1 \ No newline at end of file +Cyborg=1 diff --git a/config/example/jobs_highpop.txt b/config/example/jobs_highpop.txt index 44543fca332..eaaa50d55a9 100644 --- a/config/example/jobs_highpop.txt +++ b/config/example/jobs_highpop.txt @@ -5,33 +5,33 @@ Chief Engineer=1 Research Director=1 Chief Medical Officer=1 -Station Engineer=5 -Roboticist=1 +Station Engineer=6 +Roboticist=2 -Medical Doctor=5 +Medical Doctor=6 Geneticist=2 Virologist=1 -Scientist=3 +Scientist=7 Chemist=2 Bartender=1 Botanist=2 Chef=1 -Janitor=1 +Janitor=2 Quartermaster=1 Shaft Miner=6 Warden=1 Detective=1 -Security Officer=7 +Security Officer=8 Assistant=-1 Atmospheric Technician=4 -Cargo Technician=3 +Cargo Technician=4 Chaplain=1 Lawyer=2 Librarian=1 AI=1 -Cyborg=1 \ No newline at end of file +Cyborg=1 diff --git a/config/example/lavaRuinBlacklist.txt b/config/example/lavaRuinBlacklist.txt index f8fb3fd196a..49b70b5e682 100644 --- a/config/example/lavaRuinBlacklist.txt +++ b/config/example/lavaRuinBlacklist.txt @@ -12,12 +12,13 @@ #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_seed_vault.dmm -#_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm ##SIN #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_envy.dmm +# Gluttony was blacklisted because its reward is 'become morph'. Unblacklisted as it doesn't seem to generate complaints or be abused - but watch it. #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_gluttony.dmm -#_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm +# Greed blacklisted because its reward (dice) has a 1/20 chance of making you a wizard +_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_greed.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_pride.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_sloth.dmm @@ -25,12 +26,14 @@ #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk1.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk2.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_blooddrunk3.dmm -#_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm +#re-removed 7/24/2020, I ran a month-long test of hierophant Jun-Jul and the staff was still too strong. https://github.com/ParadiseSS13/Paradise/pull/13542 +_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_hierophant.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_swarmer_crash.dmm ##MISC #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm -#_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm +# Cube blacklisted because it contains a wishgranter that gives you hijack on use +_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cube.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_cultaltar.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_dead_ratvar.dmm #_maps/map_files/RandomRuins/LavaRuins/lavaland_surface_fountain_hell.dmm" diff --git a/config/example/rank_colours.txt b/config/example/rank_colours.txt new file mode 100644 index 00000000000..b35641c39f4 --- /dev/null +++ b/config/example/rank_colours.txt @@ -0,0 +1,11 @@ +# Use this file to denote colours for ingame admin ranks, using the following format +# Rankname - #12A5F4 +# Colours dont have to be in hex, since this colour string is thrown into the style -aa +Head of Staff - #e74c3c +Maintainer - #992d22 +Server Dev - #1abc9c +Community Manager - #e91e63 +Game Admin - #238afa +Trial Admin - #7fb6fc +PR Reviewer - #c27c0e +Mentor - #f1c40f diff --git a/config/example/rules.html b/config/example/rules.html deleted file mode 100644 index ef37effcea4..00000000000 --- a/config/example/rules.html +++ /dev/null @@ -1,11 +0,0 @@ - -Server Rules - - - - - - \ No newline at end of file diff --git a/config/example/spaceRuinBlacklist.txt b/config/example/spaceRuinBlacklist.txt index 4bd66bba81f..7ca7abb4b3a 100644 --- a/config/example/spaceRuinBlacklist.txt +++ b/config/example/spaceRuinBlacklist.txt @@ -31,6 +31,7 @@ #_maps/map_files/RandomRuins/SpaceRuins/dj.dmm #_maps/map_files/RandomRuins/SpaceRuins/druglab.dmm #_maps/map_files/RandomRuins/SpaceRuins/syndiedepot.dmm +#_maps/map_files/RandomRuins/SpaceRuins/syndie_space_base.dmm #_maps/map_files/RandomRuins/SpaceRuins/ussp_tele.dmm #_maps/map_files/RandomRuins/SpaceRuins/ussp.dmm @@ -42,4 +43,4 @@ # The following is a force-spawned ruin consisting mostly of empty space with a shuttle docking port for the free golem shuttle # Disabling it will lead to the free golem shuttle sometimes being stuck on lavaland. -#_maps/map_files/RandomRuins/SpaceRuins/golemtarget.dmm +#_maps/map_files/RandomRuins/SpaceRuins/golemtarget.dmm \ No newline at end of file diff --git a/config/names/dreams.txt b/config/names/dreams.txt index 4bd2c2b984e..263b57ace12 100644 --- a/config/names/dreams.txt +++ b/config/names/dreams.txt @@ -109,4 +109,4 @@ the AI core the mining station the research station a beaker of strange liquid -Captain [DREAMER] +Captain DREAMER diff --git a/config/names/nightmares.txt b/config/names/nightmares.txt index 022a0494edd..a71f9d0ba84 100644 --- a/config/names/nightmares.txt +++ b/config/names/nightmares.txt @@ -25,4 +25,4 @@ aaaAAAaaaaAAAAAAaa pApErWork we SEE yoU the ceiling -we have been waiting for you [DREAMER] \ No newline at end of file +we have been waiting for you DREAMER \ No newline at end of file diff --git a/icons/effects/parallax.dmi b/icons/effects/parallax.dmi index 22f091ff11a..6f333416a23 100644 Binary files a/icons/effects/parallax.dmi and b/icons/effects/parallax.dmi differ diff --git a/icons/mob/actions/actions.dmi b/icons/mob/actions/actions.dmi index 42e121da40a..6b509da187b 100644 Binary files a/icons/mob/actions/actions.dmi and b/icons/mob/actions/actions.dmi differ diff --git a/icons/mob/blob.dmi b/icons/mob/blob.dmi index 63633844b83..76c9a030c1d 100644 Binary files a/icons/mob/blob.dmi and b/icons/mob/blob.dmi differ diff --git a/icons/mob/corgi_head.dmi b/icons/mob/corgi_head.dmi index 7492b40833d..9c84a030aaf 100644 Binary files a/icons/mob/corgi_head.dmi and b/icons/mob/corgi_head.dmi differ diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 5ff3a9b0fb2..b2d5f08f47b 100644 Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ diff --git a/icons/mob/inhands/guns_lefthand.dmi b/icons/mob/inhands/guns_lefthand.dmi index ca7ed07cfca..d69dd8a988b 100644 Binary files a/icons/mob/inhands/guns_lefthand.dmi and b/icons/mob/inhands/guns_lefthand.dmi differ diff --git a/icons/mob/inhands/guns_righthand.dmi b/icons/mob/inhands/guns_righthand.dmi index 7dc2c9513a5..44968461e65 100644 Binary files a/icons/mob/inhands/guns_righthand.dmi and b/icons/mob/inhands/guns_righthand.dmi differ diff --git a/icons/mob/inhands/items_lefthand.dmi b/icons/mob/inhands/items_lefthand.dmi index 31592dbe262..0564a4b7c7b 100644 Binary files a/icons/mob/inhands/items_lefthand.dmi and b/icons/mob/inhands/items_lefthand.dmi differ diff --git a/icons/mob/inhands/items_righthand.dmi b/icons/mob/inhands/items_righthand.dmi index 8a9c2635d76..f9c0a0d13a8 100644 Binary files a/icons/mob/inhands/items_righthand.dmi and b/icons/mob/inhands/items_righthand.dmi differ diff --git a/icons/mob/species/drask/eyes.dmi b/icons/mob/species/drask/eyes.dmi index 697a8c7fa8d..8c2653cc281 100644 Binary files a/icons/mob/species/drask/eyes.dmi and b/icons/mob/species/drask/eyes.dmi differ diff --git a/icons/mob/species/grey/eyes.dmi b/icons/mob/species/grey/eyes.dmi index 522756904f0..ec6444b0aa4 100644 Binary files a/icons/mob/species/grey/eyes.dmi and b/icons/mob/species/grey/eyes.dmi differ diff --git a/icons/mob/species/vox/eyes.dmi b/icons/mob/species/vox/eyes.dmi index 4d3e8c984dd..3beffab6d9b 100644 Binary files a/icons/mob/species/vox/eyes.dmi and b/icons/mob/species/vox/eyes.dmi differ diff --git a/icons/mob/species/vox/helmet.dmi b/icons/mob/species/vox/helmet.dmi index 52d31674635..968de6b8de8 100644 Binary files a/icons/mob/species/vox/helmet.dmi and b/icons/mob/species/vox/helmet.dmi differ diff --git a/icons/mob/species/vox/suit.dmi b/icons/mob/species/vox/suit.dmi index 5fd53d8d5c6..6dee942eabb 100644 Binary files a/icons/mob/species/vox/suit.dmi and b/icons/mob/species/vox/suit.dmi differ diff --git a/icons/mob/sprite_accessories/ipc/ipc_face.dmi b/icons/mob/sprite_accessories/ipc/ipc_face.dmi index 9339393e386..1c685abeb9f 100644 Binary files a/icons/mob/sprite_accessories/ipc/ipc_face.dmi and b/icons/mob/sprite_accessories/ipc/ipc_face.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 1e185efd9c5..80e2f09d462 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/bureaucracy.dmi b/icons/obj/bureaucracy.dmi index b9cc8b8ca2b..cb29615d4c9 100644 Binary files a/icons/obj/bureaucracy.dmi and b/icons/obj/bureaucracy.dmi differ diff --git a/icons/obj/clothing/glasses.dmi b/icons/obj/clothing/glasses.dmi index 03bcddbd266..14ad340a547 100644 Binary files a/icons/obj/clothing/glasses.dmi and b/icons/obj/clothing/glasses.dmi differ diff --git a/icons/obj/custom_items.dmi b/icons/obj/custom_items.dmi index 8224123aa5d..c33db99411c 100644 Binary files a/icons/obj/custom_items.dmi and b/icons/obj/custom_items.dmi differ diff --git a/icons/obj/doors/doorfireglass.dmi b/icons/obj/doors/doorfireglass.dmi index 33eec559927..61e7dbb174f 100644 Binary files a/icons/obj/doors/doorfireglass.dmi and b/icons/obj/doors/doorfireglass.dmi differ diff --git a/icons/obj/drinks.dmi b/icons/obj/drinks.dmi index 74f0f92a37d..6d30e966c31 100644 Binary files a/icons/obj/drinks.dmi and b/icons/obj/drinks.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index ed71b4d3c1d..8a317b9edb0 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/food/food.dmi b/icons/obj/food/food.dmi index 46e5aed1339..2d0513d9027 100644 Binary files a/icons/obj/food/food.dmi and b/icons/obj/food/food.dmi differ diff --git a/icons/obj/guns/energy.dmi b/icons/obj/guns/energy.dmi index 5ea90e34a92..812b0bfba23 100644 Binary files a/icons/obj/guns/energy.dmi and b/icons/obj/guns/energy.dmi differ diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index dc45f40197c..23c3dcd676c 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ diff --git a/icons/obj/library.dmi b/icons/obj/library.dmi index 645cb812422..dc12bb7dd67 100644 Binary files a/icons/obj/library.dmi and b/icons/obj/library.dmi differ diff --git a/icons/obj/machines/research.dmi b/icons/obj/machines/research.dmi index b5ba742e661..97eba50512f 100644 Binary files a/icons/obj/machines/research.dmi and b/icons/obj/machines/research.dmi differ diff --git a/icons/obj/machines/telecomms.dmi b/icons/obj/machines/telecomms.dmi new file mode 100644 index 00000000000..8353fa754ab Binary files /dev/null and b/icons/obj/machines/telecomms.dmi differ diff --git a/icons/obj/objects.dmi b/icons/obj/objects.dmi index f3cff7fbd9a..f9cb6e9ae6c 100644 Binary files a/icons/obj/objects.dmi and b/icons/obj/objects.dmi differ diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 104d7301434..f8f147de5ed 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ diff --git a/icons/obj/robotics.dmi b/icons/obj/robotics.dmi index b50e4c35690..8d0627aa958 100644 Binary files a/icons/obj/robotics.dmi and b/icons/obj/robotics.dmi differ diff --git a/icons/obj/singularity.dmi b/icons/obj/singularity.dmi index 118d0c21896..d56355516ce 100644 Binary files a/icons/obj/singularity.dmi and b/icons/obj/singularity.dmi differ diff --git a/icons/obj/stationobjs.dmi b/icons/obj/stationobjs.dmi index 9c3e072c74d..00eac418e67 100755 Binary files a/icons/obj/stationobjs.dmi and b/icons/obj/stationobjs.dmi differ diff --git a/icons/obj/tcomms.dmi b/icons/obj/tcomms.dmi deleted file mode 100644 index 651de700b35..00000000000 Binary files a/icons/obj/tcomms.dmi and /dev/null differ diff --git a/icons/obj/vending.dmi b/icons/obj/vending.dmi index bedb0238ab6..ef613913f9f 100755 Binary files a/icons/obj/vending.dmi and b/icons/obj/vending.dmi differ diff --git a/paradise.dme b/paradise.dme index cb57760a665..87d2a7b506e 100644 --- a/paradise.dme +++ b/paradise.dme @@ -461,6 +461,7 @@ #include "code\game\area\areas\depot-areas.dm" #include "code\game\area\areas\mining.dm" #include "code\game\area\areas\ruins\lavaland.dm" +#include "code\game\area\areas\ruins\syndicate_space_base.dm" #include "code\game\dna\dna2.dm" #include "code\game\dna\dna2_domutcheck.dm" #include "code\game\dna\dna2_helpers.dm" @@ -2335,6 +2336,7 @@ #include "code\modules\response_team\ert.dm" #include "code\modules\response_team\ert_outfits.dm" #include "code\modules\ruins\ruin_areas.dm" +#include "code\modules\ruins\syndicate_space_base.dm" #include "code\modules\ruins\lavalandruin_code\animal_hospital.dm" #include "code\modules\ruins\lavalandruin_code\ash_walker_den.dm" #include "code\modules\ruins\lavalandruin_code\clown_planet.dm" @@ -2345,7 +2347,6 @@ #include "code\modules\ruins\lavalandruin_code\puzzle.dm" #include "code\modules\ruins\lavalandruin_code\seed_vault.dm" #include "code\modules\ruins\lavalandruin_code\sin_ruins.dm" -#include "code\modules\ruins\lavalandruin_code\syndicate_base.dm" #include "code\modules\ruins\objects_and_mobs\gym.dm" #include "code\modules\ruins\objects_and_mobs\necropolis_gate.dm" #include "code\modules\security_levels\keycard_authentication.dm" diff --git a/tgui/packages/tgui/interfaces/GuestPass.js b/tgui/packages/tgui/interfaces/GuestPass.js new file mode 100644 index 00000000000..0869d2920b8 --- /dev/null +++ b/tgui/packages/tgui/interfaces/GuestPass.js @@ -0,0 +1,116 @@ +import { Fragment } from "inferno"; +import { useBackend } from "../backend"; +import { Box, Button, LabeledList, Section, Tabs } from "../components"; +import { Window } from "../layouts"; +import { AccessList } from './common/AccessList'; + +export const GuestPass = (props, context) => { + const { act, data } = useBackend(context); + return ( + + + + act("mode", { mode: 0 })} > + Issue Pass + + act("mode", { mode: 1 })}> + Records ({data.issue_log.length}) + + +
+ + +
+ {!data.showlogs && ( +
+ + +
+ )} + {!!data.showlogs && ( +
+ {!!data.issue_log.length && ( + + + {data.issue_log.map((a, i) => ( + + {a} + + ))} + +
+ )} +
+
+ ); +}; diff --git a/tgui/packages/tgui/interfaces/NuclearBomb.js b/tgui/packages/tgui/interfaces/NuclearBomb.js index e3d7b1cc949..209fad1cbf3 100644 --- a/tgui/packages/tgui/interfaces/NuclearBomb.js +++ b/tgui/packages/tgui/interfaces/NuclearBomb.js @@ -49,7 +49,7 @@ export const NuclearBomb = (props, context) => {