mirror of
https://github.com/quotefox/Hyper-Station-13.git
synced 2026-08-29 15:46:22 +01:00
Merge branch 'master' into Dynamic2
This commit is contained in:
@@ -167,7 +167,7 @@
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"aM" = (
|
||||
/obj/structure/alien/weeds,
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"aQ" = (
|
||||
@@ -260,7 +260,7 @@
|
||||
/obj/structure/stone_tile/cracked{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/indestructible/boss,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"be" = (
|
||||
@@ -381,7 +381,7 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/indestructible/boss,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"bs" = (
|
||||
@@ -439,7 +439,7 @@
|
||||
/obj/structure/stone_tile{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/indestructible/boss,
|
||||
/area/ruin/unpowered/xenonest)
|
||||
"by" = (
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
"aa" = (/turf/template_noop,/area/template_noop)
|
||||
"ab" = (/turf/open/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"ac" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"aa" = (/turf/template_noop,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ab" = (/turf/open/lava/smooth/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ac" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ad" = (/obj/machinery/porta_turret/syndicate{dir = 9},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"ae" = (/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"af" = (/obj/machinery/light/small{dir = 4},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
@@ -19,13 +19,13 @@
|
||||
"as" = (/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"at" = (/obj/structure/grille,/obj/structure/window/plastitanium,/obj/machinery/door/poddoor{id = "lavalandsyndi_chemistry"},/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"au" = (/turf/open/floor/plasteel/white/side{dir = 4},/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"av" = (/obj/structure/flora/rock/pile,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"av" = (/obj/structure/flora/rock/pile,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"aw" = (/obj/machinery/camera{c_tag = "Xenobiology Inner South"; dir = 4; network = list("ss13","rd")},/turf/open/floor/mineral/plastitanium,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"ax" = (/obj/structure/table/reinforced,/obj/machinery/camera{c_tag = "Xenobiology Inner South"; dir = 4; network = list("ss13","rd")},/obj/item/extinguisher,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"ay" = (/obj/machinery/porta_turret/syndicate{dir = 10},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"az" = (/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"aA" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/mineral/plastitanium,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"aB" = (/obj/machinery/porta_turret/syndicate{dir = 8},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"aB" = (/obj/machinery/porta_turret/syndicate{dir = 8},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"aC" = (/obj/machinery/porta_turret/syndicate{dir = 4},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"aD" = (/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/compact/combat,/turf/open/floor/plasteel/white/side{dir = 9},/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"aE" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/telecomms)
|
||||
@@ -46,10 +46,10 @@
|
||||
"aT" = (/obj/machinery/atmospherics/pipe/manifold/general/visible{dir = 8},/turf/open/floor/circuit/telecomms,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"aU" = (/obj/machinery/atmospherics/pipe/simple/general/visible{dir = 4},/turf/open/floor/circuit/telecomms,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"aV" = (/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"aW" = (/obj/structure/lattice/catwalk,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"aW" = (/obj/structure/lattice/catwalk,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"aX" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1; external_pressure_bound = 140; name = "killroom vent"; pressure_checks = 0},/turf/open/floor/circuit/telecomms,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"aY" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 4},/obj/effect/turf_decal/stripes/red/box,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"aZ" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 8},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"aZ" = (/obj/structure/disposalpipe/trunk,/obj/structure/disposaloutlet{dir = 8},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ba" = (/mob/living/simple_animal/slime,/turf/open/floor/mineral/plastitanium,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"bb" = (/obj/structure/table/glass,/obj/machinery/light/small{dir = 8},/obj/item/clothing/glasses/science,/obj/item/clothing/mask/gas,/obj/effect/turf_decal/tile/purple{dir = 8},/obj/effect/turf_decal/tile/purple{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"bc" = (/obj/structure/chair/office/light{dir = 1},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
@@ -121,17 +121,17 @@
|
||||
"cr" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/machinery/chem_heater,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"cs" = (/obj/structure/chair/office/light{dir = 1},/obj/effect/turf_decal/bot,/obj/effect/turf_decal/stripes/line,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"ct" = (/obj/structure/grille,/obj/structure/window/plastitanium,/obj/machinery/door/poddoor/preopen{id = "lavalandsyndi_virology"},/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/virology)
|
||||
"cx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"cx" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"cy" = (/obj/effect/decal/cleanable/dirt,/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
"cz" = (/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/chair{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
"cA" = (/obj/effect/turf_decal/stripes/line{dir = 6},/obj/structure/closet/crate/bin,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"cB" = (/obj/machinery/light/small{dir = 1},/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
"cC" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
"cD" = (/obj/structure/cable/yellow{icon_state = "2-8"},/turf/open/floor/plasteel/white/side{dir = 4},/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"cE" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"cF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"cE" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 10},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"cF" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"cG" = (/obj/structure/disposalpipe/trunk{dir = 8},/obj/structure/disposaloutlet{dir = 1},/obj/structure/window/plasma/reinforced,/turf/open/floor/mineral/plastitanium,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"cH" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"cH" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"cI" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 8},/obj/structure/extinguisher_cabinet{pixel_y = -29},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
"cJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{icon_state = "1-4"},/turf/open/floor/plasteel/white/side{dir = 1},/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
"cK" = (/obj/structure/cable/yellow{icon_state = "0-8"},/obj/machinery/power/apc/syndicate{dir = 1; name = "Circuit Lab APC"; pixel_y = 24},/turf/open/floor/plasteel/white/side{dir = 1},/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
@@ -181,7 +181,7 @@
|
||||
"dD" = (/obj/structure/window/reinforced,/obj/effect/turf_decal/stripes/corner{dir = 4},/obj/machinery/airalarm/syndicate{dir = 4; pixel_x = -24},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/testlab)
|
||||
"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/open/floor/plasteel/white/corner{dir = 4},/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"dF" = (/obj/effect/turf_decal/box/white/corners{dir = 8},/obj/structure/closet/crate,/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{dir = 1},/obj/item/bluespace_thread{pixel_x = -7; pixel_y = 7},/obj/item/bluespace_thread{pixel_x = -5; pixel_y = 5},/obj/item/bluespace_thread{pixel_x = -3; pixel_y = 3},/obj/item/bluespace_thread{pixel_x = -1; pixel_y = 1},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/cargo)
|
||||
"dG" = (/obj/structure/lattice/catwalk,/turf/open/lava/smooth/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"dG" = (/obj/structure/lattice/catwalk,/turf/open/lava/smooth/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"dH" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer3{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/turf_decal/stripes/line,/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/cargo)
|
||||
"dI" = (/obj/structure/table/glass,/obj/machinery/reagentgrinder{pixel_y = 5},/obj/item/reagent_containers/glass/beaker/large,/turf/open/floor/plasteel/white/side{dir = 5},/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
"dJ" = (/obj/machinery/hydroponics/constructable,/obj/structure/window/reinforced{dir = 4},/obj/effect/turf_decal/loading_area{icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
@@ -262,7 +262,7 @@
|
||||
"fg" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 10},/turf/open/floor/plasteel/white/side{dir = 6},/area/ruin/unpowered/syndicate_lava_base/virology)
|
||||
"fh" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{dir = 4},/turf/open/floor/plasteel/white/side{dir = 10},/area/ruin/unpowered/syndicate_lava_base/virology)
|
||||
"fi" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3,/obj/structure/bed,/obj/effect/spawner/lootdrop/bedsheet,/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"fj" = (/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"fj" = (/obj/effect/mapping_helpers/no_lava,/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"fk" = (/obj/machinery/light/small,/obj/structure/extinguisher_cabinet{pixel_y = -29},/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel/white/side,/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"fl" = (/obj/effect/turf_decal/loading_area{dir = 5; icon_state = "steel_panel"; name = "steel pannel"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 5},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"fm" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical{name = "Chemistry Lab"; req_access_txt = "150"},/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel/white,/area/ruin/unpowered/syndicate_lava_base/chemistry)
|
||||
@@ -318,7 +318,7 @@
|
||||
"gl" = (/obj/structure/grille,/obj/structure/window/plastitanium,/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{id = "lavalandsyndi_circuits"},/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
"gm" = (/obj/structure/reagent_dispensers/watertank/high,/obj/effect/turf_decal/bot,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/machinery/light/small,/obj/effect/turf_decal/loading_area{dir = 4; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"gn" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 6},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"go" = (/obj/structure/flora/rock/pile,/obj/structure/flora/junglebush/c,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"go" = (/obj/structure/flora/rock/pile,/obj/structure/flora/junglebush/c,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"gp" = (/obj/machinery/hydroponics/constructable,/obj/structure/window/reinforced{dir = 8},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"gq" = (/obj/machinery/hydroponics/constructable,/obj/structure/window/reinforced{dir = 4},/obj/effect/turf_decal/loading_area{dir = 1; icon_state = "drain"; name = "drain"},/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"gr" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/turf/open/floor/plasteel/white,/area/ruin/unpowered/syndicate_lava_base/virology)
|
||||
@@ -404,31 +404,31 @@
|
||||
"hW" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/door/airlock/medical/glass{dir = 4; name = "Medbay"},/turf/open/floor/plasteel/white,/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"hX" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/medical/glass{dir = 4; name = "Medbay"},/turf/open/floor/plasteel/white,/area/ruin/unpowered/syndicate_lava_base/medbay)
|
||||
"hY" = (/obj/machinery/button/door{id = "lavalandsyndi_arrivals"; name = "Arrivals Blast Door Control"; pixel_y = -26; req_access_txt = "150"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/machinery/light/small,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"hZ" = (/obj/structure/flora/rock,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"hZ" = (/obj/structure/flora/rock,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ia" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer3{dir = 8},/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"ib" = (/obj/effect/mob_spawn/human/lavaland_syndicate{dir = 4; icon_state = "sleeper_s"},/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"ic" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"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/open/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/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"if" = (/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"ig" = (/obj/structure/flora/grass/jungle,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"ih" = (/obj/structure/flora/rock/pile,/obj/structure/flora/grass/jungle/b,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"ii" = (/obj/structure/flora/rock/jungle,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"ij" = (/obj/structure/flora/grass/jungle/b,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"ig" = (/obj/structure/flora/grass/jungle,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ih" = (/obj/structure/flora/rock/pile,/obj/structure/flora/grass/jungle/b,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ii" = (/obj/structure/flora/rock/jungle,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ij" = (/obj/structure/flora/grass/jungle/b,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ik" = (/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"il" = (/obj/machinery/door/airlock{name = "Cabin 2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"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/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"in" = (/obj/machinery/door/airlock{name = "Cabin 4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"io" = (/obj/structure/flora/junglebush/large,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"io" = (/obj/structure/flora/junglebush/large,/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ip" = (/obj/effect/turf_decal/stripes/red/corner,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"iq" = (/obj/structure/sign/warning/securearea,/turf/closed/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/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"is" = (/obj/machinery/light/small{dir = 1},/obj/machinery/turretid{ailock = 1; control_area = "/area/ruin/unpowered/syndicate_lava_base/main"; dir = 1; icon_state = "control_kill"; lethal = 1; name = "Base turret controls"; pixel_y = 30; req_access = null; req_access_txt = "150"},/turf/open/floor/circuit/red,/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/open/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/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"iv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"iw" = (/obj/structure/lattice/catwalk,/obj/structure/flora/junglebush{pixel_x = -15},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"ix" = (/obj/structure/flora/junglebush/c{pixel_y = 15},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
|
||||
"iu" = (/obj/effect/turf_decal/stripes/line{dir = 8},/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"iv" = (/obj/effect/decal/cleanable/dirt,/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"iw" = (/obj/structure/lattice/catwalk,/obj/structure/flora/junglebush{pixel_x = -15},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"ix" = (/obj/structure/flora/junglebush/c{pixel_y = 15},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"iy" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/decal/cleanable/dirt,/obj/structure/closet{name = "Hydroponics locker"},/obj/item/storage/box/disks_plantgene,/obj/item/storage/box/disks_plantgene,/obj/item/hatchet,/obj/item/hatchet,/obj/item/watertank,/obj/item/reagent_containers/glass/bucket,/obj/item/reagent_containers/glass/bucket,/obj/item/storage/bag/plants,/obj/item/storage/bag/plants,/obj/item/plant_analyzer,/obj/item/plant_analyzer,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"iz" = (/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"iA" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/obj/effect/decal/cleanable/dirt,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
@@ -461,7 +461,7 @@
|
||||
"jh" = (/obj/machinery/door/airlock{name = "Cabin 3"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
"ji" = (/obj/structure/cable/yellow{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/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jj" = (/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jk" = (/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"jk" = (/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/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/open/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/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/main)
|
||||
"jn" = (/obj/effect/mob_spawn/human/lavaland_syndicate{dir = 4; icon_state = "sleeper_s"},/obj/machinery/airalarm/syndicate{pixel_y = 24},/turf/open/floor/plasteel/grimy,/area/ruin/unpowered/syndicate_lava_base/dormitories)
|
||||
@@ -568,8 +568,8 @@
|
||||
"ls" = (/obj/machinery/atmospherics/pipe/simple/supply/visible,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"lt" = (/obj/machinery/atmospherics/pipe/simple/supplymain/visible,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"lu" = (/obj/machinery/light/small{dir = 4},/obj/machinery/portable_atmospherics/scrubber,/obj/effect/turf_decal/bot,/obj/effect/decal/cleanable/dirt,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"lv" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"lw" = (/obj/effect/turf_decal/stripes/line,/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/lavaland/surface/outdoors)
|
||||
"lv" = (/obj/effect/turf_decal/stripes/line{dir = 10},/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"lw" = (/obj/effect/turf_decal/stripes/line,/obj/effect/mapping_helpers/no_lava,/turf/open/floor/plating{baseturfs = /turf/open/lava/smooth/lava_land_surface; initial_gas_mix = "o2=14;n2=23;TEMP=300"},/area/ruin/unpowered/syndicate_lava_base/outdoors)
|
||||
"lx" = (/obj/structure/bookcase/random,/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/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
"ly" = (/obj/structure/chair/stool/bar,/turf/open/floor/plasteel/dark,/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
"lz" = (/obj/structure/table/wood,/obj/item/reagent_containers/rag{pixel_x = -4; pixel_y = 9},/obj/item/reagent_containers/food/drinks/beer{pixel_x = 5; pixel_y = -2},/obj/effect/decal/cleanable/dirt,/turf/open/floor/wood,/area/ruin/unpowered/syndicate_lava_base/bar)
|
||||
@@ -715,6 +715,7 @@
|
||||
"EZ" = (/obj/machinery/door/airlock/external{req_access_txt = "150"},/obj/structure/fans/tiny,/obj/effect/mapping_helpers/airlock/cyclelink_helper,/turf/open/floor/plating,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"IJ" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 1},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"Pa" = (/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/circuits)
|
||||
"Rs" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer3{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red{dir = 4},/obj/machinery/vending/kink,/turf/open/floor/plasteel,/area/ruin/unpowered/syndicate_lava_base/arrivals)
|
||||
"RE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
"RV" = (/obj/structure/sign/warning/fire,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/mineral/plastitanium/nodiagonal,/area/ruin/unpowered/syndicate_lava_base/engineering)
|
||||
|
||||
@@ -755,7 +756,7 @@ abababababababababababdGlvlwjylxjZjNlylzlAlBlCaklElFjyjpkQlGlHlIlJlKIJlLlMlNlOlt
|
||||
abababababababababababhalTlTjyjylUjZlVlWlXlYlZmambmcjyjpkQmdmelImfkQkUmgmhmimjmkmllbmmldjuababab
|
||||
ababababmnmnmnmpmpmpmpmnmqmrmsjymtknmumvmwlAmxjymyjyjymzkQmAmBmCmDmEIJmFmGmHmImJmKjujujujuababab
|
||||
abababadmnmMmnmPmPmQmRmnmSmSmTjymUjzmUjyahaijyjyjyjymXmYkTmZnalIlInbIJncndneRVngkDjuabababababab
|
||||
abababmnmMmMmNaEnknlnmmonnnnnonpnpamnrjyjyjPjynsntnufDnwhWnynzaVaVcDIJjunDnEtWnFnGjuabababababab
|
||||
abababmnmMmMmNaEnknlnmmonnnnnonpnpamnrjyjyjPjynsntRsfDnwhWnynzaVaVcDIJjunDnEtWnFnGjuabababababab
|
||||
abababmnnhninjninInJnKnLnOnPnQnNfPanaoarnunTnUnVnWnXfKauhXoaobfknBfBuBodoeofREldogjuabababababab
|
||||
abababmnmMmMmnohoiojokmnmTEZmTololcycCPacIopfXfXfXgVgWgXPaoralkQkQkQjujuotnEjujujuaqabababababab
|
||||
abababaymnmMmnaIouovmnmnmTaSPaPaPaPacJcKPamTgYgYgYgYcLmTmTmTmTmTgaiymTozoAoBoCababababababababab
|
||||
|
||||
@@ -1288,7 +1288,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"cV" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter,
|
||||
/obj/effect/decal/cleanable/blood/splatter/xeno,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"cW" = (
|
||||
@@ -1525,7 +1525,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/derelictoutpost/cargobay)
|
||||
"dq" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xsplatter,
|
||||
/obj/effect/decal/cleanable/blood/splatter/xeno,
|
||||
/obj/structure/alien/weeds{
|
||||
color = "#4BAE56";
|
||||
desc = "A thick gelatinous surface covers the floor. Someone get the golashes.";
|
||||
|
||||
@@ -159,6 +159,7 @@
|
||||
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/poweredfans,
|
||||
/obj/machinery/door/airlock/external{
|
||||
id_tag = "syndie_listeningpost_external";
|
||||
req_access_txt = "150"
|
||||
@@ -418,6 +419,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/machinery/door/airlock{
|
||||
dir = 4;
|
||||
name = "Food Court"
|
||||
@@ -524,11 +526,11 @@
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/storage/box/lights/bulbs,
|
||||
/obj/item/stack/sheet/mineral/plasma{
|
||||
amount = 30
|
||||
},
|
||||
/obj/item/stock_parts/cell/high/plus,
|
||||
/obj/item/storage/box/lights/bulbs,
|
||||
/obj/item/storage/box/stockparts/deluxe,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"aP" = (
|
||||
@@ -639,6 +641,9 @@
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/sign/poster/contraband/random{
|
||||
pixel_y = 30
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"aW" = (
|
||||
@@ -786,11 +791,9 @@
|
||||
/turf/open/floor/plasteel/white/side,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bh" = (
|
||||
/obj/machinery/vending/cola/random{
|
||||
extended_inventory = 1
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/vending/cola/shamblers,
|
||||
/turf/open/floor/plasteel/white/corner{
|
||||
dir = 8
|
||||
},
|
||||
@@ -827,7 +830,7 @@
|
||||
/obj/structure/closet/firecloset/full{
|
||||
anchored = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bk" = (
|
||||
/obj/effect/turf_decal/stripes/red/line{
|
||||
@@ -958,11 +961,7 @@
|
||||
"bu" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/structure/sink{
|
||||
dir = 4;
|
||||
pixel_x = 11
|
||||
},
|
||||
/obj/machinery/chem_dispenser/fullupgrade,
|
||||
/turf/open/floor/plasteel/white/side{
|
||||
dir = 5
|
||||
},
|
||||
@@ -1058,7 +1057,12 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
dir = 1
|
||||
},
|
||||
/obj/machinery/chem_dispenser/fullupgrade,
|
||||
/obj/machinery/iv_drip,
|
||||
/obj/structure/sink{
|
||||
dir = 1;
|
||||
pixel_x = -9;
|
||||
pixel_y = -1
|
||||
},
|
||||
/turf/open/floor/plasteel/white/side,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bC" = (
|
||||
@@ -1069,31 +1073,39 @@
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/wrench,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/item/storage/toolbox/syndicate,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bD" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/item/ammo_box/magazine/m10mm,
|
||||
/obj/item/paper/fluff/ruins/listeningstation/briefing,
|
||||
/obj/item/ammo_box/magazine/m10mm{
|
||||
pixel_x = 8;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/item/paper/fluff/ruins/listeningstation/briefing{
|
||||
pixel_x = -7;
|
||||
pixel_y = -3
|
||||
},
|
||||
/obj/item/toy/cards/deck/syndicate{
|
||||
pixel_x = -6;
|
||||
pixel_y = 11
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bF" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/meter,
|
||||
/obj/effect/turf_decal/stripes/line,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bH" = (
|
||||
/obj/machinery/atmospherics/components/unary/tank/air{
|
||||
dir = 1
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"bI" = (
|
||||
@@ -1154,20 +1166,14 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"fJ" = (
|
||||
/obj/structure/chair/stool,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/biogenerator,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"hJ" = (
|
||||
/obj/structure/closet/secure_closet/hydroponics{
|
||||
req_access = null
|
||||
},
|
||||
/obj/item/cultivator,
|
||||
/obj/item/plant_analyzer,
|
||||
/obj/item/reagent_containers/spray/pestspray{
|
||||
pixel_x = 3;
|
||||
pixel_y = 4
|
||||
@@ -1177,7 +1183,7 @@
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
dir = 8
|
||||
},
|
||||
/obj/item/storage/bag/plants/portaseeder,
|
||||
/obj/item/storage/bag/plants,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"ki" = (
|
||||
@@ -1189,6 +1195,19 @@
|
||||
/obj/item/toy/plush/narplush,
|
||||
/turf/closed/mineral/random,
|
||||
/area/ruin/unpowered/no_grav)
|
||||
"kT" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table,
|
||||
/obj/machinery/smartfridge/disks{
|
||||
pixel_x = -4;
|
||||
pixel_y = 11
|
||||
},
|
||||
/obj/item/reagent_containers/glass/bottle/nutrient/rh{
|
||||
pixel_x = -6;
|
||||
pixel_y = 5
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"lZ" = (
|
||||
/obj/structure/cable,
|
||||
/obj/structure/cable{
|
||||
@@ -1206,17 +1225,14 @@
|
||||
req_access = null;
|
||||
req_access_txt = "150"
|
||||
},
|
||||
/obj/item/storage/box/beakers/bluespace,
|
||||
/turf/open/floor/plasteel/white/side{
|
||||
dir = 6
|
||||
},
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"tU" = (
|
||||
/obj/structure/sign/poster/contraband/random{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/machinery/seed_extractor,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table,
|
||||
/obj/machinery/microwave,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"ux" = (
|
||||
@@ -1227,7 +1243,17 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"uB" = (
|
||||
/turf/open/floor/plating,
|
||||
/obj/machinery/airalarm/syndicate{
|
||||
dir = 1;
|
||||
pixel_y = -25
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/kitchen/rollingpin{
|
||||
pixel_x = -6;
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/machinery/reagentgrinder/constructed,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"za" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
@@ -1247,7 +1273,7 @@
|
||||
/obj/structure/sink{
|
||||
dir = 8;
|
||||
pixel_x = -12;
|
||||
pixel_y = 2
|
||||
pixel_y = 12
|
||||
},
|
||||
/obj/item/reagent_containers/glass/bucket,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -1262,43 +1288,27 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Bd" = (
|
||||
/obj/machinery/vending/hydroseeds{
|
||||
slogan_delay = 700
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/reagent_dispensers/watertank/high,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Bs" = (
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"DC" = (
|
||||
/obj/machinery/airalarm/syndicate{
|
||||
dir = 1;
|
||||
pixel_y = -25
|
||||
/obj/structure/chair/stool,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/item/kitchen/rollingpin{
|
||||
pixel_x = -6;
|
||||
pixel_y = 8
|
||||
},
|
||||
/obj/machinery/reagentgrinder/constructed,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"DL" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/reagent_containers/food/drinks/beer{
|
||||
pixel_x = -4;
|
||||
pixel_y = 14
|
||||
},
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
|
||||
pixel_x = -3
|
||||
},
|
||||
/obj/item/reagent_containers/food/drinks/beer{
|
||||
pixel_x = 3;
|
||||
pixel_y = 11
|
||||
},
|
||||
/obj/item/lighter/slime{
|
||||
pixel_x = 6
|
||||
/obj/structure/chair/stool,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
pixel_x = 25
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
@@ -1324,14 +1334,25 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/computer/arcade/orion_trail,
|
||||
/obj/machinery/vending/hydroseeds{
|
||||
slogan_delay = 700
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
brightness = 3;
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Lx" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
dir = 5
|
||||
},
|
||||
/obj/effect/decal/cleanable/blood/drip,
|
||||
/obj/machinery/atmospherics/components/unary/tank/air{
|
||||
dir = 1
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Mh" = (
|
||||
@@ -1352,11 +1373,33 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Ns" = (
|
||||
/obj/machinery/biogenerator,
|
||||
"Nh" = (
|
||||
/obj/structure/table,
|
||||
/obj/item/reagent_containers/food/drinks/beer{
|
||||
pixel_x = -4;
|
||||
pixel_y = 14
|
||||
},
|
||||
/obj/item/storage/fancy/cigarettes/cigpack_syndicate{
|
||||
pixel_x = -3
|
||||
},
|
||||
/obj/item/reagent_containers/food/drinks/beer{
|
||||
pixel_x = 3;
|
||||
pixel_y = 11
|
||||
},
|
||||
/obj/item/lighter{
|
||||
pixel_x = 9
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Ns" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table,
|
||||
/obj/machinery/plantgenes{
|
||||
pixel_y = 6
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"NQ" = (
|
||||
/obj/item/mop/advanced{
|
||||
pixel_x = -11
|
||||
@@ -1365,8 +1408,12 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"Qp" = (
|
||||
/obj/structure/sign/poster/contraband/random{
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/seed_extractor,
|
||||
/obj/structure/table,
|
||||
/obj/machinery/microwave,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"QM" = (
|
||||
@@ -1377,11 +1424,11 @@
|
||||
pixel_x = 5;
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/structure/chair/stool,
|
||||
/obj/machinery/computer/arcade/orion_trail,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"TK" = (
|
||||
/obj/machinery/chem_master/condimaster,
|
||||
/obj/machinery/chem_master,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/ruin/space/has_grav/listeningstation)
|
||||
"XM" = (
|
||||
@@ -1927,7 +1974,7 @@ ac
|
||||
ac
|
||||
ac
|
||||
ac
|
||||
ab
|
||||
ac
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
@@ -1966,6 +2013,7 @@ Bd
|
||||
Ns
|
||||
fJ
|
||||
DC
|
||||
uB
|
||||
ac
|
||||
ab
|
||||
ab
|
||||
@@ -1986,7 +2034,6 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
@@ -2002,8 +2049,9 @@ ab
|
||||
ac
|
||||
zq
|
||||
Gb
|
||||
XM
|
||||
Qp
|
||||
kT
|
||||
Bs
|
||||
tU
|
||||
Bs
|
||||
Mh
|
||||
ac
|
||||
@@ -2026,7 +2074,6 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
@@ -2045,7 +2092,8 @@ XM
|
||||
Bs
|
||||
fs
|
||||
za
|
||||
tU
|
||||
Bs
|
||||
Qp
|
||||
ac
|
||||
ab
|
||||
ab
|
||||
@@ -2066,7 +2114,6 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
@@ -2086,6 +2133,7 @@ Bs
|
||||
IH
|
||||
QM
|
||||
DL
|
||||
Nh
|
||||
ac
|
||||
ab
|
||||
ab
|
||||
@@ -2106,7 +2154,6 @@ ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
ab
|
||||
aa
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
@@ -2408,7 +2455,7 @@ be
|
||||
ag
|
||||
ag
|
||||
ag
|
||||
uB
|
||||
ag
|
||||
Et
|
||||
NQ
|
||||
ag
|
||||
@@ -2520,9 +2567,9 @@ ab
|
||||
ag
|
||||
ag
|
||||
an
|
||||
ac
|
||||
ag
|
||||
aE
|
||||
ac
|
||||
ag
|
||||
aY
|
||||
bh
|
||||
ag
|
||||
|
||||
@@ -701,7 +701,7 @@
|
||||
"ny" = (/obj/structure/table,/obj/item/reagent_containers/rag/towel{pixel_x = 4; pixel_y = 4},/turf/open/floor/plasteel,/area/ruin/space/has_grav/hotel/pool)
|
||||
"nz" = (/obj/structure/table,/obj/item/reagent_containers/rag/towel,/obj/item/reagent_containers/rag/towel{pixel_y = 3},/turf/open/floor/plasteel,/area/ruin/space/has_grav/hotel/pool)
|
||||
"nA" = (/obj/machinery/light,/obj/structure/table,/obj/item/reagent_containers/rag/towel,/turf/open/floor/plasteel,/area/ruin/space/has_grav/hotel/pool)
|
||||
"nB" = (/turf/template_noop,/area/space)
|
||||
"nB" = (/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/ruin/space/has_grav/hotel/dock)
|
||||
"nC" = (/obj/effect/turf_decal/tile/neutral{dir = 8},/obj/effect/turf_decal/tile/neutral{dir = 1},/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/hotel/dock)
|
||||
"nD" = (/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/hotel/dock)
|
||||
"nE" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/obj/effect/turf_decal/tile/red,/turf/open/floor/plasteel/dark,/area/ruin/space/has_grav/hotel/dock)
|
||||
@@ -715,9 +715,12 @@
|
||||
"nM" = (/obj/machinery/door/airlock/maintenance{dir = 4; name = "Hotel Maintenance"; req_access_txt = "201"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating,/area/ruin/space/has_grav/hotel/pool)
|
||||
"nN" = (/obj/structure/chair/stool/bar,/obj/effect/turf_decal/tile/bar,/obj/effect/turf_decal/tile/bar{dir = 1},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/ruin/space/has_grav/hotel/bar)
|
||||
"nO" = (/obj/machinery/light/floor{name = "ceiling light"},/turf/open/pool,/area/ruin/space/has_grav/hotel/pool)
|
||||
"qs" = (/obj/machinery/vending/autodrobe/all_access,/turf/open/floor/wood,/area/ruin/space/has_grav/hotel/dock)
|
||||
"so" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/yellowsiding/corner{dir = 1},/area/ruin/space/has_grav/hotel/pool)
|
||||
"sN" = (/obj/machinery/door/airlock/external/glass,/obj/structure/cable/yellow{icon_state = "1-2"},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/turf/open/floor/plating,/area/ruin/space/has_grav/hotel/power)
|
||||
"ux" = (/obj/machinery/light/floor,/turf/open/pool,/area/ruin/space/has_grav/hotel/pool)
|
||||
"vL" = (/obj/structure/pool/ladder,/turf/open/pool,/area/ruin/space/has_grav/hotel/pool)
|
||||
"wW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/vending/kink,/turf/open/floor/wood,/area/ruin/space/has_grav/hotel/dock)
|
||||
"Ao" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/yellowsiding,/area/ruin/space/has_grav/hotel/pool)
|
||||
"AM" = (/obj/structure/pool/ladder{dir = 2; pixel_y = 24},/turf/open/pool,/area/ruin/space/has_grav/hotel/pool)
|
||||
"Ek" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/yellowsiding/corner{dir = 4},/area/ruin/space/has_grav/hotel/pool)
|
||||
@@ -729,9 +732,12 @@
|
||||
"Nn" = (/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/pool/Rboard,/turf/open/floor/plasteel/yellowsiding{dir = 8},/area/ruin/space/has_grav/hotel/pool)
|
||||
"ON" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{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/open/floor/plasteel/yellowsiding/corner{dir = 8},/area/ruin/space/has_grav/hotel/pool)
|
||||
"Pn" = (/obj/structure/pool/Lboard,/turf/open/pool,/area/ruin/space/has_grav/hotel/pool)
|
||||
"QK" = (/obj/machinery/vending/kink,/turf/open/floor/wood,/area/ruin/space/has_grav/hotel/dock)
|
||||
"Tq" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/vending/autodrobe/all_access,/turf/open/floor/wood,/area/ruin/space/has_grav/hotel/dock)
|
||||
"Vl" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{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/open/floor/plasteel,/area/ruin/space/has_grav/hotel/pool)
|
||||
"Yx" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/yellowsiding/corner,/area/ruin/space/has_grav/hotel/pool)
|
||||
"Zb" = (/obj/structure/pool/ladder{dir = 8},/turf/open/pool,/area/ruin/space/has_grav/hotel/pool)
|
||||
"Zx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/vending/clothing,/turf/open/floor/wood,/area/ruin/space/has_grav/hotel/dock)
|
||||
"ZS" = (/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/yellowsiding{dir = 4},/area/ruin/space/has_grav/hotel/pool)
|
||||
|
||||
(1,1,1) = {"
|
||||
@@ -765,7 +771,7 @@ aaaaaaabaaafagalcHcQawcZcZcZcZcZcZcZcZcZcZcZdcdcdcdcdcdcdcdcdcdccTcGcUdhdidididi
|
||||
aaaaaaabaaajctcweHeIeJeJeJeJeJeKawawaweLawawawawawawawawawaweMebeTeTdSeOgxeQeQgHgIeTeUeGeVeWgKhsgyfcfagLgKhsgyeWeGgfaaaafLabfbaaaaaaaa
|
||||
aaaaaaabaaajcHfdcJfeawckfffgawfhfififjfifififififififififjfictcwfpfpgMflhBhEhEhGhHfpfqfrfsftfufufueWeWeWfufufueWfvgfaaaaaaaafLfbaaaaaa
|
||||
aaaaaaabaaajcHcQfififjfifififififihZfxfxfyfzfiilioiAfEfFfGfHfIfJfMfMiDfMfMfMfMfMfMfNameGiFeWeWeWeWeWeWeWeWeWeWeWfvgfaaaaaaaafLfbaaaaaa
|
||||
aaaaaaabacajcHcQfifPfQfRfRfSfQfQfTfxfxfxfxfxmYfGfGfGfGfGfGfUeTcFcFcFcFcFcFcFcFcFcFfVfKiGfXfufueWeWeWeWeWeWeWeWeWeGfvfvfvgfaafLfbaaaaaa
|
||||
aaaaaaabacajcHcQfifPfQfRfRfSfQfQfTfxfxfxfxfxmYfGfGfGfGfGfGfUeTcFcFcFcFcFcFcFcFcFcFfVfKiGfXfufueWeWnBQKqseWeWeWeWeGfvfvfvgfaafLfbaaaaaa
|
||||
aaaaaaabaaajcHcQfifYfQfQfQfQfQfZfigafxgbgcfxfifHfUfHfHgdfHfHeTcFcFcRcFcFgecFcFcFcFcFcFiXfufufueWgheGeGeGgheWeWeWjbfugieGjgacabfbaaaaaa
|
||||
aaaaaaabaaajcHgjfigkglgmgnfQfQgofigafxgpgqfxfinNfGgrfGgrfGgreTcFcFdidigsdidididididididigtgugveWeWegjsggeWeWeWeWjufugyfvgfaafLfbaaaaaa
|
||||
aaaaaaabaaajcHcQfigkgzgAgBfQfQgkfigCfxgDgEfxfAfGfGfGfGfGfGfGeTcFcFdigFgGjwgJjzjUjVjWjXdigNgOgPeWgQgSgRhrnueWeWeWjYfugyfvgfaafLfbaaaaaa
|
||||
@@ -774,7 +780,7 @@ aaaaaaabacajhehfhghhhihjhkfQgAhlfihmhnfxfxfxhofGfGfGfGfGfGfGeTcFhpdihqgGgGgGgGgG
|
||||
aaaaaaabaaajcHcQfihtgzhuhvfQfQhwfigahnhxhyfxhzgrgXgYgZgXgYgZeTcFcFdihAmPhChDllhFlMlQlSdigNgOgPeWnJnGgwnInKeWeWeWjufugyfvgfaafLfbaaaaaa
|
||||
aaaaaaabaaajcHcQfifihIfifififififigahnhJhKfxhzfGfGfGfGfGfGfGeTcFcFdidimQdidididididididihLhMhNeWeWeghOggeWeWeWeWjYfugyfvgfaafLfbaaaaaa
|
||||
aaaaaaabaaajcHhPcJhQhRcJcJcJcJhSfihThngpgpfxhUhVhWhWhWhWhXhYeTcFcFcFcFmRmSmSmTcFcFmncFiXfufufueWgheGeGeGgheWeWeWmxfugieGjgacabfbaaaaaa
|
||||
aaaaaaabaaajiaibicidiciciciciecQfiifhnfxfxfxhUigihihihihihiieTcFcFcFcFcFcFcFmUcFijikcLmAimininmKmKmKmKmKmKmKmKmMeGfvfvfvgfaafLfbaaaaaa
|
||||
aaaaaaabaaajiaibicidiciciciciecQfiifhnfxfxfxhUigihihihihihiieTcFcFcFcFcFcFcFmUcFijikcLmAimininmKmKZxwWTqmKmKmKmMeGfvfvfvgfaafLfbaaaaaa
|
||||
aaaaaaabacipiqirisitiuiviwixircQfiiyhnfxizfxmVihihihiBihihiieTeTiCeTeTeTeTeTmWeTmXiEameGiPeWeWeWeWeWeWeWeWeWeWiQfvgfaaaaaaaafLfbaaaaaa
|
||||
aaaaaaaaabaaajiriHiIiJiJiKiLircQfifihIfififihUfififififififiamamamamamamamiMmWeTdSiNiOeGiPeWfufufueWeWeWfufufuiQfvgfaaaaaaaafLfbaaaaaa
|
||||
aaaaaaaaabaaajiriRiIiSiSiKiTirhPcJiUiVcJcJcJiWcJcJcJcJhQcJcJcJcJiYiZcJcJnLjamZjanajcjdeGjeeWgKhsgyeWeWjfgKhsgyjheGgfaaaafLabfbaaaaaaaa
|
||||
@@ -785,11 +791,11 @@ aaaaaaaaabaaajirkqkrksktkukvkwjGkxkykzkAklkBknknkCjPawcQjQjRjRkDkDkEkEkEkDnhnhnh
|
||||
aaaaaaaaabaaajirkHkHkHkIkHkHkJjGkKkkkLkMkNkmkOkPknjPawcQjQkQjRkDYxAoAoAoAoAoAoFhkRkSkSkSkSkSONVlkTkUjQjQjQjQjQjQacacacabaaaaaaaaaaaaaa
|
||||
aaaaaaaaabaaajirkVkWkXkYkZkHlajGlbkklcldkljGlelflgjPawcQjQjRjRlhZSliljIFIFAMIFIFIFAMIFIFIFliKinjjRnkjQlmlnlnlojQaaaaaaabaaaaaaaaaaaaaa
|
||||
aaaaaaabaaaaajirlplplqlplpkHsNjGlrkklskkkljGjGjGjGjPedcQjQjRjRlhZSIFIFIFIFIFIFIFIFIFnlIFIFIFKikDjRltjQlmlululojQaaaaabaaaaaaaaaaaaaaaa
|
||||
aaaaabaalvaaajirkHkHkHkHkHkHajjGlwlxlxlylzjGjMjNlAjPawcQjQjRjRlhZSvLIFnOIFIFIFIFIFIFIFnOIFZbKinjjRnnjQlmlululojQaaaaabaaaaaaaaaaaaaaaa
|
||||
aaaaabaalvaaajirkHkHkHkHkHkHajjGlwlxlxlylzjGjMjNlAjPawcQjQjRjRlhZSvLIFnOIFIFuxIFIFuxIFIFuxZbKinjjRnnjQlmlululojQaaaaabaaaaaaaaaaaaaaaa
|
||||
aaabaaaalBlClDlEaaaaaaaaaaaaajjGjGlFjGkxklkmknknknjPawcQjQjRjRkDZSIFIFIFIFIFIFIFIFIFIFIFIFIFKikDjRjRjQlGlHlHlIjQaaaaabaaaaaaaaaaaaaaaa
|
||||
aaabacacacacaclJagagagagagagaljGlKlLjGkxklkBknknkCjPawcQjQjRjRkDZSIFIFIFIFIFIFKoIFIFIFIFIFPnNnnjjRjRnolHlHlHlHjQacacabaaaaaaaaaaaaaaaa
|
||||
aaabaaaaaaaaaaajaaaaaaaaaaaaaajGlNlOjGkxklkmkOkPknjPawcQjQkQjRkDZSIFIFIFIFlPIFIFIFIFIFIFIFIFKikDjRkUjQnplHlHlRjQaaaaabaaaaaaaaaaaaaaaa
|
||||
abaaaaaaaaaaaaajaaaaaaaaaaaaaajGnqlTjGlwlUjGlelflgjPcIfejQjRjRlhZSvLIFnOIFIFIFIFIFIFIFnOIFZbKinjjRjRjQjQjQjQjQjQaaaaabaaaaaaaaaaaaaaaa
|
||||
abaaaaaaaaaaaaajaaaaaaaaaaaaaajGnqlTjGlwlUjGlelflgjPcIfejQjRjRlhZSvLIFnOIFIFuxIFIFuxIFIFuxZbKinjjRjRjQjQjQjQjQjQaaaaabaaaaaaaaaaaaaaaa
|
||||
abaclVlWlWlWlWlXlYlYlYlYlZacacjGjGjGjGjGjGjGjGjGjGjPcQmajQjRjRlhZSIFIFIFIFIFIFIFIFIFIFnrIFIFKikDjRjRjQmbmcmclRjQaaaaabaaaaaaaaaaaaaaaa
|
||||
abaaaaaaaaaaaaajaaaaaaaaaaaaaaaamdmemfmgmhmimjmkmlmmcQckjQjRjRlhZSliIFIFIFnmIFIFIFnmIFIFIFliKinjjRjRnslHlHlHlHjQaaaaabaaaaaaaaaaaaaaaa
|
||||
abaaaaaaaaaaaaajaaaaaaaaaaaaaaaamdmlmlmlmlmompmpmpmqhfcvjtmrjRkDEkIQIQIQIQIQIQIQIQIQIQIQIQIQsokDjRjRjQmslHlHmtjQaaaaabaaaaaaaaaaaaaaaa
|
||||
@@ -801,6 +807,6 @@ abaaaaaaaaaaaaajaaaaaaaaaaaaaaaaaaacaaaaaaaaacaaaaaaaaaaaaaaacaaaaaaaaaaacaaaaaa
|
||||
abaaaaaaaaaaaaajaaaaaaaaaaaaaaabababababababababaaaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaacaaaaaaaaaaaaacaaaaabaaaaaaaaaaaaaaaa
|
||||
abaclVlWlWlWlWajlYlYlYlYlZacabaaaaaaaaaaaaaaaaaaababababababababababababababababababababababababababababababababababaaaaaaaaaaaaaaaaaa
|
||||
abaaaaaaaaaaaamOaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaabababababaaacaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaanBnBnBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaabababababaaacaaabababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaabababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
"}
|
||||
|
||||
@@ -569,11 +569,18 @@
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"nH" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
/obj/machinery/door/poddoor/shutters/radiation/preopen{
|
||||
id = "engsm"
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/obj/item/tank/internals/plasma,
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
/area/engine/supermatter)
|
||||
"nR" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
dir = 4
|
||||
@@ -1037,6 +1044,9 @@
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"Bl" = (
|
||||
@@ -1423,6 +1433,12 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Kt" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"Kv" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -1490,6 +1506,9 @@
|
||||
/area/engine/supermatter)
|
||||
"LJ" = (
|
||||
/obj/machinery/light,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"LS" = (
|
||||
@@ -1534,6 +1553,9 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"MJ" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"MK" = (
|
||||
@@ -1649,6 +1671,13 @@
|
||||
/obj/machinery/meter,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"OY" = (
|
||||
/obj/machinery/light,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"Ph" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
@@ -1912,11 +1941,18 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/engine/engineering)
|
||||
"XY" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-4"
|
||||
/obj/machinery/power/rad_collector/anchored,
|
||||
/obj/structure/cable/yellow{
|
||||
icon_state = "0-8"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
/obj/structure/window/plasma/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/manifold/general/visible{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/supermatter)
|
||||
"YB" = (
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
dir = 8
|
||||
@@ -2353,18 +2389,18 @@ VP
|
||||
EX
|
||||
Vg
|
||||
px
|
||||
px
|
||||
nW
|
||||
Cn
|
||||
nW
|
||||
nH
|
||||
Cn
|
||||
xB
|
||||
WI
|
||||
IE
|
||||
JV
|
||||
Bc
|
||||
JH
|
||||
JH
|
||||
Lv
|
||||
XY
|
||||
Lv
|
||||
LJ
|
||||
MP
|
||||
Rh
|
||||
@@ -2383,7 +2419,7 @@ un
|
||||
CT
|
||||
na
|
||||
na
|
||||
KX
|
||||
XY
|
||||
KX
|
||||
Xy
|
||||
Ml
|
||||
@@ -2551,17 +2587,17 @@ wz
|
||||
Dj
|
||||
tE
|
||||
tE
|
||||
NU
|
||||
tE
|
||||
NU
|
||||
Xy
|
||||
Np
|
||||
YD
|
||||
iD
|
||||
MJ
|
||||
Kt
|
||||
IF
|
||||
IF
|
||||
IF
|
||||
MJ
|
||||
Kt
|
||||
MP
|
||||
yf
|
||||
YZ
|
||||
@@ -2588,8 +2624,8 @@ JV
|
||||
Bc
|
||||
Ph
|
||||
Ph
|
||||
nH
|
||||
LJ
|
||||
Ph
|
||||
OY
|
||||
MP
|
||||
Rh
|
||||
YZ
|
||||
|
||||
@@ -1,4 +1,12 @@
|
||||
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
|
||||
"aq" = (
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/paper{
|
||||
desc = "Charlie, remember to reconnect the gas mix monitor if it's having issues, by the way, if the heat gets too high, don't be afraid to space this part of engineering and use a voidsuit or a hardsuit. There's one in the crates.";
|
||||
name = "TEG Chamber Note"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"av" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -88,13 +96,8 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"dq" = (
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/machinery/door/airlock/engineering/glass{
|
||||
dir = 4;
|
||||
name = "Supermatter Engine Room";
|
||||
req_access_txt = "10"
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/obj/machinery/vending/cola/random,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ds" = (
|
||||
/obj/machinery/portable_atmospherics/canister/toxins,
|
||||
@@ -127,24 +130,14 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ek" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/door/poddoor{
|
||||
id = "TEG_Vent"
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
|
||||
dir = 5
|
||||
},
|
||||
/turf/open/space,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"en" = (
|
||||
/obj/machinery/button/ignition/incinerator{
|
||||
id = "TEG_igniter";
|
||||
pixel_x = -5;
|
||||
pixel_y = 10
|
||||
},
|
||||
/obj/machinery/button/door{
|
||||
id = "TEG_Vent";
|
||||
pixel_x = 6;
|
||||
pixel_y = 10
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/machinery/vending/snack/random,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"ev" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
|
||||
@@ -179,8 +172,14 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"fO" = (
|
||||
/obj/structure/sign/warning/fire,
|
||||
/turf/closed/wall/r_wall,
|
||||
/obj/machinery/computer/atmos_control/tank/mix_tank{
|
||||
dir = 8;
|
||||
input_tag = "teg_in";
|
||||
name = "TEG Mix Tank Control";
|
||||
output_tag = null;
|
||||
sensors = list("teg_sensor" = "TEG Mix Tank")
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"go" = (
|
||||
/obj/machinery/portable_atmospherics/canister/toxins,
|
||||
@@ -198,8 +197,9 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"gA" = (
|
||||
/obj/machinery/igniter{
|
||||
id = "TEG_igniter"
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector{
|
||||
dir = 1;
|
||||
id = "teg_in"
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
@@ -331,20 +331,26 @@
|
||||
/turf/open/space,
|
||||
/area/space/nearstation)
|
||||
"kK" = (
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 26;
|
||||
pixel_y = 32
|
||||
/obj/machinery/button/ignition/incinerator{
|
||||
id = "TEG_igniter";
|
||||
pixel_x = -5;
|
||||
pixel_y = 10
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/machinery/button/door{
|
||||
id = "TEG_Vent";
|
||||
pixel_x = 6;
|
||||
pixel_y = 10
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"kS" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"le" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/simple/dark/visible,
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/obj/item/clothing/head/hardhat,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"lw" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
|
||||
@@ -358,6 +364,9 @@
|
||||
c_tag = "TEG - South East";
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/sign/warning/securearea{
|
||||
pixel_x = 29
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"lI" = (
|
||||
@@ -398,20 +407,26 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"nc" = (
|
||||
/obj/machinery/atmospherics/components/unary/outlet_injector{
|
||||
dir = 1
|
||||
/obj/machinery/atmospherics/pipe/simple/dark/visible,
|
||||
/obj/machinery/air_sensor/atmos{
|
||||
id_tag = "teg_sensor"
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"nk" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 9
|
||||
/obj/structure/fans/tiny,
|
||||
/obj/machinery/door/airlock/engineering/glass/critical{
|
||||
dir = 4;
|
||||
heat_proof = 1;
|
||||
name = "TEG Burn Chamber";
|
||||
req_access_txt = "10"
|
||||
},
|
||||
/turf/closed/wall/r_wall,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"nD" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
|
||||
dir = 9
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
@@ -469,10 +484,8 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"oQ" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/mob/living/carbon/monkey,
|
||||
/obj/item/clothing/head/hardhat,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"oS" = (
|
||||
/obj/machinery/door/firedoor,
|
||||
@@ -482,6 +495,11 @@
|
||||
},
|
||||
/turf/open/floor/engine,
|
||||
/area/engine/engineering)
|
||||
"oZ" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/structure/grille,
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"pY" = (
|
||||
/obj/machinery/atmospherics/components/unary/portables_connector{
|
||||
dir = 8
|
||||
@@ -532,8 +550,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"qv" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
|
||||
dir = 5
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/mob/living/carbon/monkey{
|
||||
desc = "When the candle is lit, you know the burn is good.";
|
||||
name = "Candle"
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
@@ -862,9 +882,10 @@
|
||||
/turf/open/space/basic,
|
||||
/area/space)
|
||||
"Am" = (
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 4
|
||||
/obj/machinery/igniter{
|
||||
id = "TEG_igniter"
|
||||
},
|
||||
/obj/item/wrench,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"An" = (
|
||||
@@ -1071,6 +1092,12 @@
|
||||
"EL" = (
|
||||
/turf/closed/wall,
|
||||
/area/engine/engineering)
|
||||
"EM" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/structure/grille,
|
||||
/obj/structure/grille,
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
"EN" = (
|
||||
/obj/machinery/atmospherics/components/binary/valve/digital,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -1102,6 +1129,13 @@
|
||||
/obj/structure/window/reinforced,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Fl" = (
|
||||
/obj/structure/lattice/catwalk,
|
||||
/obj/machinery/door/poddoor{
|
||||
id = "TEG_Vent"
|
||||
},
|
||||
/turf/open/space,
|
||||
/area/engine/engineering)
|
||||
"FG" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/orange/visible{
|
||||
dir = 10
|
||||
@@ -1219,11 +1253,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"IA" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
dir = 4
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"IP" = (
|
||||
/obj/machinery/portable_atmospherics/canister/oxygen,
|
||||
@@ -1248,9 +1281,9 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Jj" = (
|
||||
/obj/machinery/vending/snack/random,
|
||||
/obj/structure/sign/warning/securearea{
|
||||
pixel_x = 29
|
||||
/obj/structure/extinguisher_cabinet{
|
||||
pixel_x = 26;
|
||||
pixel_y = 32
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
@@ -1309,9 +1342,10 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Kx" = (
|
||||
/obj/effect/spawner/structure/window/plasma/reinforced,
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/junction,
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"KA" = (
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
@@ -1504,6 +1538,11 @@
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet/crate{
|
||||
icon_state = "crateopen"
|
||||
},
|
||||
/obj/item/clothing/suit/space/orange,
|
||||
/obj/item/clothing/head/helmet/space/orange,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"Qu" = (
|
||||
@@ -1646,8 +1685,10 @@
|
||||
/turf/open/floor/plating,
|
||||
/area/engine/engineering)
|
||||
"TE" = (
|
||||
/obj/machinery/vending/cola/random,
|
||||
/turf/open/floor/plasteel,
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/area/engine/engineering)
|
||||
"TH" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
|
||||
@@ -1773,10 +1814,9 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"WB" = (
|
||||
/obj/structure/lattice,
|
||||
/obj/structure/grille,
|
||||
/turf/open/space/basic,
|
||||
/area/space/nearstation)
|
||||
/obj/structure/sign/warning/fire,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"Xe" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -1818,7 +1858,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/engine/engineering)
|
||||
"XM" = (
|
||||
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/engine/vacuum,
|
||||
@@ -1939,8 +1979,7 @@
|
||||
/area/engine/engineering)
|
||||
"ZC" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/dark/visible,
|
||||
/obj/item/wrench,
|
||||
/turf/open/floor/engine/vacuum,
|
||||
/turf/closed/wall/r_wall,
|
||||
/area/engine/engineering)
|
||||
"ZT" = (
|
||||
/turf/template_noop,
|
||||
@@ -2202,7 +2241,7 @@ Rh
|
||||
Rh
|
||||
Rh
|
||||
Rh
|
||||
yf
|
||||
Rh
|
||||
"}
|
||||
(10,1,1) = {"
|
||||
ZT
|
||||
@@ -2228,9 +2267,9 @@ yf
|
||||
yf
|
||||
yf
|
||||
yf
|
||||
Rh
|
||||
yf
|
||||
yf
|
||||
YZ
|
||||
oZ
|
||||
YZ
|
||||
"}
|
||||
(11,1,1) = {"
|
||||
oC
|
||||
@@ -2255,10 +2294,10 @@ MP
|
||||
MP
|
||||
MP
|
||||
Rh
|
||||
WB
|
||||
YZ
|
||||
WB
|
||||
yf
|
||||
oZ
|
||||
Oj
|
||||
oZ
|
||||
"}
|
||||
(12,1,1) = {"
|
||||
cS
|
||||
@@ -2282,11 +2321,11 @@ Eo
|
||||
Mf
|
||||
BT
|
||||
MP
|
||||
tw
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(13,1,1) = {"
|
||||
ME
|
||||
@@ -2310,11 +2349,11 @@ lw
|
||||
NP
|
||||
Ef
|
||||
MP
|
||||
tw
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(14,1,1) = {"
|
||||
Ne
|
||||
@@ -2339,10 +2378,10 @@ Wc
|
||||
tv
|
||||
MP
|
||||
Rh
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
Rh
|
||||
"}
|
||||
(15,1,1) = {"
|
||||
iP
|
||||
@@ -2366,11 +2405,11 @@ lw
|
||||
lw
|
||||
XK
|
||||
MP
|
||||
tw
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(16,1,1) = {"
|
||||
MP
|
||||
@@ -2392,13 +2431,13 @@ pY
|
||||
BI
|
||||
Et
|
||||
Ok
|
||||
TE
|
||||
OP
|
||||
MP
|
||||
Rh
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(17,1,1) = {"
|
||||
oS
|
||||
@@ -2422,11 +2461,11 @@ sH
|
||||
sH
|
||||
Uq
|
||||
MP
|
||||
tw
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(18,1,1) = {"
|
||||
iD
|
||||
@@ -2450,11 +2489,11 @@ IW
|
||||
wC
|
||||
Pp
|
||||
MP
|
||||
tw
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(19,1,1) = {"
|
||||
oS
|
||||
@@ -2479,10 +2518,10 @@ sH
|
||||
EH
|
||||
MP
|
||||
Rh
|
||||
yf
|
||||
YZ
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(20,1,1) = {"
|
||||
MP
|
||||
@@ -2499,18 +2538,18 @@ wR
|
||||
Zm
|
||||
OK
|
||||
Ok
|
||||
OP
|
||||
Ok
|
||||
rr
|
||||
kK
|
||||
Ok
|
||||
Jj
|
||||
eD
|
||||
lD
|
||||
MP
|
||||
Rh
|
||||
YZ
|
||||
yf
|
||||
yf
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(21,1,1) = {"
|
||||
MP
|
||||
@@ -2526,19 +2565,19 @@ PK
|
||||
cK
|
||||
Ok
|
||||
OK
|
||||
PK
|
||||
en
|
||||
MP
|
||||
dq
|
||||
MP
|
||||
MP
|
||||
MP
|
||||
fO
|
||||
Rh
|
||||
Rh
|
||||
aq
|
||||
kK
|
||||
MP
|
||||
nk
|
||||
MP
|
||||
MP
|
||||
MP
|
||||
WB
|
||||
yf
|
||||
yf
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(22,1,1) = {"
|
||||
iD
|
||||
@@ -2555,18 +2594,18 @@ aR
|
||||
ZY
|
||||
QH
|
||||
Hp
|
||||
Kx
|
||||
sH
|
||||
oQ
|
||||
kS
|
||||
kS
|
||||
kS
|
||||
le
|
||||
qv
|
||||
kS
|
||||
kS
|
||||
ek
|
||||
Fl
|
||||
Le
|
||||
Rh
|
||||
yf
|
||||
Oj
|
||||
YZ
|
||||
Rh
|
||||
"}
|
||||
(23,1,1) = {"
|
||||
iD
|
||||
@@ -2583,18 +2622,18 @@ LD
|
||||
wv
|
||||
mj
|
||||
SE
|
||||
le
|
||||
wv
|
||||
ZC
|
||||
nc
|
||||
gA
|
||||
Am
|
||||
XM
|
||||
ek
|
||||
Kx
|
||||
Fl
|
||||
Le
|
||||
Rh
|
||||
yf
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(24,1,1) = {"
|
||||
mH
|
||||
@@ -2611,18 +2650,18 @@ sH
|
||||
sH
|
||||
gq
|
||||
FW
|
||||
Kx
|
||||
sH
|
||||
oQ
|
||||
kS
|
||||
BY
|
||||
kS
|
||||
IA
|
||||
nD
|
||||
ek
|
||||
TE
|
||||
Fl
|
||||
Le
|
||||
Rh
|
||||
yf
|
||||
Oj
|
||||
YZ
|
||||
yf
|
||||
"}
|
||||
(25,1,1) = {"
|
||||
iD
|
||||
@@ -2643,14 +2682,14 @@ yN
|
||||
yN
|
||||
yN
|
||||
yN
|
||||
nk
|
||||
yN
|
||||
IA
|
||||
MP
|
||||
fO
|
||||
Rh
|
||||
Rh
|
||||
YZ
|
||||
YZ
|
||||
WB
|
||||
yf
|
||||
yf
|
||||
Oj
|
||||
YZ
|
||||
"}
|
||||
(26,1,1) = {"
|
||||
wt
|
||||
@@ -2676,9 +2715,9 @@ yf
|
||||
yf
|
||||
yf
|
||||
yf
|
||||
Rh
|
||||
yf
|
||||
yf
|
||||
EM
|
||||
YZ
|
||||
"}
|
||||
(27,1,1) = {"
|
||||
ZT
|
||||
@@ -2693,7 +2732,7 @@ eh
|
||||
zx
|
||||
XW
|
||||
ST
|
||||
Ok
|
||||
en
|
||||
MP
|
||||
dw
|
||||
dw
|
||||
@@ -2720,7 +2759,7 @@ Ok
|
||||
SB
|
||||
Fi
|
||||
tQ
|
||||
Ok
|
||||
dq
|
||||
BT
|
||||
MP
|
||||
yf
|
||||
|
||||
@@ -3830,7 +3830,7 @@
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/awaymission/academy/academycellar)
|
||||
"kY" = (
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/engine/cult,
|
||||
/area/awaymission/academy/academycellar)
|
||||
"kZ" = (
|
||||
|
||||
@@ -873,7 +873,7 @@
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4
|
||||
},
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
@@ -945,7 +945,7 @@
|
||||
/area/awaymission/caves/research)
|
||||
"cN" = (
|
||||
/obj/machinery/door/window/eastleft,
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
@@ -1015,7 +1015,7 @@
|
||||
},
|
||||
/area/awaymission/caves/BMP_asteroid/level_two)
|
||||
"cV" = (
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/turf/open/floor/plating{
|
||||
initial_gas_mix = "n2=23;o2=14"
|
||||
},
|
||||
|
||||
@@ -5597,8 +5597,8 @@
|
||||
},
|
||||
/area/awaymission/moonoutpost19/arrivals)
|
||||
"kK" = (
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/xenoblood/xgibs,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/obj/effect/decal/cleanable/blood/gibs/xeno,
|
||||
/obj/effect/turf_decal/tile/bar,
|
||||
/obj/effect/turf_decal/tile/bar{
|
||||
dir = 1
|
||||
@@ -5608,7 +5608,7 @@
|
||||
},
|
||||
/area/awaymission/moonoutpost19/arrivals)
|
||||
"kL" = (
|
||||
/obj/effect/decal/cleanable/xenoblood,
|
||||
/obj/effect/decal/cleanable/blood/xeno,
|
||||
/obj/effect/decal/remains/xeno{
|
||||
desc = "They look like the remains of something... alien. The front of skull appears to have been completely obliterated."
|
||||
},
|
||||
|
||||
@@ -1098,7 +1098,8 @@
|
||||
pixel_y = 5
|
||||
},
|
||||
/obj/machinery/door/airlock{
|
||||
name = "Freezer"
|
||||
name = "Freezer";
|
||||
req_access_txt = "201"
|
||||
},
|
||||
/obj/structure/barricade/wooden,
|
||||
/obj/structure/spider/stickyweb,
|
||||
@@ -1674,7 +1675,7 @@
|
||||
"dQ" = (
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Kitchen";
|
||||
req_access_txt = "204"
|
||||
req_access_txt = "201"
|
||||
},
|
||||
/obj/structure/barricade/wooden/crude,
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -2310,7 +2311,7 @@
|
||||
},
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Kitchen";
|
||||
req_access_txt = "204"
|
||||
req_access_txt = "201"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/obj/structure/barricade/wooden/crude,
|
||||
@@ -4383,6 +4384,7 @@
|
||||
/area/awaymission/snowdin/post/messhall)
|
||||
"jA" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/table,
|
||||
/obj/machinery/plantgenes,
|
||||
/turf/open/floor/plating,
|
||||
/area/awaymission/snowdin/post/hydro)
|
||||
@@ -4628,6 +4630,8 @@
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/table,
|
||||
/obj/machinery/smartfridge/disks,
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/snowdin/post/hydro)
|
||||
"kf" = (
|
||||
@@ -4966,6 +4970,9 @@
|
||||
/obj/effect/turf_decal/tile/green{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/closet/secure_closet/hydroponics{
|
||||
req_access = null
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/snowdin/post/hydro)
|
||||
"kR" = (
|
||||
@@ -5439,7 +5446,7 @@
|
||||
},
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "204"
|
||||
req_access_txt = "201"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
@@ -5836,7 +5843,7 @@
|
||||
"mq" = (
|
||||
/obj/machinery/door/airlock/public/glass{
|
||||
name = "Hydroponics";
|
||||
req_access_txt = "204"
|
||||
req_access_txt = "201"
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
/turf/open/floor/plasteel/cafeteria,
|
||||
@@ -7039,7 +7046,9 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/snowdin/post/hydro)
|
||||
"oV" = (
|
||||
/obj/structure/closet/secure_closet/hydroponics,
|
||||
/obj/structure/closet/secure_closet/hydroponics{
|
||||
req_access = null
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/awaymission/snowdin/post/hydro)
|
||||
"oW" = (
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1687,7 +1687,7 @@
|
||||
pixel_y = -32
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
@@ -4503,7 +4503,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/checkpoint)
|
||||
"anx" = (
|
||||
/obj/machinery/computer/prisoner{
|
||||
/obj/machinery/computer/prisoner/management{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
@@ -15027,7 +15027,7 @@
|
||||
/area/crew_quarters/bar)
|
||||
"aGc" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = 32
|
||||
},
|
||||
@@ -15298,7 +15298,7 @@
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -16677,7 +16677,7 @@
|
||||
/area/maintenance/disposal/incinerator)
|
||||
"aIy" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -17632,7 +17632,7 @@
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
@@ -21324,7 +21324,7 @@
|
||||
"aQl" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/camera,
|
||||
@@ -23444,7 +23444,7 @@
|
||||
/area/crew_quarters/theatre)
|
||||
"aTy" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -27176,7 +27176,7 @@
|
||||
/area/crew_quarters/bar/atrium)
|
||||
"aYF" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -27352,7 +27352,7 @@
|
||||
"aYR" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -27478,7 +27478,7 @@
|
||||
"aZb" = (
|
||||
/obj/machinery/photocopier,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -29173,7 +29173,7 @@
|
||||
pixel_y = 22
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/chem_master/condimaster{
|
||||
@@ -29437,7 +29437,7 @@
|
||||
/obj/item/clipboard,
|
||||
/obj/item/toy/figure/miner,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -30653,7 +30653,7 @@
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -30888,7 +30888,7 @@
|
||||
"beY" = (
|
||||
/obj/structure/kitchenspike,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -32458,7 +32458,7 @@
|
||||
/area/crew_quarters/kitchen)
|
||||
"bhL" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = 32
|
||||
},
|
||||
@@ -36402,7 +36402,7 @@
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/crew_quarters/heads/hos)
|
||||
"boc" = (
|
||||
/obj/machinery/computer/prisoner{
|
||||
/obj/machinery/computer/prisoner/management{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
@@ -37136,7 +37136,6 @@
|
||||
/obj/item/clothing/accessory/armband/deputy,
|
||||
/obj/item/clothing/accessory/armband/deputy,
|
||||
/obj/item/clothing/accessory/armband/deputy,
|
||||
/obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
@@ -38708,7 +38707,7 @@
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/crew_quarters/heads/hos)
|
||||
"brE" = (
|
||||
/obj/machinery/computer/prisoner{
|
||||
/obj/machinery/computer/prisoner/management{
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -39612,7 +39611,7 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/security/execution/transfer)
|
||||
"bth" = (
|
||||
/obj/machinery/computer/gulag_teleporter_computer{
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
@@ -39930,7 +39929,7 @@
|
||||
/area/crew_quarters/heads/hos)
|
||||
"bty" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -40617,7 +40616,7 @@
|
||||
/area/security/main)
|
||||
"buM" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -41679,7 +41678,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -42725,7 +42724,7 @@
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/bridge)
|
||||
"byk" = (
|
||||
/obj/machinery/computer/prisoner,
|
||||
/obj/machinery/computer/prisoner/management,
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
dir = 1
|
||||
},
|
||||
@@ -43048,7 +43047,7 @@
|
||||
"byI" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
@@ -43062,7 +43061,7 @@
|
||||
/area/security/execution/transfer)
|
||||
"byJ" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -48587,7 +48586,7 @@
|
||||
/area/engine/gravity_generator)
|
||||
"bGg" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
@@ -48626,7 +48625,7 @@
|
||||
/area/engine/break_room)
|
||||
"bGk" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/airalarm{
|
||||
@@ -48767,7 +48766,7 @@
|
||||
"bGt" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -49722,7 +49721,7 @@
|
||||
/area/engine/gravity_generator)
|
||||
"bHS" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -50238,7 +50237,7 @@
|
||||
"bIG" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
@@ -51713,7 +51712,7 @@
|
||||
"bKU" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -52277,7 +52276,7 @@
|
||||
"bLK" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/button/door{
|
||||
@@ -55206,7 +55205,7 @@
|
||||
"bQh" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/yellow{
|
||||
@@ -56841,7 +56840,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/red{
|
||||
@@ -56940,7 +56939,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/warden)
|
||||
"bTh" = (
|
||||
/obj/machinery/computer/prisoner{
|
||||
/obj/machinery/computer/prisoner/management{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -56985,7 +56984,7 @@
|
||||
pixel_y = -3
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -57080,7 +57079,7 @@
|
||||
layer = 2.9
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light/small{
|
||||
@@ -60629,7 +60628,7 @@
|
||||
"bXY" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -60731,7 +60730,7 @@
|
||||
"bYh" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -60752,7 +60751,7 @@
|
||||
"bYi" = (
|
||||
/obj/structure/window/reinforced,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
|
||||
@@ -62112,7 +62111,7 @@
|
||||
/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"caj" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/porta_turret/ai,
|
||||
@@ -63869,7 +63868,7 @@
|
||||
"cdk" = (
|
||||
/obj/machinery/vending/wardrobe/law_wardrobe,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/turf/open/floor/wood,
|
||||
@@ -63908,7 +63907,7 @@
|
||||
/area/security/brig)
|
||||
"cdn" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -66862,7 +66861,7 @@
|
||||
/area/engine/engineering)
|
||||
"chF" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -67193,7 +67192,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
@@ -69161,7 +69160,7 @@
|
||||
pixel_x = -26
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = 32
|
||||
},
|
||||
@@ -70545,7 +70544,7 @@
|
||||
},
|
||||
/obj/item/camera_film,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
@@ -76434,7 +76433,7 @@
|
||||
},
|
||||
/obj/item/crowbar,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
@@ -77434,7 +77433,7 @@
|
||||
"czP" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral{
|
||||
@@ -77720,7 +77719,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -78626,7 +78625,7 @@
|
||||
"cBL" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
@@ -80630,7 +80629,7 @@
|
||||
/obj/item/radio,
|
||||
/obj/item/radio,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
@@ -81274,7 +81273,7 @@
|
||||
/obj/item/clothing/head/welding,
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24;
|
||||
pixel_y = -32
|
||||
},
|
||||
@@ -82492,7 +82491,7 @@
|
||||
/area/crew_quarters/dorms)
|
||||
"cIk" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
@@ -87334,7 +87333,7 @@
|
||||
"cQE" = (
|
||||
/obj/structure/closet/secure_closet/security/science,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
@@ -88689,7 +88688,7 @@
|
||||
pixel_y = 32
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -95466,7 +95465,7 @@
|
||||
/obj/item/paper_bin,
|
||||
/obj/item/pen,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/storage/bag/bio,
|
||||
@@ -96402,7 +96401,7 @@
|
||||
/obj/item/reagent_containers/glass/bottle/epinephrine,
|
||||
/obj/item/reagent_containers/dropper,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -100107,7 +100106,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/door/firedoor,
|
||||
@@ -100471,7 +100470,7 @@
|
||||
/area/science/explab)
|
||||
"dmJ" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -100482,7 +100481,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -103126,7 +103125,7 @@
|
||||
pixel_x = 36
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/vending/assist,
|
||||
@@ -103293,7 +103292,7 @@
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
@@ -103903,7 +103902,7 @@
|
||||
"dti" = (
|
||||
/obj/structure/closet/bombcloset,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/stripes/line{
|
||||
@@ -104237,7 +104236,7 @@
|
||||
/area/medical/surgery)
|
||||
"dtQ" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -104850,7 +104849,7 @@
|
||||
"duZ" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24;
|
||||
pixel_y = -26
|
||||
},
|
||||
@@ -104881,7 +104880,7 @@
|
||||
"dvd" = (
|
||||
/obj/item/twohanded/required/kirbyplants/random,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -107029,7 +107028,7 @@
|
||||
"dyD" = (
|
||||
/obj/structure/table,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/status_display/ai{
|
||||
@@ -108246,7 +108245,7 @@
|
||||
/obj/item/clothing/glasses/welding,
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/effect/turf_decal/bot,
|
||||
@@ -111340,7 +111339,7 @@
|
||||
dir = 5
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
@@ -111734,7 +111733,7 @@
|
||||
pixel_y = 26
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24;
|
||||
pixel_y = -26
|
||||
},
|
||||
@@ -112430,7 +112429,7 @@
|
||||
/area/science/robotics/lab)
|
||||
"dHC" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
@@ -113831,7 +113830,7 @@
|
||||
"dJO" = (
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
|
||||
@@ -114092,7 +114091,7 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/neutral,
|
||||
@@ -116595,7 +116594,7 @@
|
||||
"dOC" = (
|
||||
/obj/structure/filingcabinet/medical,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/effect/turf_decal/tile/blue{
|
||||
@@ -117475,7 +117474,7 @@
|
||||
name = "emergency shower"
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on{
|
||||
@@ -118674,7 +118673,7 @@
|
||||
/area/medical/virology)
|
||||
"dSd" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/light{
|
||||
@@ -119507,7 +119506,7 @@
|
||||
dir = 8
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/structure/sign/poster/official/work_for_a_future{
|
||||
@@ -119718,7 +119717,7 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
|
||||
@@ -121473,7 +121472,7 @@
|
||||
"dXI" = (
|
||||
/obj/structure/chair/wood,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
@@ -121999,7 +121998,7 @@
|
||||
/area/medical/virology)
|
||||
"dYV" = (
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/structure/closet/secure_closet/medical1,
|
||||
@@ -125028,7 +125027,7 @@
|
||||
},
|
||||
/obj/item/camera_film,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 4;
|
||||
dir = 8;
|
||||
pixel_x = 24
|
||||
},
|
||||
/obj/machinery/status_display{
|
||||
@@ -125124,7 +125123,7 @@
|
||||
"eeH" = (
|
||||
/obj/structure/filingcabinet/security,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/machinery/light_switch{
|
||||
@@ -125833,7 +125832,7 @@
|
||||
"egb" = (
|
||||
/obj/structure/table/wood,
|
||||
/obj/machinery/firealarm{
|
||||
dir = 8;
|
||||
dir = 4;
|
||||
pixel_x = -24
|
||||
},
|
||||
/obj/item/clipboard,
|
||||
@@ -125929,7 +125928,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/checkpoint/escape)
|
||||
"egj" = (
|
||||
/obj/machinery/computer/prisoner{
|
||||
/obj/machinery/computer/prisoner/management{
|
||||
dir = 1
|
||||
},
|
||||
/obj/structure/cable/white{
|
||||
@@ -126929,6 +126928,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/mixing)
|
||||
"kZu" = (
|
||||
/obj/effect/landmark/barthpot,
|
||||
/turf/open/floor/wood,
|
||||
/area/library)
|
||||
"lak" = (
|
||||
/turf/open/floor/plasteel/white/side{
|
||||
dir = 10
|
||||
@@ -160252,7 +160255,7 @@ caG
|
||||
chU
|
||||
cjt
|
||||
ckR
|
||||
cmt
|
||||
kZu
|
||||
cnR
|
||||
cpv
|
||||
cqQ
|
||||
|
||||
+147933
-147933
File diff suppressed because it is too large
Load Diff
@@ -20,10 +20,10 @@
|
||||
"aat" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{dir = 4; name = "Head of Personnel"; req_access_txt = "57"},/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plasteel/dark,/area/crew_quarters/heads/hop)
|
||||
"aau" = (/obj/machinery/door/airlock/maintenance{dir = 4; name = "Detective Maintenance"; req_access_txt = "4"},/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"aav" = (/obj/effect/landmark/start/cyborg,/obj/item/beacon,/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"aaw" = (/obj/machinery/door/airlock/command/glass{dir = 4; name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"aaw" = (/obj/machinery/door/airlock/command/glass{dir = 4; name = "AI Core"; req_access_txt = "65"},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"aax" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/door/airlock/maintenance{dir = 4; req_access_txt = "12"},/turf/open/floor/plating,/area/maintenance/department/crew_quarters/dorms)
|
||||
"aay" = (/obj/machinery/door/airlock{dir = 4; id_tag = "Dorm3"; name = "Dorm 3"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{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/open/floor/plasteel/dark,/area/crew_quarters/dorms)
|
||||
"aaz" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/command/glass{dir = 4; name = "AI Core"; req_access_txt = "65"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"aaz" = (/obj/machinery/door/firedoor/heavy,/obj/machinery/door/airlock/command/glass{dir = 4; name = "AI Core"; req_access_txt = "65"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"aaA" = (/obj/machinery/holopad,/obj/structure/cable/yellow{icon_state = "1-2"},/mob/living/simple_animal/bot/secbot/pingsky,/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"aaB" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/decal/cleanable/robot_debris{icon_state = "gib6"},/turf/open/floor/plating,/area/maintenance/department/crew_quarters/dorms)
|
||||
"aaC" = (/obj/machinery/door/airlock/command{dir = 4; name = "Captain's Quarters"; req_access_txt = "20"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/firedoor,/turf/open/floor/plasteel/dark,/area/crew_quarters/heads/captain)
|
||||
@@ -112,15 +112,15 @@
|
||||
"ach" = (/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"aci" = (/obj/effect/turf_decal/stripes/corner{dir = 4},/turf/open/floor/plasteel/white{heat_capacity = 1e+006},/area/ai_monitored/turret_protected/ai)
|
||||
"acj" = (/obj/structure/cable/yellow{icon_state = "2-4"},/obj/effect/landmark/start/ai/secondary,/obj/item/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = -27},/obj/machinery/firealarm{dir = 1; pixel_y = 26},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"ack" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{icon_state = "0-4"},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber Center"; dir = 2; network = list("minisat")},/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{icon_state = "0-8"},/obj/machinery/status_display/ai{pixel_y = 32},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acl" = (/obj/structure/cable{icon_state = "0-8"},/obj/machinery/power/apc{areastring = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber APC"; pixel_y = 24},/obj/effect/landmark/start/ai/secondary,/obj/item/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"ack" = (/obj/machinery/power/smes{charge = 5e+006},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber Center"; dir = 2; network = list("minisat")},/obj/machinery/light/small{dir = 1},/obj/structure/cable/yellow{icon_state = "0-8"},/obj/machinery/status_display/ai{pixel_y = 32},/obj/structure/cable/yellow{icon_state = "0-4"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acl" = (/obj/machinery/power/apc{areastring = "/area/ai_monitored/turret_protected/ai"; dir = 1; name = "AI Chamber APC"; pixel_y = 24},/obj/effect/landmark/start/ai/secondary,/obj/item/radio/intercom{anyai = 1; broadcasting = 0; freerange = 1; frequency = 1447; name = "Private Channel"; pixel_x = 27},/obj/structure/cable/yellow{icon_state = "0-8"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acm" = (/obj/machinery/camera/motion{c_tag = "MiniSat External Port"; dir = 8; network = list("minisat")},/turf/open/space,/area/space/nearstation)
|
||||
"acn" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber West"; dir = 4; network = list("minisat")},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"aco" = (/obj/structure/cable/yellow{icon_state = "2-4"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acp" = (/obj/machinery/door/airlock/medical/glass{dir = 4; name = "Medbay Storage"; req_access_txt = "5"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/medbay/central)
|
||||
"acq" = (/obj/structure/cable/yellow{icon_state = "1-8"},/obj/machinery/turretid{control_area = "/area/ai_monitored/turret_protected/ai"; name = "AI Chamber turret control"; pixel_x = 5; pixel_y = -24},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"acr" = (/obj/machinery/ai_slipper{uses = 8},/obj/machinery/power/terminal{dir = 1},/obj/machinery/holopad,/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"acs" = (/obj/machinery/turretid{control_area = "/area/ai_monitored/turret_protected/aisat_interior"; name = "AI Satellite turret control"; pixel_x = -5; pixel_y = -24},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"acr" = (/obj/machinery/ai_slipper{uses = 8},/obj/machinery/power/terminal{dir = 1},/obj/machinery/holopad,/obj/structure/cable{icon_state = "0-4"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"acs" = (/obj/machinery/turretid{control_area = "/area/ai_monitored/turret_protected/aisat_interior"; name = "AI Satellite turret control"; pixel_x = -5; pixel_y = -24},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"act" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/medical/glass{dir = 4; name = "Medbay Storage"; req_access_txt = "5"},/turf/open/floor/plasteel/white,/area/medical/medbay/central)
|
||||
"acu" = (/obj/machinery/porta_turret/ai{dir = 4},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber East"; dir = 8; network = list("minisat")},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"acv" = (/obj/machinery/camera/motion{c_tag = "MiniSat External Starboard"; dir = 4; network = list("minisat")},/turf/open/space,/area/space/nearstation)
|
||||
@@ -132,7 +132,7 @@
|
||||
"acB" = (/obj/machinery/door/firedoor/heavy,/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acC" = (/obj/machinery/airalarm{pixel_y = 22},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acD" = (/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber South"; dir = 2; network = list("minisat")},/obj/machinery/light{dir = 1},/obj/machinery/flasher{id = "AI"; pixel_y = 20},/obj/machinery/status_display/ai{pixel_y = 37},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acE" = (/obj/item/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = 24},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acE" = (/obj/item/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = 24},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"acF" = (/obj/machinery/atmospherics/components/unary/outlet_injector/on,/turf/open/floor/plating/airless,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"acG" = (/obj/structure/cable/yellow{icon_state = "2-4"},/obj/effect/turf_decal/stripes/corner{dir = 8},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"acH" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
@@ -147,7 +147,7 @@
|
||||
"acQ" = (/obj/structure/cable/yellow{icon_state = "1-2"},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"acR" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"acS" = (/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"acT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"acT" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"acU" = (/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"acV" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"acW" = (/obj/machinery/computer/station_alert,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
@@ -156,7 +156,7 @@
|
||||
"acZ" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai)
|
||||
"ada" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai)
|
||||
"adb" = (/obj/machinery/door/firedoor,/obj/structure/cable/yellow{icon_state = "1-2"},/obj/machinery/door/airlock/command/glass{name = "AI Core"; req_access_txt = "65"},/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/ai)
|
||||
"adc" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai)
|
||||
"adc" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai)
|
||||
"add" = (/obj/effect/spawner/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/open/floor/plating,/area/ai_monitored/turret_protected/ai)
|
||||
"ade" = (/obj/structure/table/glass,/obj/item/stack/sheet/metal,/obj/item/stack/sheet/glass{amount = 20; pixel_x = 3; pixel_y = -4},/obj/item/assembly/flash/handheld,/obj/item/assembly/flash/handheld,/obj/item/mmi,/obj/item/assembly/prox_sensor{pixel_x = -8; pixel_y = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adf" = (/obj/machinery/light/small{dir = 1},/obj/machinery/computer/rdconsole/robotics,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
@@ -167,19 +167,19 @@
|
||||
"adk" = (/obj/structure/table,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable/yellow{icon_state = "0-4"},/obj/machinery/power/apc{areastring = "/area/ai_monitored/turret_protected/aisat_interior"; dir = 8; name = "MiniSat Antechamber APC"; pixel_x = -24},/obj/machinery/recharger,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adl" = (/obj/structure/chair/office/dark{dir = 1},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adm" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/structure/cable/yellow{icon_state = "1-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adn" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adn" = (/obj/structure/chair/office/dark{dir = 4},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"ado" = (/obj/structure/table,/obj/item/pen,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/firealarm{dir = 4; pixel_x = 28},/obj/item/paper_bin,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adq" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adr" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"ads" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adt" = (/obj/machinery/camera{c_tag = "MiniSat Maintenance Port Fore"; dir = 1; network = list("minisat")},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adv" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adx" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"ady" = (/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adz" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4},/obj/item/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber Observation"; dir = 1; network = list("minisat")},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"ads" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adt" = (/obj/machinery/camera{c_tag = "MiniSat Maintenance Port Fore"; dir = 1; network = list("minisat")},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adu" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adv" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 4},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adw" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/machinery/airalarm{dir = 1; pixel_y = -22},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adx" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"ady" = (/obj/structure/cable/yellow{icon_state = "1-2"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adz" = (/obj/machinery/light/small,/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4},/obj/item/radio/intercom{broadcasting = 1; frequency = 1447; listening = 0; name = "Station Intercom (AI Private)"; pixel_y = -29},/obj/machinery/camera/motion{c_tag = "MiniSat AI Chamber Observation"; dir = 1; network = list("minisat")},/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adA" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plasteel/grimy,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"adB" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 8},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adC" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
@@ -187,7 +187,7 @@
|
||||
"adE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adG" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adH" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adH" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adJ" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adK" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
@@ -199,7 +199,7 @@
|
||||
"adQ" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"adR" = (/obj/structure/grille,/obj/structure/lattice,/turf/open/space,/area/space/nearstation)
|
||||
"adS" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adT" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adT" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adU" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adV" = (/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"adW" = (/obj/structure/lattice,/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Bridge Port Fore"; dir = 2; network = list("minisat")},/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
@@ -210,7 +210,7 @@
|
||||
"aeb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"aec" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 8},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAS)
|
||||
"aed" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/open/space,/area/space/nearstation)
|
||||
"aee" = (/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aee" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aef" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aeg" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/porta_turret/ai{installation = /obj/item/gun/energy/e_gun},/turf/open/floor/plating/airless,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"aeh" = (/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
@@ -227,7 +227,7 @@
|
||||
"aes" = (/obj/structure/easel,/obj/item/canvas/nineteenXnineteen,/obj/structure/cable{icon_state = "4-8"},/obj/structure/sign/poster/official/random{pixel_y = 32},/turf/open/floor/plasteel/dark,/area/security/prison)
|
||||
"aet" = (/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/security/prison)
|
||||
"aeu" = (/obj/machinery/biogenerator,/obj/structure/sign/poster/official/random{pixel_y = 32},/obj/effect/turf_decal/tile/green{dir = 1},/obj/effect/turf_decal/tile/green{dir = 8},/turf/open/floor/plasteel/dark,/area/security/prison)
|
||||
"aev" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aev" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aew" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/closed/wall/r_wall,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aex" = (/obj/structure/lattice,/obj/machinery/light/small,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/camera/motion{c_tag = "MiniSat Bridge Port Aft"; dir = 1; network = list("minisat")},/turf/open/space,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aey" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
@@ -257,7 +257,7 @@
|
||||
"aeW" = (/obj/structure/sink{pixel_y = 30},/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/security/prison)
|
||||
"aeX" = (/obj/machinery/washing_machine,/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/security/prison)
|
||||
"aeY" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/obj/structure/cable/yellow{icon_state = "0-4"},/obj/machinery/power/apc{areastring = "/area/ai_monitored/turret_protected/AIsatextAP"; dir = 8; name = "MiniSat Port Maintenance APC"; pixel_x = -24},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aeZ" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"aeZ" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afa" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/airalarm{pixel_y = 22},/obj/machinery/camera{c_tag = "MiniSat Maintenance Port Aft"; dir = 2; network = list("minisat")},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afb" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afc" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
@@ -278,8 +278,8 @@
|
||||
"afr" = (/obj/machinery/light/small,/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/security/prison)
|
||||
"afs" = (/obj/structure/table,/obj/structure/bedsheetbin,/obj/effect/turf_decal/tile/blue{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/security/prison)
|
||||
"aft" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afu" = (/obj/machinery/atmospherics/components/binary/pump/on{dir = 4; name = "Air Out"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afv" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afu" = (/obj/machinery/atmospherics/components/binary/pump/on{dir = 4; name = "Air Out"},/obj/structure/cable{icon_state = "1-4"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afv" = (/obj/structure/chair/stool,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afw" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afx" = (/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afy" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden,/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel/dark,/area/crew_quarters/heads/hos)
|
||||
@@ -295,8 +295,8 @@
|
||||
"afI" = (/obj/machinery/computer/arcade,/turf/open/floor/plasteel/dark,/area/security/prison)
|
||||
"afJ" = (/obj/effect/landmark/carpspawn,/turf/open/space/basic,/area/space/nearstation)
|
||||
"afK" = (/obj/machinery/atmospherics/components/unary/tank/air{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afL" = (/obj/structure/table,/obj/item/wrench,/obj/item/tank/internals/emergency_oxygen,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afM" = (/obj/structure/table,/obj/item/crowbar,/obj/item/clothing/mask/gas,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afL" = (/obj/structure/table,/obj/item/wrench,/obj/item/tank/internals/emergency_oxygen,/obj/item/clothing/mask/gas,/obj/item/crowbar,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afM" = (/obj/structure/cable,/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"afN" = (/obj/machinery/teleport/hub,/obj/effect/turf_decal/stripes/line{dir = 5},/turf/open/floor/plating,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afO" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 1},/turf/open/floor/plasteel/dark,/area/ai_monitored/turret_protected/aisat_interior)
|
||||
"afP" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "1-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{dir = 9},/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel/dark,/area/crew_quarters/heads/hos)
|
||||
@@ -2147,11 +2147,10 @@
|
||||
"aPo" = (/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel/cafeteria,/area/hallway/secondary/exit/departure_lounge)
|
||||
"aPp" = (/obj/structure/disposaloutlet,/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/lattice/catwalk,/turf/open/floor/plating/airless,/area/space/nearstation)
|
||||
"aPq" = (/obj/machinery/light{dir = 4},/obj/item/radio/intercom{name = "Station Intercom (General)"; pixel_x = 27},/obj/machinery/camera{c_tag = "Departure Lounge Starboard"; dir = 8},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel,/area/hallway/secondary/exit/departure_lounge)
|
||||
"aPr" = (/obj/structure/cable{icon_state = "2-4"},/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPs" = (/obj/structure/cable{icon_state = "1-8"},/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPr" = (/obj/structure/lattice/catwalk,/obj/structure/cable/yellow{icon_state = "2-4"},/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPs" = (/obj/structure/lattice/catwalk,/obj/structure/cable/yellow{icon_state = "1-8"},/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPt" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/construction/mining/aux_base)
|
||||
"aPu" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{dir = 6},/obj/structure/lattice/catwalk,/turf/open/floor/plating/airless,/area/engine/engineering)
|
||||
"aPv" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPw" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/sign/directions/evac{dir = 1; pixel_x = 32},/obj/effect/turf_decal/tile/neutral,/turf/open/floor/plasteel,/area/hallway/primary/central)
|
||||
"aPx" = (/obj/machinery/light/small{dir = 1},/obj/item/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plating,/area/maintenance/department/crew_quarters/bar)
|
||||
"aPy" = (/obj/item/twohanded/required/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/department/crew_quarters/bar)
|
||||
@@ -2162,7 +2161,6 @@
|
||||
"aPD" = (/obj/machinery/power/apc{dir = 1; name = "Bar Maintenance APC"; pixel_y = 24},/obj/structure/cable{icon_state = "0-2"},/turf/open/floor/plating,/area/maintenance/department/crew_quarters/bar)
|
||||
"aPE" = (/turf/closed/wall,/area/crew_quarters/bar)
|
||||
"aPF" = (/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{dir = 1},/obj/structure/lattice/catwalk,/turf/open/floor/plating/airless,/area/engine/engineering)
|
||||
"aPG" = (/obj/structure/cable,/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPH" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/structure/extinguisher_cabinet{pixel_x = -26},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel/dark,/area/storage/eva)
|
||||
"aPI" = (/obj/structure/disposalpipe/segment{dir = 5},/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/turf/open/floor/plasteel,/area/storage/eva)
|
||||
"aPJ" = (/obj/structure/disposalpipe/segment{dir = 10},/turf/open/floor/plasteel,/area/storage/eva)
|
||||
@@ -2177,7 +2175,7 @@
|
||||
"aPS" = (/obj/machinery/light{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/tile/brown{dir = 4},/turf/open/floor/plasteel,/area/hallway/primary/central)
|
||||
"aPT" = (/obj/effect/turf_decal/stripes/line{dir = 1},/obj/machinery/atmospherics/components/unary/outlet_injector/on{dir = 1},/obj/structure/lattice/catwalk,/turf/open/floor/plating/airless,/area/maintenance/department/chapel/monastery)
|
||||
"aPU" = (/obj/structure/closet/crate/coffin,/obj/item/toy/plush/narplush,/turf/open/floor/plating,/area/chapel/asteroid/monastery)
|
||||
"aPV" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1},/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPV" = (/obj/structure/lattice/catwalk,/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/space/basic,/area/space/nearstation)
|
||||
"aPW" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/quartermaster/office)
|
||||
"aPX" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/quartermaster/sorting)
|
||||
"aPY" = (/turf/open/floor/plasteel,/area/quartermaster/office)
|
||||
@@ -2189,11 +2187,11 @@
|
||||
"aQe" = (/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/quartermaster/warehouse)
|
||||
"aQf" = (/obj/structure/closet/crate{icon_state = "crateopen"},/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel,/area/quartermaster/warehouse)
|
||||
"aQg" = (/obj/structure/closet/crate/medical,/turf/open/floor/plasteel,/area/quartermaster/warehouse)
|
||||
"aQh" = (/obj/structure/cable{icon_state = "1-4"},/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aQi" = (/obj/structure/cable{icon_state = "2-8"},/obj/structure/lattice/catwalk,/turf/open/space/basic,/area/space/nearstation)
|
||||
"aQh" = (/obj/structure/lattice/catwalk,/obj/structure/cable/yellow{icon_state = "1-4"},/turf/open/space/basic,/area/space/nearstation)
|
||||
"aQi" = (/obj/structure/lattice/catwalk,/obj/structure/cable/yellow{icon_state = "4-8"},/turf/open/space/basic,/area/space/nearstation)
|
||||
"aQj" = (/obj/structure/disposalpipe/sorting/mail/flip{dir = 2; sortType = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plating,/area/maintenance/department/cargo)
|
||||
"aQk" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/disposal)
|
||||
"aQl" = (/obj/machinery/camera{c_tag = "Telecomms External Fore"; dir = 1; network = list("tcomms"); start_active = 1},/obj/structure/cable/yellow{icon_state = "0-2"},/obj/structure/lattice/catwalk,/turf/open/floor/plating/airless,/area/space/nearstation)
|
||||
"aQl" = (/obj/machinery/camera{c_tag = "Telecomms External Fore"; dir = 1; network = list("tcomms"); start_active = 1},/obj/structure/lattice/catwalk,/obj/structure/cable/yellow{icon_state = "2-8"},/turf/open/floor/plating/airless,/area/space/nearstation)
|
||||
"aQm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/obj/structure/lattice/catwalk,/turf/open/floor/plating/airless,/area/space/nearstation)
|
||||
"aQn" = (/obj/machinery/conveyor_switch/oneway{id = "garbage"; name = "disposal conveyor"},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plating,/area/maintenance/disposal)
|
||||
"aQo" = (/obj/machinery/light/small{dir = 8},/obj/machinery/conveyor{dir = 1; id = "garbage"},/turf/open/floor/plating,/area/maintenance/disposal)
|
||||
@@ -2421,7 +2419,7 @@
|
||||
"aUC" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/department/cargo)
|
||||
"aUD" = (/obj/structure/lattice/catwalk,/obj/structure/cable{icon_state = "2-8"},/obj/structure/cable{icon_state = "2-4"},/obj/structure/cable{icon_state = "1-2"},/turf/open/space,/area/solar/starboard)
|
||||
"aUE" = (/turf/open/floor/wood,/area/maintenance/department/chapel/monastery)
|
||||
"aUF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/carpet,/area/library/lounge)
|
||||
"aUF" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/landmark/barthpot,/turf/open/floor/carpet,/area/library/lounge)
|
||||
"aUG" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/obj/structure/cable{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/exit/departure_lounge)
|
||||
"aUH" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/sign/directions/evac{dir = 1; pixel_y = 32},/obj/structure/cable{icon_state = "4-8"},/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel/white/corner{dir = 1},/area/hallway/secondary/exit/departure_lounge)
|
||||
"aUI" = (/obj/structure/table/wood,/obj/machinery/computer/libraryconsole,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/dark,/area/library/lounge)
|
||||
@@ -4030,7 +4028,7 @@
|
||||
"bAW" = (/turf/closed/wall,/area/medical/virology)
|
||||
"bAX" = (/obj/machinery/door/firedoor,/obj/effect/mapping_helpers/airlock/locked,/obj/machinery/door/airlock/virology{autoclose = 0; frequency = 1449; id_tag = "virology_airlock_exterior"; name = "Virology Exterior Airlock"; req_access_txt = "39"},/obj/structure/cable{icon_state = "1-2"},/obj/machinery/doorButtons/access_button{idDoor = "virology_airlock_exterior"; idSelf = "virology_airlock_control"; name = "Virology Access Button"; pixel_x = -24; req_access_txt = "39"},/obj/effect/mapping_helpers/airlock/cyclelink_helper,/turf/open/floor/plasteel/white,/area/medical/virology)
|
||||
"bAY" = (/obj/structure/sign/warning/biohazard,/turf/closed/wall,/area/medical/virology)
|
||||
"bBb" = (/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel/white,/area/medical/sleeper)
|
||||
"bBb" = (/obj/effect/turf_decal/stripes/line,/obj/machinery/bloodbankgen,/turf/open/floor/plasteel/white,/area/medical/sleeper)
|
||||
"bBc" = (/obj/structure/disposalpipe/segment{dir = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper)
|
||||
"bBd" = (/obj/machinery/door/firedoor,/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 9},/turf/open/floor/plasteel/white,/area/medical/sleeper)
|
||||
"bBe" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 8},/obj/structure/disposalpipe/segment{dir = 4},/obj/effect/turf_decal/tile/blue{dir = 1},/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/white,/area/medical/medbay/central)
|
||||
@@ -5379,7 +5377,7 @@
|
||||
"chr" = (/turf/open/floor/plasteel/grimy,/area/chapel/main/monastery)
|
||||
"chs" = (/obj/machinery/atmospherics/components/unary/vent_pump/on,/turf/open/floor/plasteel/grimy,/area/chapel/main/monastery)
|
||||
"chu" = (/obj/structure/sink{dir = 4; pixel_x = 11},/turf/open/floor/plasteel/showroomfloor,/area/chapel/main/monastery)
|
||||
"chv" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access_txt = "61"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering)
|
||||
"chv" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/machinery/door/airlock/external{name = "Engineering External Access"; req_access_txt = "61"},/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plating,/area/engine/engineering)
|
||||
"chw" = (/obj/effect/spawner/structure/window/plasma/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 5},/turf/open/floor/plating,/area/engine/engineering)
|
||||
"chA" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/turf/open/floor/plating,/area/engine/supermatter)
|
||||
"chB" = (/obj/item/seeds/banana,/obj/item/seeds/grass,/obj/item/seeds/grape,/turf/open/floor/plasteel,/area/chapel/main/monastery)
|
||||
@@ -5506,27 +5504,27 @@
|
||||
"cls" = (/obj/effect/spawner/lootdrop/maintenance,/turf/closed/mineral,/area/asteroid/nearstation/bomb_site)
|
||||
"clv" = (/turf/closed/mineral/iron,/area/asteroid/nearstation/bomb_site)
|
||||
"clw" = (/turf/closed/wall/r_wall,/area/tcommsat/computer)
|
||||
"clA" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper,/obj/machinery/door/airlock/external{name = "Telecommunications External Access"; req_access_txt = "61"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clA" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper,/obj/machinery/door/airlock/external{name = "Telecommunications External Access"; req_access_txt = "61"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clB" = (/obj/structure/cable/yellow{icon_state = "1-2"},/turf/closed/wall/r_wall,/area/tcommsat/computer)
|
||||
"clC" = (/obj/structure/window/reinforced/fulltile,/obj/structure/transit_tube,/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clD" = (/obj/machinery/light/small{brightness = 3; dir = 8},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clD" = (/obj/machinery/light/small{brightness = 3; dir = 8},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clE" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/closed/wall/r_wall,/area/tcommsat/computer)
|
||||
"clF" = (/obj/effect/spawner/lootdrop/maintenance,/turf/closed/mineral/random/low_chance,/area/asteroid/nearstation/bomb_site)
|
||||
"clG" = (/obj/effect/spawner/structure/window/reinforced,/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clH" = (/obj/structure/transit_tube,/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clJ" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/machinery/door/airlock/external{name = "Telecommunications External Access"; req_access_txt = "61"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clJ" = (/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/machinery/door/airlock/external{name = "Telecommunications External Access"; req_access_txt = "61"},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/space)
|
||||
"clL" = (/turf/closed/wall,/area/tcommsat/computer)
|
||||
"clM" = (/obj/machinery/atmospherics/components/binary/pump/on{dir = 1; name = "Waste to Space"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clM" = (/obj/machinery/atmospherics/components/binary/pump/on{dir = 1; name = "Waste to Space"},/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clN" = (/obj/machinery/atmospherics/components/unary/tank/air,/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clP" = (/obj/structure/transit_tube/station/reverse/flipped{dir = 8},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clQ" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4},/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clR" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clR" = (/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clS" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "1-4"},/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clT" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "4-8"},/turf/closed/wall,/area/tcommsat/computer)
|
||||
"clU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/wrench,/obj/structure/cable/yellow{icon_state = "2-8"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clU" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/obj/item/wrench,/obj/structure/cable/yellow{icon_state = "2-8"},/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clV" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"clX" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 6},/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clY" = (/obj/item/beacon,/obj/structure/cable{icon_state = "1-2"},/obj/structure/cable{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clY" = (/obj/item/beacon,/obj/structure/cable{icon_state = "2-4"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"clZ" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 1},/turf/open/floor/plasteel,/area/tcommsat/computer)
|
||||
"cma" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/machinery/door/airlock/maintenance_hatch{name = "Telecommunications Maintenance"; req_access_txt = "61"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"cmb" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable/yellow{icon_state = "1-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
@@ -6076,6 +6074,7 @@
|
||||
"eAp" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{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/open/floor/plasteel,/area/hallway/secondary/exit/departure_lounge)
|
||||
"eCw" = (/obj/structure/cable{icon_state = "1-2"},/obj/structure/disposalpipe/segment,/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/plating,/area/maintenance/department/cargo)
|
||||
"eCK" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/department/cargo)
|
||||
"eCL" = (/mob/living/simple_animal/hostile/carp/cayenne/lia,/turf/open/floor/carpet,/area/crew_quarters/heads/hos)
|
||||
"eDC" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/plasteel,/area/construction/mining/aux_base)
|
||||
"eEp" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 4},/turf/open/floor/wood,/area/lawoffice)
|
||||
"eFj" = (/obj/machinery/atmospherics/components/unary/vent_pump/on{dir = 4},/turf/open/floor/plasteel/white,/area/medical/sleeper)
|
||||
@@ -6235,6 +6234,7 @@
|
||||
"hVx" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating,/area/maintenance/department/engine)
|
||||
"hXm" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/engine,/area/engine/engineering)
|
||||
"hXt" = (/obj/structure/girder,/turf/open/floor/plating,/area/maintenance/department/science)
|
||||
"hXz" = (/obj/structure/cable{icon_state = "2-8"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"hYe" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/effect/turf_decal/tile/red{dir = 1},/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel/dark,/area/chapel/office)
|
||||
"hZB" = (/obj/structure/cable{icon_state = "4-8"},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{dir = 1},/turf/open/floor/plating,/area/maintenance/department/engine)
|
||||
"iab" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/hallway/secondary/exit/departure_lounge)
|
||||
@@ -6308,6 +6308,7 @@
|
||||
"jHP" = (/obj/structure/table,/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka{pixel_x = 6; pixel_y = 10},/obj/item/reagent_containers/food/drinks/bottle/tequila{pixel_x = -6; pixel_y = 4},/turf/open/floor/plating,/area/maintenance/department/crew_quarters/dorms)
|
||||
"jLW" = (/obj/machinery/atmospherics/pipe/simple/purple/visible,/turf/closed/wall/r_wall,/area/maintenance/disposal/incinerator)
|
||||
"jOw" = (/obj/structure/closet/secure_closet/engineering_electrical,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/effect/turf_decal/stripes/corner{dir = 1},/turf/open/floor/plasteel,/area/engine/engineering)
|
||||
"jOA" = (/obj/structure/cable{icon_state = "2-4"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"jOB" = (/turf/open/floor/plating,/area/storage/emergency/starboard)
|
||||
"jPf" = (/obj/structure/closet,/obj/effect/spawner/lootdrop/maintenance,/obj/item/kitchen/knife,/turf/open/floor/plasteel,/area/maintenance/department/engine)
|
||||
"jPC" = (/obj/structure/lattice,/obj/machinery/atmospherics/pipe/simple/green/visible,/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 4},/turf/open/space,/area/space/nearstation)
|
||||
@@ -6328,7 +6329,7 @@
|
||||
"kfM" = (/obj/structure/closet,/obj/machinery/light/small{dir = 2},/obj/item/storage/book/bible,/obj/item/storage/book/bible,/obj/item/storage/book/bible,/turf/open/floor/carpet,/area/chapel/office)
|
||||
"kgR" = (/obj/structure/toilet{dir = 4},/turf/open/floor/plating,/area/maintenance/department/science)
|
||||
"khk" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plasteel,/area/science/mixing)
|
||||
"kjK" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"kjK" = (/obj/machinery/door/airlock/maintenance_hatch{name = "MiniSat Maintenance"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/effect/mapping_helpers/airlock/cyclelink_helper{dir = 1},/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/ai_monitored/turret_protected/AIsatextAP)
|
||||
"kkk" = (/obj/structure/table,/obj/item/reagent_containers/food/drinks/shaker,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/department/crew_quarters/dorms)
|
||||
"kkQ" = (/obj/machinery/vending/cola/pwr_game,/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/department/science)
|
||||
"klo" = (/obj/structure/dresser,/obj/structure/mirror{pixel_y = 30},/turf/open/floor/plating,/area/maintenance/department/engine)
|
||||
@@ -6539,6 +6540,7 @@
|
||||
"oxt" = (/obj/structure/table/glass,/obj/item/book/manual/wiki/research_and_development,/obj/item/disk/tech_disk,/obj/item/disk/design_disk,/turf/open/floor/plasteel/dark,/area/science/lab)
|
||||
"oyE" = (/obj/effect/turf_decal/stripes/line{dir = 6},/turf/open/floor/engine,/area/engine/engineering)
|
||||
"oyF" = (/obj/structure/disposalpipe/segment,/turf/open/floor/plasteel,/area/storage/primary)
|
||||
"oAb" = (/obj/structure/cable{icon_state = "1-8"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"oAw" = (/obj/effect/turf_decal/stripes/line{dir = 4},/obj/structure/sink{dir = 4; pixel_x = 11},/turf/open/floor/plasteel,/area/engine/engineering)
|
||||
"oAW" = (/obj/item/stack/sheet/mineral/wood,/turf/open/floor/plating,/area/maintenance/department/engine)
|
||||
"oBb" = (/obj/structure/sign/warning/biohazard,/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/closed/wall/r_wall,/area/science/xenobiology)
|
||||
@@ -6582,6 +6584,7 @@
|
||||
"pkM" = (/obj/machinery/door/airlock/external{req_access_txt = "22"},/turf/open/floor/plating,/area/chapel/office)
|
||||
"plA" = (/obj/structure/piano,/turf/open/floor/plasteel/dark,/area/maintenance/department/crew_quarters/dorms)
|
||||
"pnU" = (/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{dir = 4; external_pressure_bound = 120; name = "server vent"},/turf/open/floor/circuit/telecomms,/area/science/xenobiology)
|
||||
"poE" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"ppi" = (/obj/item/radio/intercom{name = "Station Intercom (General)"; pixel_x = 29},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/engine,/area/engine/engineering)
|
||||
"pps" = (/turf/closed/wall,/area/engine/break_room)
|
||||
"ppQ" = (/obj/structure/sign/poster/official/random{pixel_y = -32},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel/white/corner,/area/hallway/secondary/exit/departure_lounge)
|
||||
@@ -6798,6 +6801,7 @@
|
||||
"ugC" = (/obj/structure/chair/office/light{dir = 4; icon_state = "officechair_white"},/obj/effect/turf_decal/tile/purple{dir = 1},/obj/effect/turf_decal/tile/purple{dir = 4},/turf/open/floor/plasteel/white,/area/science/xenobiology)
|
||||
"uiP" = (/obj/structure/disposalpipe/segment{dir = 10},/turf/open/floor/wood,/area/maintenance/department/engine)
|
||||
"ujI" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"ukh" = (/obj/machinery/door/airlock/command/glass{dir = 4; name = "AI Core"; req_access_txt = "65"},/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"ukn" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/closed/wall,/area/maintenance/department/engine)
|
||||
"ulu" = (/obj/machinery/disposal/bin,/obj/structure/disposalpipe/trunk{dir = 8},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel,/area/storage/primary)
|
||||
"ulY" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/closed/wall/r_wall,/area/engine/engineering)
|
||||
@@ -6860,6 +6864,7 @@
|
||||
"vzT" = (/obj/structure/table,/obj/item/stack/rods{amount = 5; layer = 3.3},/obj/effect/spawner/lootdrop/maintenance,/obj/item/assembly/prox_sensor{pixel_y = 2},/obj/machinery/light/small{dir = 1},/turf/open/floor/plating,/area/maintenance/department/cargo)
|
||||
"vAq" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"vCC" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/cyan/hidden{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"vDG" = (/obj/machinery/door/firedoor/heavy,/obj/structure/cable{icon_state = "4-8"},/turf/open/floor/circuit,/area/ai_monitored/turret_protected/ai)
|
||||
"vGg" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/open/floor/plating,/area/maintenance/department/engine)
|
||||
"vIc" = (/obj/structure/cable{icon_state = "2-4"},/obj/structure/disposalpipe/segment{dir = 10},/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"vIn" = (/obj/machinery/atmospherics/pipe/simple/orange/visible{dir = 6},/turf/closed/wall/r_wall,/area/engine/engineering)
|
||||
@@ -6893,9 +6898,11 @@
|
||||
"wnJ" = (/obj/structure/sign/warning,/turf/closed/wall,/area/science/mixing)
|
||||
"woh" = (/obj/structure/cable/yellow{icon_state = "4-8"},/obj/machinery/door/poddoor/shutters/preopen{id = "engsm"; name = "Radiation Chamber Shutters"},/obj/effect/decal/cleanable/oil,/turf/open/floor/plating,/area/engine/supermatter)
|
||||
"woq" = (/obj/structure/chair,/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"wrC" = (/obj/structure/cable{icon_state = "1-2"},/turf/open/floor/plasteel/white,/area/ai_monitored/turret_protected/ai)
|
||||
"wrU" = (/obj/machinery/photocopier,/obj/machinery/firealarm{dir = 4; pixel_x = -28},/turf/open/floor/wood,/area/lawoffice)
|
||||
"wsx" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/machinery/light{dir = 4; light_color = "#e8eaff"},/obj/effect/turf_decal/stripes/line{dir = 4},/turf/open/floor/plasteel,/area/engine/engineering)
|
||||
"wun" = (/obj/structure/cable{icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/disposalpipe/junction/yjunction{dir = 8},/turf/open/floor/plasteel,/area/hallway/primary/central)
|
||||
"wvg" = (/obj/machinery/bloodbankgen,/turf/open/floor/plasteel/white,/area/medical/chemistry)
|
||||
"wwG" = (/obj/effect/turf_decal/stripes/line{dir = 8},/turf/open/floor/plating,/area/maintenance/department/security/brig)
|
||||
"wxb" = (/obj/structure/cable{icon_state = "4-8"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/open/floor/plating{icon_state = "platingdmg3"},/area/maintenance/department/security/brig)
|
||||
"wxJ" = (/obj/effect/turf_decal/delivery,/obj/machinery/door/poddoor/preopen{id = "prison release"; name = "prisoner processing blast door"},/turf/open/floor/plasteel/dark,/area/security/brig)
|
||||
@@ -6951,7 +6958,7 @@
|
||||
"xlY" = (/obj/effect/landmark/xeno_spawn,/turf/open/floor/plating{icon_state = "platingdmg1"},/area/maintenance/department/chapel/monastery)
|
||||
"xmp" = (/obj/machinery/door/firedoor,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/obj/effect/turf_decal/tile/red{dir = 8},/turf/open/floor/plasteel/white/corner,/area/hallway/secondary/exit/departure_lounge)
|
||||
"xmE" = (/obj/structure/chair{dir = 8},/obj/structure/sign/poster/official/random{pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/open/floor/plasteel/dark,/area/engine/engineering)
|
||||
"xnm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/power/port_gen/pacman,/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"xnm" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/machinery/power/port_gen/pacman,/obj/structure/cable/yellow{icon_state = "0-2"},/turf/open/floor/plating,/area/tcommsat/computer)
|
||||
"xnP" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on,/turf/open/floor/plasteel,/area/construction/mining/aux_base)
|
||||
"xpr" = (/obj/machinery/atmospherics/components/unary/vent_scrubber/on{dir = 1},/obj/effect/turf_decal/tile/blue,/obj/effect/turf_decal/tile/blue{dir = 8},/turf/open/floor/plasteel/dark,/area/science/xenobiology)
|
||||
"xpD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/open/floor/plating,/area/maintenance/department/science)
|
||||
@@ -7035,12 +7042,12 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOachaceaceabOabOabOabOabOaceaceaciabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOabYaceabOabOabOabOabOabOabOaceabYabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyabIabOabWaceabOabOacjackaclabOabOaceabWabOabIabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyacmabOacnacoaawaawacqacracsaazaawaceacuabOacvabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOacwacxabOabOabOacyabOabOabOaceacwabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOabYacxabOabOabOabOabOabOabOaceabYabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOabVaczacAabOabOabOabOabOaceaceabXabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyabIabOaccacdacxacBacCacDacEacBaceacdacgabOacFabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOacGacHacIacJacKacLabYacMachacwaciabOacNaaaacOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyacmabOacnacoaawaawacqacracsaazukhhXzacuabOacvabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOacwacxabOabOabOacyabOabOabOpoEacwabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOabYacxabOabOabOabOabOabOabOpoEabYabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaabOabVaczacAabOabOabOabOabOjOAoAbabXabOaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyabIabOaccacdacxacBacCacDacEvDGoAbacdacgabOacFabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabOacGacHacIacJacKacLwrCacMachacwaciabOacNaaaacOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaacPacPacQacPacPabOacRacSacTabOacUacUacUacUacVaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyabIacPacWacXacYacPacZadaadbadcaddacUadeadfadgacVabIabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyaaaacPadhadiadjacPadkadladmadnadoacUadpadqadracVaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -7067,7 +7074,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitaiVaiWaiXaiYaiuafUafUafUafUaiZajaajbaiAajcajcajcagyajdajeajfagyagyagyahLajgajQajRajSajjahLajkajlajmajnajoajpbgOagPajrajsajsajsajsajsbhrajsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtcdmaaaahtahsahtaaaaaaaaaaaaaaaaaaaaaaiSeqDalbcBwnoCtapalbcPOaiSaiSaiSaiTajxajyajyajyajzaiTaiSaiSaiTaiTaiTaiSaiSaiSaiTaiTaiTaiSaiSaiSaiSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaitajBajCajDajEaiuajFajGajGaiuaiuajIaiuaiAagyagyagyagyajJajKajLajMajNajOahLaQyakMakNakOajTahLajUajVajWajWajXajYbgPagPaiRajsakaakbakcakdbhwajsajsahiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtcdmahtahtahRahtaaaaaaaaaaaaaaaaaaaaaaiToMNgnagNvaiSaiSanmaiSaiSakjcBxacaakmaknakoaknakkaffcByaknaknaknaknaknaknaknaknaknaknaaBaknasnaiSabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuakrajDaksaktaiuakuakvakwaiuakxakyakzakAakBakCakDakEakFakGakHaaeakJakKahLakLakMaiMakOakPahLakQajVajVajVajVajVbgQcCSakTakUakVakWakXakXakXakZabIahiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtcdmaaaahtalaahtaaaaaaaaaaaaaaaaaaaaaaiSvlFklVnnhaiSanYajvaiSaobaleaiSaiTalfalgalgalgalhaiTaiSaiSaaFaaFaaFaiSaiSaiSaaFaaFaaFaiSaiSaleaiSabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuaiualiaiuaiuaiualjalkallaiualmalnaloalpalqalralsaltalualvalwalxalyalzahLalAakMaiMakOalAahLalBalCalDalEalCalFbgRalHaiRafyalJalKalLalJalMalNabIahiaaaaaaaaaaaaaaaaaaahtahtahtahtahtahtahtahtahtahtahtcdmahtalOahtahtaaaaaaaaaaaaaaaaaaaaaaiTtvjxbJsqhaiSaptajvaiSeawaleaiSaaaaaaaaaaaaaaaaaaaaaaaZabdakqanpaqZaslasmbkkatoauoatnaupaiSaleaiSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiuaiualiaiuaiuaiualjalkallaiualmalnaloalpalqalralsaltalualvalwalxalyalzahLalAakMaiMakOalAahLalBalCalDalEalCalFbgRalHaiRafyeCLalKalLalJalMalNabIahiaaaaaaaaaaaaaaaaaaahtahtahtahtahtahtahtahtahtahtahtcdmahtalOahtahtaaaaaaaaaaaaaaaaaaaaaaiTtvjxbJsqhaiSaptajvaiSeawaleaiSaaaaaaaaaaaaaaaaaaaaaaaZabdakqanpaqZaslasmbkkatoauoatnaupaiSaleaiSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtaitajDaitaaaaiualTalUalVaiualWalXalYakAalZamaambamcamdameamfamgamgamgamgamhamiamjamkamjamlammamnamoampamnamqbgTamsaafafPamvamwamxamyamzalNabIahiaaaaaaaaaaaaaaaaaaamAamBamCamCamCamBamCamCamCamCamBamCamDahtaaaahtaaaaaaaaaaaaaaaaaaaaaaiSaiTaiSaiTaiSsbkajuaiSajvaleaiTaaaaaaaaaaaaaaaaaaaaaawzauqavmavmavmavmavnavmavmavmawwawyaaFaleaiTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabyahtaiuaiuaiuaiuaiuahtahtaitajDaitaaaaiuskwamHtfZaiuamIamJamKakAamLamMamNamOamPamQamRamgamSamTamUamVamWamXamYamZanaanbalCancandalCaneanfalHaiRafVanhaniabHalJankalNabIahiaaaaaaaaaaaaaaaanlahtahtahtahtahtahtahtahtahtahtahtcdmahtahtahtahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiSaiSajvaiSajvaleaiTaaaaaaaaaaaaaaaaaaaaaawzawAawBawCawCawCawDawCawCawCaxvawyaaFaleaiTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaedaaaaitfINoFflcUaiuaiuaiuaiuanqaiuaiuaiuanransvCCantanuanvanwakAanxakAajMajManyanzanAanBanCanDanEanFanGanHanIanJanKanLalEanMandalEanNanOanPanQanRanSjvianUanVanTanWabIahiaaaaaaaaaaaaanlaaaahtaaaaaaaaaahtaaaaaaaaaahtaaaahtcdmaaaaaaaaaahtaaaaaaaaaaaacBUlcZcBUlcZcBUaaaaaaaiTalPcBAaiScnXaleaiTaaaaaaaaaaaaaaaaaaaaaawzaxwaxxaxzaxAayuayuayuaxAayuayvawyaaFaleaiTabIaaaaaaaaaaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -7130,7 +7137,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaZxaKsxaAbaKaKtaJBbaKbbTaKuastbtPbtQbnvbtRbtSbtTboubtUbtVbtWbtXbtYbnvbtZbsybjQbuabubbucbudbucbuebuabkhbufbrfbugcqmcqmaoNblobuibpYbujbukbulbumbunbpYqbmtTlcqivfncSKcCtbupbuqburbuscClbutbyCbuubktbkubuvbkubktbktbktbktbktbktbuwbuxbuybodfjsbuAwBbwBbwlKbuBdkRbuCgDZcKAbuDbuEbuFbuGbuHbrRwkZbuKbkFofNxzpxprnuvjxljwebwebwebwfcucbwhbwebwfbuUbwebwebuWbkFmtIgICoBbpMGufaufahUJwXuuvonaqblXiPjblXxKcaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamZEbGIbGIaZxaKvaFKaKwaZxaKvaFKaKxaKyaYGbvabvbbnvbnvbtSbnvbvcbouboubvdbvebvcbvcbvfbvgbvhbvibvjjsjbvkkQytixrarjUVbvmbvnbvobvlbvlbvlbvlbvpababvrbvsbwUbvtmcfgGAbvugkScqiufxduFbyFbvwbvxbvybvzbqbbsUbvAbvBbvCcqpbvEbvFbvGbvHbvIbvJbvKbvLbvMbvNbvObvPbvQbvRbvSbvTbvUeNqbvVbvWbvVbvYbvZbwabwbbwcbjwbkFbnjdqwbkFgdLugCihkihktXnbrRbxMbxNbxObnjbxMbxQbxRbnjbxMbxSbxTbkFbwmbwnbkFiPzoNEtaAriWcOpmMzbkFblXblXblXbkFaaaaedaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVpaZxaZxaZxaZxaZxaZxtOeaZxaZxbwqbwraYGbwsbwtbnvbnvbwubnvbwvbwwbwxbwybwzbwAbvcbwBbwCbwDbwEbwFbwGbwHbwIcSJbwEbwKbwLbwMbwNbwObwPbwPcqsbwQbpXbwSbwTbsKbwVnnfbwWwnwtTlcqiufxoxtbxcbxdbxebxfbxgabTbxibxjbxkbxlbxmbxnbxobxpabcbxrbxsabUbxubxvbxwbxxbxybxzbxAbwabxCbxDeNqcxtbxGbxHbvYbxJefubxKbxLbjwldQbwmspzbkFiLlgdJpXgcPThfZbnjbzkbzlbzmbnjbznxxObzpbnjbzqbzrbzsbkFkFuvRibkFsXRoepqcHjtflGSdmTbkFblXblXeQRbkFahtabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVpaZxaKzaKAaKAaKAaKAaKAaKBaKCaKFaKWaYGbybbycbnvbydbtSbyebyfbygbyhbyibyjbykbvcbylbymbynbsAbyobypbuabyobsAbsAbyrbysbytbyubyvbyubyvbyubyvbpYbywbyxbsKbyzbyAbpYceptTlerVabebyEnIUbyGbyHbyImdLbqbbyJhiYbyKcqtbyLbyMbyNbyObyPbyQbyRbySbyTbyUbyVbyWbyXbyYbyZbzabzbbzcurPbzdbzebzdfkHtAKbzhbzibzjbjwlNWbwmspzbkFbkFbkFbkFbkFbkFbkFbAHblXblXbnjbAHblXblXbnjbAHblXblXbkFtSLdKsbwmsXRbndbndbndbndbkFbkFbkFxKcbkFbkFaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVpaZxaKzaKAaKAaKAaKAaKAaKBaKCaKFaKWaYGbybbycbnvbydbtSbyebyfbygbyhbyibyjbykbvcbylbymbynbsAbyobypbuabyobsAbsAbyrbysbytbyubyvbyubyvbyubyvbpYbywbyxwvgbyzbyAbpYceptTlerVabebyEnIUbyGbyHbyImdLbqbbyJhiYbyKcqtbyLbyMbyNbyObyPbyQbyRbySbyTbyUbyVbyWbyXbyYbyZbzabzbbzcurPbzdbzebzdfkHtAKbzhbzibzjbjwlNWbwmspzbkFbkFbkFbkFbkFbkFbkFbAHblXblXbnjbAHblXblXbnjbAHblXblXbkFtSLdKsbwmsXRbndbndbndbndbkFbkFbkFxKcbkFbkFaaaabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVpaZxaKXaLpbzzbzzbzzaLqaLrbzzbzAbzBaYGbzCbzDbnvbzEbwubzFbzGbzHbzIbzJbzKbzLbvcbzMbzNbzObsAbzPbzQbzRbzSbzTbzUbzVbzWbzXbzYbzZbAabAbbAcbAdbpYbAebAfbAgoohbAibpYePStTlrMtbAmbBpbAobApbAqbArbCJfRsbAtbAtbAtbAubAvbAwbAxbAybAybBobAAbAAbABbAAbAAbAAbAAbACbADbAEbAFbAFbAFwnJvTNwnJbAFbAFbAFbAFbAFbHymSclWyspzbxPbwmlWykPisyQkkQbkFblXbBUblXbnjblXbBUblXbnjblXblXblXbkFiVJoKabwmpwSmlraLsahtaaaaaaaaaahtaaaaaaaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVpaZxaLtaLJaZxaZxaZxbAIbAJvIUbAKbALaYGbzCbAMbnvbANbAObAPbAQbARbASbATbAUbAVbvcbAWbAXbAYbsAbCjbzQbzReFjbBcbBdbBebBfbpPwLobBgbBhbBibBjbBkbpYbpYbBlbpYbpYbpYbpYnhWqUeksCdhzvyNbBqbBrbBsbBtbBufRsaLMaLNaLObAubsUbBzbkobBBbBoaaabAAbBCbBDbBEbBFbBGbAAbBHbBIbBJbAFbBKbBLbBMbBNbBObBPbBQbBRbBSbBTbHyscigXgwFTnevabgiVJiVJiVJrKLbkFblXbDeblXbnjblXbDeblXbnjblXbDeblXbkFiVJrgnbwmbwmsEBbwmahiaaaaaaaaaaedabyabyaedabyabyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabVpaZxaLtaLJaZxahtbBVabIbBXbBXbBXbBXbBXbBYbvbbnvbnvbnvbnvbBZbCabCbbCcbCdbCebvcbCfbCgbChbsAbCiiojbBbbClbCmbyobCnbCobCpabhbCrbCsbCtbCubCvabibCxbCybCzbCAbCBafYrGzdggfdQnkkbBpbCEbCFbCGbCHbCIbAoaLPaMdaMebAtcqkcqvbkobCNbCOahtbCPbBCbBDbCQbCRbCRbCSbCTbCUbBJbCVbCWbCWbCXbBNbCZbCWbDabDbbDcbDdbHybwmbwmbwmhgDbwmlWyhxnrFqlWybkFbkFbkFbkFbkFbkFbkFbkFbkFbkFbkFbkFbkFaadjRGeuQvtljEXhSMahiaaaaaaaaaahtaaaaaaaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
@@ -7172,28 +7179,28 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNbZYbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVcfmcfDcfEbWVcgGcgGbWVcgGcgGbWVcgGcgGbWVcfEcdxcfmcfmcfmcfmcfmcfmcfmcrOaaacjmcwAxXhfonaaaaaaaaabvabvadNrgHZxCVdJmxCVfvbpBDbvabvaeNFeNFeNFbXkceqceqccQbXkcgPbXkcgQqWGnQfyjyupgiCsabundfsWjcCIdFFobldFFkDIdFFvMQdFFmeFgHpsHXdGprAZeqMdAadAadAadAapuOaaaaaafonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVcukcgbculcumcfCbWVcdrcdCcdCbXJcfmchfcfEcgGchicidcuncgkcuocupciVcgmcgGcfEcgncfmcgLcgMcgNcfmcgOcfmcrOaaacjmlqocjmahtaaaaaangeahtbBXbBXbBXehMbDixaObBXbBXbBXahtaaaaaaaaabXkceqceqccQbXkcgPbXkchvbXknQfnIqqbprPgkNKcgvdnSuoqfyOmpduQafWEprQfyFfyOchAkWQhrxogegfhsQGhJOhJOhJOhJOrAZahtahtfonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIabIabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVcuscutchBcgdcuucgfcuvcuwcuxcuychFcuzcuacgGcidcuAcuBcuAciVcuEcgHcuEcgGchnchoakichqchrchsbcpchucfmcfNaaacjmcwAcjmahtaaaaaaadRahtbBXbDiwfObDiwfOswwbDibDibBXahtaaaaaaaaabXkbXkbXkbXkbXkcgPaPraPsaPucgtmAiqbprPgchwuaPrEtwDHfyOpebuQanyNprQcZtfyOchAiSihXmogetMAsQGhJOhJOhJOhJOpuOaaaaaafonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVcuGcuHcuIcuJchUbWVbXJcbKcbKcuKcfmciDcfEbWVcuMcibcicciScgIcgKcgHcuObWVcfEcuPcuQchKchLchMcfmchNcfmcfNcfNcjmcwAcjmmauaaaaaaadRahtbBXbDibDidWkweLbDiwfOfLGbBXahtaaaaaaaaaaaaaaaaaaaaaahtcgPaPvcdmaPFogeabDhUicBRogecgvmZKchAfyOpebuQafWEprQcZtfyOwohonajjAdGppuOdhudAadAadAadAarAZahtahtfonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVbWVchbchcchdcuRcuScePctgcePcePaklcuVcuWakpchjcgHcgHchkchlcgJcgHcgHcuYcdwcdxcfmcfmcfmcfmcfmcfmcfmcfNcfNcjmcwAxXhfonaaaaaaadRahtbBXbBXbBXbBXbBXbBXbBXbBXbBXahtaaaaaaaaaaaaaaaaaaaaaahtcgPaPvaaaaaaogeabDdMGiCsabvikmnqWmeFdFFcitcgYwXenPWhUfdFFcCIkeccivogevdbtMAhJOhJOhJOhJOpuOaaaaaafonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVchCchDcuZchEciybWVcrjciAcdCbXJcfmciDcfEbWVcvbcgHchGcgHcibcgHcicciEbWVcfEcvccfmciocgMcipcfmciqcfmcfNcfNcjmcwAxXhfonaaaaaaaaaaaaahtahtahtahtahtahtahtahtahtaaaaaaaaaaaaaaaaaaaaaaaaahtcigaPvaaaaaabXkbXkbXkbXkbXkcgVpBsoTDoTDdFFciIiTEmvYdFFcBScBSnggcivogetMAsQGhJOhJOhJOhJOrAZahtahtfonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIabIabIabIabIabIabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVchVchWchXchYchZbWVciNcvdaoacvecfmcfDcfEcgGciTciSciTcgHcvgcgjciVciWcgGchnchoakIchqchrchsbcpchucfmcfNcfNcfNuaacjmahtaaaaaaaaaaaaadRngengeadRadReNFeNFngeeNFaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPGahtahtuERaaaaaaaaabXkcgvpBsuWeuWevMQmZVmlSsfrmLccjtrwtnggjtvbXkcdmcdmeqMrAZeqMrAZcdmaaaaaafonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIahiahiahiahiahiabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVcfmchfcfEcgGcvhcidcjocvicidcvjcjqcjrcgGcfEcvkcuQciXchLciYcfmciZcfmcfNcfNcjmovEcjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigcdmaaaaaauERahtahtahtbXkcgvuRkdHFdGdgihobGjTcdZjlmvmCPliRcUTppibXkaaaaaaahtaaaahtaaaahtaaaaaafonfonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjvcjvcjwcjxcjxcjxcjwcjvcjvcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVciJciKbWVbWVcizcizcizcizcizcizbWVbXJcjHcfDcfEbWVcgGcgGbWVcgGcgGbWVcgGcgGbWVcfEcdxcfmcfmcfmcfmcfmcfmcfmcfNcfNcjmuaacjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmahtahtuERaaaaaaaaabXkgkNciGhQChQChQChQChQChQChQChQChQChQCoyEbXkaaaaaaahtaaaahtaaaahtaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjvcjVcjxcjxcjxcjxcjvcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafITfITfITfITcjfcjgcvqcgfcvrcvsckbckbckccvtcgfckdchFcvucfocfncfncfncvwcfncfncfncfncvwcfncvyeuNcfmcfNcaScfNcfNcfNcfNcfNcjmcjmuBucjmcjmfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigcdmaaaaaauERahtahtahtbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkahtfonfonfonfonfonfonfonahtahtahtahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjucjucjucjucjxcktcjxcjxcjxcjxcjxcjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjBcfHcfIcjCcfJbXJcjkcePcvAcePcvBckuckucvCcePcjlcePcuQcvEcvFciRcvFcvHcvIciRciRcvJckEcvKcePcfGcsSaXDcwAaTNcwAcwAcwAcwAuaaaTVuBuxlYwaNcjmfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmahtahtuERaaaaaaaaaaaaahtaaaahtaaaahtaaaahtaaaahtaaaahtaaaahtahtahtfonuERuERuERuERuERfonaaaahtuERuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKcjucjucjxcjxcjxckLcjxcktcjxcjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafITfITfITfITcjZckabWVbWVcvRcvScvTcvTcvVcrkbWVbWVcvXcvYcvZcwacwacwcckQcwacwecweckTcwgcwecwecfmcfmcfNcaScfNcfNcjmaUccjmcjmcjmezodzAcjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaauERahtahtahtfonfonfonfonfonfonfonfonfonfonfonfonfonfonahtahtfonfonfonfonfonfonfonaaaahtuERfonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjucjucjucjucjucjucjucjxcjxcjxcjxcjxcjxcjxcjucjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVbWVbWVbWVcwjbXJcdwbZocwkceQbXJcwlbWVckeckfcwmcwncwocwpclfcjOcwecjPxhjcjRcwrcwecwecwecwecfNcfNcfNcfNcwAcjmahtcjmcjmcjmcjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmahtahtuERaaaaaaaaafonuERuERuERuERuERuERuERuERuERuERuERuERfonahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKckKcjucjucjuckKcjucjxcjxcljcjxcjxcjucjuckKcjuckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNcfNbWVcwwbXJcjjcwxcwyciAbXJcwzbWVckyckfckjckgckhckicwAckkcwecklxhjjFOclmfWvfWvckpcwecjmcjmcjmcjmaYWcjmaaaahtmauahtahtxiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaauERahtahtahtfonfonfonfonfonfonfonfonfonfonfonfonfonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKckKckKcjucjucjucjucjucjucjucjxcjxcjxcjuckKcjuckKcjuckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVbWVcrjbXJcwEcwFbXJcwGbWVbWVcldclecwHckzckAckBcwAckCcweckDcwKckFckGqOEqOEckIcwecjmaUgaUhaUoaUEcjmcjmahtfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigcdmaaaaaafonaaaaaaaaaaaaaaaaaaahtaaaaaaaaaaaaaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKcjuckKckKckKckKcjucjucjuckKcjuckKckKcjucjuckKckKcjuckKckKcjuckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMfITcwObXJckvckwbXJcwOfITcwRaPTcjmckOckPckPckPcwSckRcweckScwKaUFaUIaUJaUNaUVaVeaVCaVDaVJaVJaVKaVLxXhaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKcjuckKckKcjuckKckKcjucjuckKckKckKckKckKcjucjuckKckKckKcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabITfITfITfITckMckNfITfITfITcwRaaacjmcjmcjmcjmcjmcjmcjmcweclgxhjcxejXhqOEqOEckIcwecjmaVQaVJaVJaUEaWcxXhaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaamauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKcjuckKckKcjuckKckKcjucjucjuckKckKckKckKcjuckKckKcjucjuckKckKckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxgcxhfITclbclbfITcxkcxgaaaaaaaaacfNcfNcfNcaSaPUcaScweclkcxnaWdaWfaWhaWhaWhaWkcleaWCaVJaVJaWDaWGxXhaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKckKcjuckKckKcjucjuckKckKckKckKckKcjuckKckKcjucjucjuckKckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxgaaaaaacxgaaaaaaaaaaaaaaaaaacfNcfNcaScaScaScwecwexhjjFOcwecwecwecwecwecjmaWHaWLaWZaXacjmcjmahtfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKcjuckKcjuckKcjuckKckKckKckKcjucjuckKckKckKcjuckKckKcjuclsckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcaScfNcaScfNcwelqycxzcwecfNcaScfNcaScjmcjmcjmcjmcjmcjmaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigcdmaaaaaaahtaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjuckKcjucjucjucjuckKckKcjuckKcjucjucjucjuckKckKckKckKckKckKcjucjuckKckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcaSaaaahtaaacxBcxCcxDcxEaaaahtcfNcaScfNcfNcfNcfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaamauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjucjuckKckKcjuckKcjucjucjucjuckKckKckKckKcjuckKcjuckKckKckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtaaaahtaaacxJcxKcxLcxMaaaahtaaaahtcfNcfNcfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPcdmaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKckKcjuckKckKckKckKckKckKckKckKckKcjuckKckKckKckKckKcjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVcuGcuHcuIcuJchUbWVbXJcbKcbKcuKcfmciDcfEbWVcuMcibcicciScgIcgKcgHcuObWVcfEcuPcuQchKchLchMcfmchNcfmcfNcfNcjmcwAcjmmauaaaaaaadRahtbBXbDibDidWkweLbDiwfOfLGbBXahtaaaaaaaaaaaaaaaaaaaaaahtcgPaPVcdmaPFogeabDhUicBRogecgvmZKchAfyOpebuQafWEprQcZtfyOwohonajjAdGppuOdhudAadAadAadAarAZahtahtfonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVbWVchbchcchdcuRcuScePctgcePcePaklcuVcuWakpchjcgHcgHchkchlcgJcgHcgHcuYcdwcdxcfmcfmcfmcfmcfmcfmcfmcfNcfNcjmcwAxXhfonaaaaaaadRahtbBXbBXbBXbBXbBXbBXbBXbBXbBXahtaaaaaaaaaaaaaaaaaaaaaahtcgPaPVaaaaaaogeabDdMGiCsabvikmnqWmeFdFFcitcgYwXenPWhUfdFFcCIkeccivogevdbtMAhJOhJOhJOhJOpuOaaaaaafonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIaaaabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVchCchDcuZchEciybWVcrjciAcdCbXJcfmciDcfEbWVcvbcgHchGcgHcibcgHcicciEbWVcfEcvccfmciocgMcipcfmciqcfmcfNcfNcjmcwAxXhfonaaaaaaaaaaaaahtahtahtahtahtahtahtahtahtaaaaaaaaaaaaaaaaaaaaaaaaahtcigaPVaaaaaabXkbXkbXkbXkbXkcgVpBsoTDoTDdFFciIiTEmvYdFFcBScBSnggcivogetMAsQGhJOhJOhJOhJOrAZahtahtfonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIabIabIabIabIabIabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNbWVchVchWchXchYchZbWVciNcvdaoacvecfmcfDcfEcgGciTciSciTcgHcvgcgjciVciWcgGchnchoakIchqchrchsbcpchucfmcfNcfNcfNuaacjmahtaaaaaaaaaaaaadRngengeadRadReNFeNFngeeNFaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVahtahtuERaaaaaaaaabXkcgvpBsuWeuWevMQmZVmlSsfrmLccjtrwtnggjtvbXkcdmcdmeqMrAZeqMrAZcdmaaaaaafonuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIahiahiahiahiahiabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVbWVcfmchfcfEcgGcvhcidcjocvicidcvjcjqcjrcgGcfEcvkcuQciXchLciYcfmciZcfmcfNcfNcjmovEcjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigaPVaaaaaauERahtahtahtbXkcgvuRkdHFdGdgihobGjTcdZjlmvmCPliRcUTppibXkaaaaaaahtaaaahtaaaahtaaaaaafonfonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjvcjvcjwcjxcjxcjxcjwcjvcjvcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVciJciKbWVbWVcizcizcizcizcizcizbWVbXJcjHcfDcfEbWVcgGcgGbWVcgGcgGbWVcgGcgGbWVcfEcdxcfmcfmcfmcfmcfmcfmcfmcfNcfNcjmuaacjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVahtahtuERaaaaaaaaabXkgkNciGhQChQChQChQChQChQChQChQChQChQCoyEbXkaaaaaaahtaaaahtaaaahtaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjvcjVcjxcjxcjxcjxcjvcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafITfITfITfITcjfcjgcvqcgfcvrcvsckbckbckccvtcgfckdchFcvucfocfncfncfncvwcfncfncfncfncvwcfncvyeuNcfmcfNcaScfNcfNcfNcfNcfNcjmcjmuBucjmcjmfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigaPVaaaaaauERahtahtahtbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkbXkahtfonfonfonfonfonfonfonahtahtahtahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjucjucjucjucjxcktcjxcjxcjxcjxcjxcjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjBcfHcfIcjCcfJbXJcjkcePcvAcePcvBckuckucvCcePcjlcePcuQcvEcvFciRcvFcvHcvIciRciRcvJckEcvKcePcfGcsSaXDcwAaTNcwAcwAcwAcwAuaaaTVuBuxlYwaNcjmfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVahtahtuERaaaaaaaaaaaaahtaaaahtaaaahtaaaahtaaaahtaaaahtaaaahtahtahtfonuERuERuERuERuERfonaaaahtuERuERfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKcjucjucjxcjxcjxckLcjxcktcjxcjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafITfITfITfITcjZckabWVbWVcvRcvScvTcvTcvVcrkbWVbWVcvXcvYcvZcwacwacwcckQcwacwecweckTcwgcwecwecfmcfmcfNcaScfNcfNcjmaUccjmcjmcjmezodzAcjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaauERahtahtahtfonfonfonfonfonfonfonfonfonfonfonfonfonfonahtahtfonfonfonfonfonfonfonaaaahtuERfonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjucjucjucjucjucjucjucjxcjxcjxcjxcjxcjxcjxcjucjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVbWVbWVbWVcwjbXJcdwbZocwkceQbXJcwlbWVckeckfcwmcwncwocwpclfcjOcwecjPxhjcjRcwrcwecwecwecwecfNcfNcfNcfNcwAcjmahtcjmcjmcjmcjmahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVahtahtuERaaaaaaaaafonuERuERuERuERuERuERuERuERuERuERuERuERfonahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKckKcjucjucjuckKcjucjxcjxcljcjxcjxcjucjuckKcjuckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNcfNbWVcwwbXJcjjcwxcwyciAbXJcwzbWVckyckfckjckgckhckicwAckkcwecklxhjjFOclmfWvfWvckpcwecjmcjmcjmcjmaYWcjmaaaahtmauahtahtxiYaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaauERahtahtahtfonfonfonfonfonfonfonfonfonfonfonfonfonfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKckKckKcjucjucjucjucjucjucjucjxcjxcjxcjuckKcjuckKcjuckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNbWVbWVcrjbXJcwEcwFbXJcwGbWVbWVcldclecwHckzckAckBcwAckCcweckDcwKckFckGqOEqOEckIcwecjmaUgaUhaUoaUEcjmcjmahtfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigaPVaaaaaafonaaaaaaaaaaaaaaaaaaahtaaaaaaaaaaaaaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKcjuckKckKckKckKcjucjucjuckKcjuckKckKcjucjuckKckKcjuckKckKcjuckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacwMfITcwObXJckvckwbXJcwOfITcwRaPTcjmckOckPckPckPcwSckRcweckScwKaUFaUIaUJaUNaUVaVeaVCaVDaVJaVJaVKaVLxXhaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKcjuckKckKcjuckKckKcjucjuckKckKckKckKckKcjucjuckKckKckKcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabITfITfITfITckMckNfITfITfITcwRaaacjmcjmcjmcjmcjmcjmcjmcweclgxhjcxejXhqOEqOEckIcwecjmaVQaVJaVJaUEaWcxXhaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaamauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKcjuckKckKcjuckKckKcjucjucjuckKckKckKckKcjuckKckKcjucjuckKckKckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxgcxhfITclbclbfITcxkcxgaaaaaaaaacfNcfNcfNcaSaPUcaScweclkcxnaWdaWfaWhaWhaWhaWkcleaWCaVJaVJaWDaWGxXhaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKckKcjuckKckKcjucjuckKckKckKckKckKcjuckKckKcjucjucjuckKckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxgaaaaaacxgaaaaaaaaaaaaaaaaaacfNcfNcaScaScaScwecwexhjjFOcwecwecwecwecwecjmaWHaWLaWZaXacjmcjmahtfonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKcjuckKcjuckKcjuckKckKckKckKcjucjuckKckKckKcjuckKckKcjuclsckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcaScfNcaScfNcwelqycxzcwecfNcaScfNcaScjmcjmcjmcjmcjmcjmaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigaPVaaaaaaahtaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjuckKcjucjucjucjuckKckKcjuckKcjucjucjucjuckKckKckKckKckKckKcjucjuckKckKcjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcaSaaaahtaaacxBcxCcxDcxEaaaahtcfNcaScfNcfNcfNcfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaamauaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjucjuckKckKcjuckKcjucjucjucjuckKckKckKckKcjuckKcjuckKckKckKcjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtaaaahtaaacxJcxKcxLcxMaaaahtaaaahtcfNcfNcfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKckKcjuckKckKckKckKckKckKckKckKckKcjuckKckKckKckKckKcjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaahtaaaahtaaacxJcxXcxYcxMaaaahtaaaahtaaacfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaafonaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKcjucjucjuckKckKckKckKckKckKcjucjuckKckKckKcjuckKcjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNaaaaaaahtaaaahtaaacxJcylcymcxMaaaahtaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPvaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKckKcjuckKckKckKckKckKckKcjuckKckKckKckKckKcjuclvckKckKcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNaaaaaaahtaaaahtaaacyycyzcyAcyBaaaahtaaaahtaaaaaaaaaaaaaaaaaacfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigaPvaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKckKckKckKcjuckKcjucjucjuckKckKckKckKcjucjucjuckKckKcjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNaaaaaaahtaaaahtaaacxJcylcymcxMaaaahtaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaPVaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjucjuckKckKcjuckKckKckKckKckKckKcjuckKckKckKckKckKcjuclvckKckKcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNaaaaaaahtaaaahtaaacyycyzcyAcyBaaaahtaaaahtaaaaaaaaaaaaaaaaaacfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcigaPVaaaaaaahtaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKckKckKckKckKcjuckKcjucjucjuckKckKckKckKcjucjucjuckKckKcjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNcfNaaaaaacjpcjpcjpcjpcjpjgrvOwcjpcjpcjpcjpcjpahtahtahtahtahtcyLcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPaQhaQiaQlaOoaQmabIabIaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKcjucjucjucjuckKckKckKcjucjuckKcjucjucjucjucjucjuckKckKcjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcyMahtahtcjpcjpcCWckWcyPcyQcjQijFcyRcySckocyTcjpcjpaaaahtaaaaaacfNcfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPclwclAclBclwclEclwclwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjuckKckKcjucjuckKckKckKckKckKcjuckKckKckKcjucjuckKckKckKcjucjucjuckKcjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacfNcfNcfNaaaaaacyUckHckHckHckHckHcjQpXcickickickickxjccyUaaaahtaaacfNcfNcfNcfNcfNaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabIcgPclwclDhQzclwxnmclNclwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjucjucjuckKcjucjuckKckKclFcjucjucjuckKckKckKckKckKckKckKckKckKcjucjucjucjucjucjuaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
|
||||
@@ -523,7 +523,7 @@
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science)
|
||||
"bC" = (
|
||||
/obj/machinery/computer/gulag_teleporter_computer{
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
|
||||
@@ -510,7 +510,7 @@
|
||||
"jP" = (/obj/machinery/conveyor_switch/oneway{dir = 8; id = "XCCQMLoad"; pixel_x = 6},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/centcom/supply)
|
||||
"jQ" = (/obj/structure/closet/secure_closet/quartermaster,/obj/machinery/airalarm{dir = 8; pixel_x = 24},/obj/effect/turf_decal/bot,/turf/open/floor/plasteel,/area/centcom/supply)
|
||||
"jR" = (/obj/machinery/newscaster/security_unit{pixel_x = -32},/obj/effect/turf_decal/stripes/line{dir = 8},/obj/machinery/light{dir = 8},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"jS" = (/obj/machinery/computer/prisoner,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"jS" = (/obj/machinery/computer/prisoner/management,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"jT" = (/obj/machinery/computer/security,/obj/effect/turf_decal/stripes/line,/obj/machinery/light{dir = 1},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"jU" = (/obj/machinery/computer/secure_data,/obj/effect/turf_decal/stripes/line,/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"jV" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/effect/turf_decal/stripes/line{dir = 4},/obj/machinery/light{dir = 4},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
@@ -724,7 +724,7 @@
|
||||
"nV" = (/obj/structure/chair{dir = 4},/obj/machinery/light{dir = 8},/obj/effect/turf_decal/tile/brown{dir = 1},/obj/effect/turf_decal/tile/brown{dir = 8},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"nW" = (/obj/machinery/vending/cola,/obj/effect/turf_decal/delivery,/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"nX" = (/obj/effect/turf_decal/tile/red,/obj/effect/turf_decal/tile/red{dir = 4},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"nY" = (/obj/machinery/computer/prisoner{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"nY" = (/obj/machinery/computer/prisoner/management{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"nZ" = (/obj/machinery/computer/security{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"oa" = (/obj/machinery/computer/secure_data{dir = 1},/obj/effect/turf_decal/stripes/line{dir = 1},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"ob" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/flora/grass/brown,/obj/machinery/door/window/brigdoor{base_state = "rightsecure"; dir = 2; icon_state = "rightsecure"; name = "Windoor"; req_access_txt = "0"},/turf/open/floor/grass/snow,/area/centcom/control)
|
||||
@@ -1193,7 +1193,7 @@
|
||||
"ys" = (/obj/machinery/light{dir = 8},/obj/effect/turf_decal/tile/green{dir = 8},/turf/open/floor/plasteel,/area/centcom/control)
|
||||
"yt" = (/obj/item/storage/box/ids{pixel_x = 3; pixel_y = 3},/obj/item/storage/box/silver_ids,/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/open/floor/plasteel/dark,/area/centcom/control)
|
||||
"yu" = (/obj/structure/table/reinforced,/obj/item/clipboard,/obj/item/folder/white,/obj/item/pen/blue,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/centcom/control)
|
||||
"yv" = (/obj/machinery/computer/prisoner{dir = 1},/obj/machinery/light,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/centcom/control)
|
||||
"yv" = (/obj/machinery/computer/prisoner/management{dir = 1},/obj/machinery/light,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/centcom/control)
|
||||
"yw" = (/obj/machinery/computer/secure_data{dir = 1},/obj/machinery/light,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/centcom/control)
|
||||
"yx" = (/obj/structure/table/reinforced,/obj/item/clipboard,/obj/item/folder/red,/obj/item/pen/red,/obj/effect/turf_decal/tile/neutral{dir = 1},/obj/effect/turf_decal/tile/neutral,/obj/effect/turf_decal/tile/neutral{dir = 4},/obj/effect/turf_decal/tile/neutral{dir = 8},/turf/open/floor/plasteel/dark,/area/centcom/control)
|
||||
"yy" = (/obj/machinery/light{dir = 4},/obj/effect/turf_decal/tile/green,/turf/open/floor/plasteel,/area/centcom/control)
|
||||
|
||||
+54823
-54759
File diff suppressed because it is too large
Load Diff
@@ -242,6 +242,18 @@
|
||||
#define PIPING_CARDINAL_AUTONORMALIZE (1<<3) //north/south east/west doesn't matter, auto normalize on build.
|
||||
|
||||
//HELPERS
|
||||
#define PIPING_LAYER_SHIFT(T, PipingLayer) \
|
||||
if(T.dir & NORTH || T.dir & SOUTH) { \
|
||||
T.pixel_x = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X;\
|
||||
} \
|
||||
if(T.dir & WEST || T.dir & EAST) { \
|
||||
T.pixel_y = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y;\
|
||||
}
|
||||
|
||||
#define PIPING_LAYER_DOUBLE_SHIFT(T, PipingLayer) \
|
||||
T.pixel_x = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X;\
|
||||
T.pixel_y = (PipingLayer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y;
|
||||
|
||||
#define THERMAL_ENERGY(gas) (gas.temperature * gas.heat_capacity())
|
||||
#define QUANTIZE(variable) (round(variable,0.0000001))/*I feel the need to document what happens here. Basically this is used to catch most rounding errors, however it's previous value made it so that
|
||||
once gases got hot enough, most procedures wouldnt occur due to the fact that the mole counts would get rounded away. Thus, we lowered it a few orders of magnititude */
|
||||
|
||||
@@ -111,11 +111,6 @@
|
||||
#define isgenital(A) (istype(A, /obj/item/organ/genital))
|
||||
|
||||
#define isborer(A) (istype(A, /mob/living/simple_animal/borer))
|
||||
#define isipcperson(A) (is_species(A, /datum/species/ipc))
|
||||
#define ismammal(A) (is_species(A, /datum/species/mammal))
|
||||
#define isavian(A) (is_species(A, /datum/species/avian))
|
||||
#define isaquatic(A) (is_species(A, /datum/species/aquatic))
|
||||
#define isxenoperson(A) (is_species(A, /datum/species/xeno))
|
||||
|
||||
#define CITADEL_MENTOR_OOC_COLOUR "#224724"
|
||||
|
||||
|
||||
@@ -5,8 +5,3 @@
|
||||
#define CLEAN_STRONG 4 // Industrial strength
|
||||
#define CLEAN_IMPRESSIVE 5 // Cleaning strong enough your granny would be proud
|
||||
#define CLEAN_GOD 6 // Cleans things spotless down to the atomic structure
|
||||
|
||||
//How strong things have to be to wipe forensic evidence...
|
||||
#define CLEAN_STRENGTH_FINGERPRINTS CLEAN_IMPRESSIVE
|
||||
#define CLEAN_STRENGTH_BLOOD CLEAN_WEAK
|
||||
#define CLEAN_STRENGTH_FIBERS CLEAN_IMPRESSIVE
|
||||
|
||||
@@ -2,11 +2,8 @@
|
||||
|
||||
#define SEND_GLOBAL_SIGNAL(sigtype, arguments...) ( SEND_SIGNAL(SSdcs, sigtype, ##arguments) )
|
||||
|
||||
//shorthand
|
||||
#define GET_COMPONENT_FROM(varname, path, target) var##path/##varname = ##target.GetComponent(##path)
|
||||
#define GET_COMPONENT(varname, path) GET_COMPONENT_FROM(varname, path, src)
|
||||
|
||||
#define COMPONENT_INCOMPATIBLE 1
|
||||
#define COMPONENT_NOTRANSFER 2
|
||||
|
||||
// How multiple components of the exact same type are handled in the same datum
|
||||
|
||||
@@ -101,4 +98,7 @@
|
||||
* The arguments are the same when the text and number values are the same and all other values have the same ref
|
||||
*/
|
||||
#define ELEMENT_BESPOKE (1 << 1)
|
||||
#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" //Called when the movable's glide size is updated: (new_glide_size)
|
||||
#define COMSIG_MOVABLE_UPDATE_GLIDE_SIZE "movable_glide_size" //Called when the movable's glide size is updated: (new_glide_size)
|
||||
|
||||
#define COMSIG_LIVING_FULLY_HEAL "living_fully_healed" //from base of /mob/living/fully_heal(): (admin_revive)
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
#define GROSS (1<<10)
|
||||
#define TOXIC (1<<11)
|
||||
#define PINEAPPLE (1<<12)
|
||||
#define BREAKFAST (1<<13)
|
||||
#define CLOTH (1<<14)
|
||||
|
||||
#define DRINK_NICE 1
|
||||
|
||||
@@ -15,6 +15,15 @@
|
||||
//misc footstep sounds
|
||||
#define FOOTSTEP_GENERIC_HEAVY "heavy"
|
||||
|
||||
#define FOOTPRINT_SHOE "shoe"
|
||||
#define FOOTPRINT_FOOT "foot"
|
||||
#define FOOTPRINT_PAW "paw"
|
||||
#define FOOTPRINT_CLAW "claw"
|
||||
#define FOOTPRINT_WHEEL "wheels"
|
||||
#define FOOTPRINT_TRAIL "trails_"
|
||||
#define FOOTPRINT_SNAKE "snake"
|
||||
#define FOOTPRINT_DRAG "drag"
|
||||
|
||||
/*
|
||||
|
||||
id = list(
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
#define IF_HAS_BLOOD_DNA(__thing) GET_COMPONENT_FROM(__FR##__thing, /datum/component/forensics, __thing); if(__FR##__thing && length(__FR##__thing.blood_DNA))
|
||||
#define IF_HAS_BLOOD_DNA_AND(__thing, __conditions...) GET_COMPONENT_FROM(__FR##__thing, /datum/component/forensics, __thing); if(__FR##__thing && length(__FR##__thing.blood_DNA) && (##__conditions))
|
||||
@@ -73,10 +73,20 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
|
||||
#define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent))
|
||||
#define iszombie(A) (is_species(A, /datum/species/zombie))
|
||||
#define ismoth(A) (is_species(A, /datum/species/moth))
|
||||
#define isinsect(A) (is_species(A, /datum/species/insect))
|
||||
#define ishumanbasic(A) (is_species(A, /datum/species/human))
|
||||
#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) )
|
||||
#define isvampire(A) (is_species(A,/datum/species/vampire))
|
||||
#define isdwarf(A) (is_species(A, /datum/species/dwarf))
|
||||
#define isdullahan(A) (is_species(A, /datum/species/dullahan))
|
||||
|
||||
// Citadel specific species
|
||||
#define isipcperson(A) (is_species(A, /datum/species/ipc))
|
||||
#define ismammal(A) (is_species(A, /datum/species/mammal))
|
||||
#define isavian(A) (is_species(A, /datum/species/avian))
|
||||
#define isaquatic(A) (is_species(A, /datum/species/aquatic))
|
||||
#define isinsect(A) (is_species(A, /datum/species/insect))
|
||||
#define isxenoperson(A) (is_species(A, /datum/species/xeno))
|
||||
#define isstartjelly(A) (is_species(A, /datum/species/jelly/roundstartslime))
|
||||
|
||||
//more carbon mobs
|
||||
#define ismonkey(A) (istype(A, /mob/living/carbon/monkey))
|
||||
@@ -193,6 +203,8 @@ GLOBAL_LIST_INIT(heavyfootmob, typecacheof(list(
|
||||
|
||||
#define iscameramob(A) (istype(A, /mob/camera))
|
||||
|
||||
#define isaicamera(A) (istype(A, /mob/camera/aiEye))
|
||||
|
||||
#define iseminence(A) (istype(A, /mob/camera/eminence))
|
||||
|
||||
//Footstep helpers
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
#define LIMBGROWER (1<<6) //Uses synthetic flesh
|
||||
#define SMELTER (1<<7) //uses various minerals
|
||||
#define AUTOYLATHE (1<<8) // CITADEL ADD
|
||||
#define NANITE_COMPILER (1<<9) //Prints nanite disks
|
||||
#define NANITE_COMPILER (1<<9) //Prints nanite disks
|
||||
#define AUTOBOTTLER (1<<10) //Uses booze, for printing
|
||||
//Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable.
|
||||
|
||||
//Modular computer/NTNet defines
|
||||
|
||||
+12
-2
@@ -147,12 +147,22 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache)
|
||||
#define BLOOD_LOSS_IN_SPREAD 20
|
||||
|
||||
//Bloody shoe blood states
|
||||
#define BLOOD_STATE_HUMAN "blood"
|
||||
#define BLOOD_STATE_XENO "xeno"
|
||||
#define BLOOD_STATE_BLOOD "blood"
|
||||
#define BLOOD_STATE_OIL "oil"
|
||||
#define BLOOD_STATE_NOT_BLOODY "no blood whatsoever"
|
||||
#define BLOOD_AMOUNT_PER_DECAL 20
|
||||
|
||||
//Blood Decal Colors
|
||||
#define BLOOD_COLOR_HUMAN "#dc0000"
|
||||
#define BLOOD_COLOR_XENO "#94a83c"
|
||||
#define BLOOD_COLOR_OIL "#301d02"
|
||||
#define BLOOD_COLOR_SYNTHETIC "#3f48aa"
|
||||
#define BLOOD_COLOR_SLIME "#00ff90"
|
||||
#define BLOOD_COLOR_LIZARD "#db004D"
|
||||
#define BLOOD_COLOR_UNIVERSAL "#db3300"
|
||||
#define BLOOD_COLOR_BUG "#a37c0f"
|
||||
|
||||
|
||||
//suit sensors: sensor_mode defines
|
||||
|
||||
#define SENSOR_OFF 0
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define BOT_NAV 15 // computing navigation
|
||||
#define BOT_WAIT_FOR_NAV 16 // waiting for nav computation
|
||||
#define BOT_NO_ROUTE 17 // no destination beacon found (or no route)
|
||||
#define BOT_TIPPED 18 // someone tipped a medibot over ;_;
|
||||
|
||||
//Bot types
|
||||
#define SEC_BOT (1<<0) // Secutritrons (Beepsky) and ED-209s
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
#define TRAIT_CURSED_BLOOD "cursed_blood" //Yo dawg I heard you like bloodborne references so I put a
|
||||
|
||||
#define TRAIT_SWIMMING "swimming" //only applied by /datum/element/swimming, for checking
|
||||
#define TRAIT_CAPTAIN_METABOLISM "captain-metabolism"
|
||||
|
||||
//non-mob traits
|
||||
#define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it
|
||||
|
||||
@@ -381,6 +381,12 @@
|
||||
i++
|
||||
return i
|
||||
|
||||
/proc/count_occurences_of_value(list/L, val, limit) //special thanks to salmonsnake
|
||||
. = 0
|
||||
for (var/i in 1 to limit)
|
||||
if (L[i] == val)
|
||||
.++
|
||||
|
||||
/proc/find_record(field, value, list/L)
|
||||
for(var/datum/data/record/R in L)
|
||||
if(R.fields[field] == value)
|
||||
|
||||
@@ -81,3 +81,21 @@ GLOBAL_VAR_INIT(cmp_field, "name")
|
||||
|
||||
/proc/cmp_advdisease_resistance_asc(datum/disease/advance/A, datum/disease/advance/B)
|
||||
return A.totalResistance() - B.totalResistance()
|
||||
|
||||
/proc/cmp_quirk_asc(datum/quirk/A, datum/quirk/B)
|
||||
var/a_sign = num2sign(initial(A.value) * -1)
|
||||
var/b_sign = num2sign(initial(B.value) * -1)
|
||||
|
||||
// Neutral traits go last
|
||||
if(a_sign == 0)
|
||||
a_sign = 2
|
||||
if(b_sign == 0)
|
||||
b_sign = 2
|
||||
|
||||
var/a_name = initial(A.name)
|
||||
var/b_name = initial(B.name)
|
||||
|
||||
if(a_sign != b_sign)
|
||||
return a_sign - b_sign
|
||||
else
|
||||
return sorttext(b_name, a_name)
|
||||
|
||||
@@ -263,6 +263,7 @@
|
||||
var/atom/A = processing_list[1]
|
||||
if(A.flags_1 & HEAR_1)
|
||||
. += A
|
||||
SEND_SIGNAL(A, COMSIG_ATOM_HEARER_IN_VIEW, processing_list, .)
|
||||
processing_list.Cut(1, 2)
|
||||
processing_list += A.contents
|
||||
|
||||
|
||||
@@ -13,7 +13,8 @@
|
||||
var/list/processing_list = list(location)
|
||||
. = list()
|
||||
var/i = 0
|
||||
while(i < length(processing_list))
|
||||
var/lim = 1
|
||||
while(i < lim)
|
||||
var/atom/thing = processing_list[++i]
|
||||
if(ignored_things[thing.type])
|
||||
continue
|
||||
@@ -21,6 +22,7 @@
|
||||
if((thing.rad_flags & RAD_PROTECT_CONTENTS) || (SEND_SIGNAL(thing, COMSIG_ATOM_RAD_PROBE) & COMPONENT_BLOCK_RADIATION))
|
||||
continue
|
||||
processing_list += thing.contents
|
||||
lim = processing_list.len
|
||||
|
||||
/proc/radiation_pulse(atom/source, intensity, range_modifier, log=FALSE, can_contaminate=TRUE)
|
||||
if(!SSradiation.can_fire)
|
||||
|
||||
@@ -761,7 +761,6 @@ Turf and target are separate in case you want to teleport some distance from a t
|
||||
loc = loc.loc
|
||||
return null
|
||||
|
||||
|
||||
//For objects that should embed, but make no sense being is_sharp or is_pointed()
|
||||
//e.g: rods
|
||||
GLOBAL_LIST_INIT(can_embed_types, typecacheof(list(
|
||||
@@ -1565,3 +1564,11 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
|
||||
for(var/i in L)
|
||||
if(condition.Invoke(i))
|
||||
. |= i
|
||||
|
||||
/proc/num2sign(numeric)
|
||||
if(numeric > 0)
|
||||
return 1
|
||||
else if(numeric < 0)
|
||||
return -1
|
||||
else
|
||||
return 0
|
||||
|
||||
@@ -58,3 +58,63 @@ GLOBAL_LIST_EMPTY(latejoiners) //CIT CHANGE - All latejoining people, for traito
|
||||
for(var/i in GLOB.mob_list)
|
||||
var/mob/M = i
|
||||
M.update_config_movespeed()
|
||||
|
||||
GLOBAL_LIST_INIT(noodle_taurs, list(
|
||||
"Naga",
|
||||
"Tentacle"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(paw_taurs, list(
|
||||
"Fox",
|
||||
"Wolf",
|
||||
"Otie",
|
||||
"Drake",
|
||||
"Lab",
|
||||
"Shepherd",
|
||||
"Husky",
|
||||
"Eevee",
|
||||
"Panther",
|
||||
"Horse",
|
||||
"Cow",
|
||||
"Tiger"
|
||||
))
|
||||
|
||||
//blood types
|
||||
GLOBAL_LIST_INIT(regular_bloods,list(
|
||||
"O-",
|
||||
"O+",
|
||||
"A-",
|
||||
"A+",
|
||||
"B-",
|
||||
"B+",
|
||||
"AB-",
|
||||
"AB+"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(all_types_bloods,list(
|
||||
"O-",
|
||||
"O+",
|
||||
"A-",
|
||||
"A+",
|
||||
"B-",
|
||||
"B+",
|
||||
"AB-",
|
||||
"AB+",
|
||||
"SY",
|
||||
"X*",
|
||||
"HF",
|
||||
"L",
|
||||
"U",
|
||||
"GEL",
|
||||
"BUG"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(blood_types, list(
|
||||
"blood",
|
||||
"jellyblood"
|
||||
))
|
||||
|
||||
GLOBAL_LIST_INIT(blood_id_types, list(
|
||||
"blood" = /datum/reagent/blood,
|
||||
"jellyblood" = /datum/reagent/blood/jellyblood
|
||||
))
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
return TRUE
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if(user.a_intent == INTENT_HARM && stat == DEAD && (butcher_results || guaranteed_butcher_results)) //can we butcher it?
|
||||
GET_COMPONENT_FROM(butchering, /datum/component/butchering, I)
|
||||
var/datum/component/butchering/butchering = I.GetComponent(/datum/component/butchering)
|
||||
if(butchering && butchering.butchering_enabled)
|
||||
to_chat(user, "<span class='notice'>You begin to butcher [src]...</span>")
|
||||
playsound(loc, butchering.butcher_sound, 50, TRUE, -1)
|
||||
|
||||
@@ -6,7 +6,17 @@ SUBSYSTEM_DEF(assets)
|
||||
var/list/preload = list()
|
||||
|
||||
/datum/controller/subsystem/assets/Initialize(timeofday)
|
||||
for(var/type in typesof(/datum/asset))
|
||||
|
||||
var/list/priority_assets = list(
|
||||
/datum/asset/simple/oui_theme_nano,
|
||||
/datum/asset/simple/goonchat
|
||||
)
|
||||
|
||||
for(var/type in priority_assets)
|
||||
var/datum/asset/A = new type()
|
||||
A.register()
|
||||
|
||||
for(var/type in typesof(/datum/asset) - (priority_assets | list(/datum/asset, /datum/asset/simple)))
|
||||
var/datum/asset/A = type
|
||||
if (type != initial(A._abstract))
|
||||
get_asset_datum(type)
|
||||
|
||||
@@ -65,6 +65,7 @@ SUBSYSTEM_DEF(jukeboxes)
|
||||
|
||||
/datum/controller/subsystem/jukeboxes/Initialize()
|
||||
var/list/tracks = flist("config/jukebox_music/sounds/")
|
||||
var/songID = 1
|
||||
for(var/S in tracks)
|
||||
var/datum/track/T = new()
|
||||
T.song_path = file("config/jukebox_music/sounds/[S]")
|
||||
@@ -72,8 +73,9 @@ SUBSYSTEM_DEF(jukeboxes)
|
||||
T.song_name = L[1]
|
||||
T.song_length = text2num(L[2])
|
||||
T.song_beat = text2num(L[3])
|
||||
T.song_associated_id = L[4]
|
||||
T.song_associated_id = songID
|
||||
songs |= T
|
||||
songID++
|
||||
for(var/i in CHANNEL_JUKEBOX_START to CHANNEL_JUKEBOX)
|
||||
freejukeboxchannels |= i
|
||||
return ..()
|
||||
@@ -83,15 +85,15 @@ SUBSYSTEM_DEF(jukeboxes)
|
||||
return
|
||||
for(var/list/jukeinfo in activejukeboxes)
|
||||
if(!jukeinfo.len)
|
||||
EXCEPTION("Active jukebox without any associated metadata.")
|
||||
stack_trace("Active jukebox without any associated metadata.")
|
||||
continue
|
||||
var/datum/track/juketrack = jukeinfo[1]
|
||||
if(!istype(juketrack))
|
||||
EXCEPTION("Invalid jukebox track datum.")
|
||||
stack_trace("Invalid jukebox track datum.")
|
||||
continue
|
||||
var/obj/jukebox = jukeinfo[3]
|
||||
if(!istype(jukebox))
|
||||
EXCEPTION("Nonexistant or invalid object associated with jukebox.")
|
||||
stack_trace("Nonexistant or invalid object associated with jukebox.")
|
||||
continue
|
||||
var/sound/song_played = sound(juketrack.song_path)
|
||||
var/area/currentarea = get_area(jukebox)
|
||||
|
||||
@@ -12,14 +12,20 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
|
||||
var/list/quirk_names_by_path = list()
|
||||
var/list/quirk_points = list() //Assoc. list of quirk names and their "point cost"; positive numbers are good traits, and negative ones are bad
|
||||
var/list/quirk_objects = list() //A list of all quirk objects in the game, since some may process
|
||||
var/list/quirk_blacklist = list() //A list a list of quirks that can not be used with each other. Format: list(quirk1,quirk2),list(quirk3,quirk4)
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/Initialize(timeofday)
|
||||
if(!quirks.len)
|
||||
SetupQuirks()
|
||||
|
||||
quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic","Hypersensitive"),list("Ageusia","Vegetarian","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"),list("Alcohol Tolerance","Light Drinker"),list("Prosthetic Limb (Left Arm)","Prosthetic Limb (Right Arm)","Prosthetic Limb (Left Leg)","Prosthetic Limb (Right Leg)","Prosthetic Limb"),list("Social Anxiety","Mute"))
|
||||
return ..()
|
||||
|
||||
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
|
||||
for(var/V in subtypesof(/datum/quirk))
|
||||
// Sort by Positive, Negative, Neutral; and then by name
|
||||
var/list/quirk_list = sortList(subtypesof(/datum/quirk), /proc/cmp_quirk_asc)
|
||||
|
||||
for(var/V in quirk_list)
|
||||
var/datum/quirk/T = V
|
||||
quirks[initial(T.name)] = T
|
||||
quirk_points[initial(T.name)] = initial(T.value)
|
||||
|
||||
+2
-1
@@ -61,7 +61,8 @@
|
||||
/datum/beam/proc/recalculate_in(time)
|
||||
if(timing_id)
|
||||
deltimer(timing_id)
|
||||
timing_id = addtimer(CALLBACK(src, .proc/recalculate), time, TIMER_STOPPABLE)
|
||||
if(!finished)
|
||||
timing_id = addtimer(CALLBACK(src, .proc/recalculate), time, TIMER_STOPPABLE)
|
||||
|
||||
/datum/beam/proc/after_calculate()
|
||||
if((sleep_time == null) || finished) //Does not automatically recalculate.
|
||||
|
||||
@@ -2,6 +2,10 @@
|
||||
var/dupe_mode = COMPONENT_DUPE_HIGHLANDER
|
||||
var/dupe_type
|
||||
var/datum/parent
|
||||
//only set to true if you are able to properly transfer this component
|
||||
//At a minimum RegisterWithParent and UnregisterFromParent should be used
|
||||
//Make sure you also implement PostTransfer for any post transfer handling
|
||||
var/can_transfer = FALSE
|
||||
|
||||
/datum/component/New(datum/P, ...)
|
||||
parent = P
|
||||
@@ -154,7 +158,7 @@
|
||||
return
|
||||
|
||||
/datum/component/proc/PostTransfer()
|
||||
return
|
||||
return COMPONENT_INCOMPATIBLE //Do not support transfer by default as you must properly support it
|
||||
|
||||
/datum/component/proc/_GetInverseTypeList(our_type = type)
|
||||
//we can do this one simple trick
|
||||
@@ -285,10 +289,12 @@
|
||||
if(target.parent)
|
||||
target.RemoveComponent()
|
||||
target.parent = src
|
||||
if(target.PostTransfer() == COMPONENT_INCOMPATIBLE)
|
||||
var/c_type = target.type
|
||||
qdel(target)
|
||||
CRASH("Incompatible [c_type] transfer attempt to a [type]!")
|
||||
var/result = target.PostTransfer()
|
||||
switch(result)
|
||||
if(COMPONENT_INCOMPATIBLE)
|
||||
var/c_type = target.type
|
||||
qdel(target)
|
||||
CRASH("Incompatible [c_type] transfer attempt to a [type]!")
|
||||
if(target == AddComponent(target))
|
||||
target._JoinParent()
|
||||
|
||||
@@ -298,10 +304,13 @@
|
||||
return
|
||||
var/comps = dc[/datum/component]
|
||||
if(islist(comps))
|
||||
for(var/I in comps)
|
||||
target.TakeComponent(I)
|
||||
for(var/datum/component/I in comps)
|
||||
if(I.can_transfer)
|
||||
target.TakeComponent(I)
|
||||
else
|
||||
target.TakeComponent(comps)
|
||||
var/datum/component/C = comps
|
||||
if(C.can_transfer)
|
||||
target.TakeComponent(comps)
|
||||
|
||||
/datum/component/ui_host()
|
||||
return parent
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/datum/component/decal
|
||||
dupe_mode = COMPONENT_DUPE_ALLOWED
|
||||
|
||||
can_transfer = TRUE
|
||||
var/cleanable
|
||||
var/description
|
||||
var/mutable_appearance/pic
|
||||
|
||||
@@ -7,33 +7,7 @@
|
||||
. = ..()
|
||||
RegisterSignal(parent, COMSIG_ATOM_GET_EXAMINE_NAME, .proc/get_examine_name)
|
||||
|
||||
/datum/component/decal/blood/generate_appearance(_icon, _icon_state, _dir, _layer, _color)
|
||||
var/obj/item/I = parent
|
||||
if(!_icon)
|
||||
_icon = 'icons/effects/blood.dmi'
|
||||
if(!_icon_state)
|
||||
_icon_state = "itemblood"
|
||||
var/icon = initial(I.icon)
|
||||
var/icon_state = initial(I.icon_state)
|
||||
if(!icon || !icon_state)
|
||||
// It's something which takes on the look of other items, probably
|
||||
icon = I.icon
|
||||
icon_state = I.icon_state
|
||||
var/static/list/blood_splatter_appearances = list()
|
||||
//try to find a pre-processed blood-splatter. otherwise, make a new one
|
||||
var/index = "[REF(icon)]-[icon_state]"
|
||||
pic = blood_splatter_appearances[index]
|
||||
|
||||
if(!pic)
|
||||
var/icon/blood_splatter_icon = icon(initial(I.icon), initial(I.icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object
|
||||
blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
blood_splatter_icon.Blend(icon(_icon, _icon_state), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant
|
||||
pic = mutable_appearance(blood_splatter_icon, initial(I.icon_state))
|
||||
blood_splatter_appearances[index] = pic
|
||||
return TRUE
|
||||
|
||||
/datum/component/decal/blood/proc/get_examine_name(datum/source, mob/user, list/override)
|
||||
var/atom/A = parent
|
||||
override[EXAMINE_POSITION_ARTICLE] = A.gender == PLURAL? "some" : "a"
|
||||
override[EXAMINE_POSITION_BEFORE] = " blood-stained "
|
||||
|
||||
return COMPONENT_EXNAME_CHANGED
|
||||
|
||||
@@ -1,159 +0,0 @@
|
||||
/datum/component/forensics
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE
|
||||
var/list/fingerprints //assoc print = print
|
||||
var/list/hiddenprints //assoc ckey = realname/gloves/ckey
|
||||
var/list/blood_DNA //assoc dna = bloodtype
|
||||
var/list/fibers //assoc print = print
|
||||
|
||||
/datum/component/forensics/InheritComponent(datum/component/forensics/F, original) //Use of | and |= being different here is INTENTIONAL.
|
||||
fingerprints = fingerprints | F.fingerprints
|
||||
hiddenprints = hiddenprints | F.hiddenprints
|
||||
blood_DNA = blood_DNA | F.blood_DNA
|
||||
fibers = fibers | F.fibers
|
||||
check_blood()
|
||||
return ..()
|
||||
|
||||
/datum/component/forensics/Initialize(new_fingerprints, new_hiddenprints, new_blood_DNA, new_fibers)
|
||||
if(!isatom(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
fingerprints = new_fingerprints
|
||||
hiddenprints = new_hiddenprints
|
||||
blood_DNA = new_blood_DNA
|
||||
fibers = new_fibers
|
||||
check_blood()
|
||||
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean_act)
|
||||
|
||||
/datum/component/forensics/proc/wipe_fingerprints()
|
||||
fingerprints = null
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/wipe_hiddenprints()
|
||||
return //no.
|
||||
|
||||
/datum/component/forensics/proc/wipe_blood_DNA()
|
||||
blood_DNA = null
|
||||
if(isitem(parent))
|
||||
qdel(parent.GetComponent(/datum/component/decal/blood))
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/wipe_fibers()
|
||||
fibers = null
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/clean_act(datum/source, strength)
|
||||
if(strength >= CLEAN_STRENGTH_FINGERPRINTS)
|
||||
wipe_fingerprints()
|
||||
if(strength >= CLEAN_STRENGTH_BLOOD)
|
||||
wipe_blood_DNA()
|
||||
if(strength >= CLEAN_STRENGTH_FIBERS)
|
||||
wipe_fibers()
|
||||
|
||||
/datum/component/forensics/proc/add_fingerprint_list(list/_fingerprints) //list(text)
|
||||
if(!length(_fingerprints))
|
||||
return
|
||||
LAZYINITLIST(fingerprints)
|
||||
for(var/i in _fingerprints) //We use an associative list, make sure we don't just merge a non-associative list into ours.
|
||||
fingerprints[i] = i
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_fingerprint(mob/living/M, ignoregloves = FALSE)
|
||||
if(!M)
|
||||
return
|
||||
add_hiddenprint(M)
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
add_fibers(H)
|
||||
if(H.gloves) //Check if the gloves (if any) hide fingerprints
|
||||
var/obj/item/clothing/gloves/G = H.gloves
|
||||
if(G.transfer_prints)
|
||||
ignoregloves = TRUE
|
||||
if(!ignoregloves)
|
||||
H.gloves.add_fingerprint(H, TRUE) //ignoregloves = 1 to avoid infinite loop.
|
||||
return
|
||||
var/full_print = md5(H.dna.uni_identity)
|
||||
LAZYSET(fingerprints, full_print, full_print)
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_fiber_list(list/_fibertext) //list(text)
|
||||
if(!length(_fibertext))
|
||||
return
|
||||
LAZYINITLIST(fibers)
|
||||
for(var/i in _fibertext) //We use an associative list, make sure we don't just merge a non-associative list into ours.
|
||||
fibers[i] = i
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_fibers(mob/living/carbon/human/M)
|
||||
var/fibertext
|
||||
var/item_multiplier = isitem(src)?1.2:1
|
||||
if(M.wear_suit)
|
||||
fibertext = "Material from \a [M.wear_suit]."
|
||||
if(prob(10*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
if(!(M.wear_suit.body_parts_covered & CHEST))
|
||||
if(M.w_uniform)
|
||||
fibertext = "Fibers from \a [M.w_uniform]."
|
||||
if(prob(12*item_multiplier) && !LAZYACCESS(fibers, fibertext)) //Wearing a suit means less of the uniform exposed.
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
if(!(M.wear_suit.body_parts_covered & HANDS))
|
||||
if(M.gloves)
|
||||
fibertext = "Material from a pair of [M.gloves.name]."
|
||||
if(prob(20*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
else if(M.w_uniform)
|
||||
fibertext = "Fibers from \a [M.w_uniform]."
|
||||
if(prob(15*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
// "Added fibertext: [fibertext]"
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
if(M.gloves)
|
||||
fibertext = "Material from a pair of [M.gloves.name]."
|
||||
if(prob(20*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
else if(M.gloves)
|
||||
fibertext = "Material from a pair of [M.gloves.name]."
|
||||
if(prob(20*item_multiplier) && !LAZYACCESS(fibers, fibertext))
|
||||
LAZYSET(fibers, fibertext, fibertext)
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_hiddenprint_list(list/_hiddenprints) //list(ckey = text)
|
||||
if(!length(_hiddenprints))
|
||||
return
|
||||
LAZYINITLIST(hiddenprints)
|
||||
for(var/i in _hiddenprints) //We use an associative list, make sure we don't just merge a non-associative list into ours.
|
||||
hiddenprints[i] = _hiddenprints[i]
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_hiddenprint(mob/living/M)
|
||||
if(!M || !M.key)
|
||||
return
|
||||
var/hasgloves = ""
|
||||
if(ishuman(M))
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(H.gloves)
|
||||
hasgloves = "(gloves)"
|
||||
var/current_time = TIME_STAMP("hh:mm:ss", FALSE)
|
||||
if(!LAZYACCESS(hiddenprints, M.key))
|
||||
LAZYSET(hiddenprints, M.key, "First: [M.real_name]\[[current_time]\][hasgloves]. Ckey: [M.ckey]")
|
||||
else
|
||||
var/laststamppos = findtext(LAZYACCESS(hiddenprints, M.key), " Last: ")
|
||||
if(laststamppos)
|
||||
LAZYSET(hiddenprints, M.key, copytext(hiddenprints[M.key], 1, laststamppos))
|
||||
hiddenprints[M.key] += " Last: [M.real_name]\[[current_time]\][hasgloves]. Ckey: [M.ckey]" //made sure to be existing by if(!LAZYACCESS);else
|
||||
var/atom/A = parent
|
||||
A.fingerprintslast = M.ckey
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/add_blood_DNA(list/dna) //list(dna_enzymes = type)
|
||||
if(!length(dna))
|
||||
return
|
||||
LAZYINITLIST(blood_DNA)
|
||||
for(var/i in dna)
|
||||
blood_DNA[i] = dna[i]
|
||||
check_blood()
|
||||
return TRUE
|
||||
|
||||
/datum/component/forensics/proc/check_blood()
|
||||
if(!isitem(parent))
|
||||
return
|
||||
if(!length(blood_DNA))
|
||||
return
|
||||
parent.LoadComponent(/datum/component/decal/blood)
|
||||
@@ -6,21 +6,28 @@
|
||||
|
||||
/datum/component/infective/Initialize(list/datum/disease/_diseases, expire_in)
|
||||
if(islist(_diseases))
|
||||
diseases = diseases
|
||||
diseases = _diseases
|
||||
else
|
||||
diseases = list(_diseases)
|
||||
if(expire_in)
|
||||
expire_time = world.time + expire_in
|
||||
QDEL_IN(src, expire_in)
|
||||
|
||||
if(!ismovableatom(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean)
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_BUCKLE, .proc/try_infect_buckle)
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_BUMP, .proc/try_infect_collide)
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/try_infect_crossed)
|
||||
RegisterSignal(parent, COMSIG_ITEM_ATTACK_ZONE, .proc/try_infect_attack_zone)
|
||||
RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/try_infect_attack)
|
||||
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/try_infect_equipped)
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_IMPACT_ZONE, .proc/try_infect_impact_zone)
|
||||
RegisterSignal(parent, COMSIG_FOOD_EATEN, .proc/try_infect_eat)
|
||||
RegisterSignal(parent, COMSIG_COMPONENT_CLEAN_ACT, .proc/clean)
|
||||
if(isitem(parent))
|
||||
RegisterSignal(parent, COMSIG_ITEM_ATTACK_ZONE, .proc/try_infect_attack_zone)
|
||||
RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/try_infect_attack)
|
||||
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/try_infect_equipped)
|
||||
if(istype(parent, /obj/item/reagent_containers/food/snacks))
|
||||
RegisterSignal(parent, COMSIG_FOOD_EATEN, .proc/try_infect_eat)
|
||||
else if(istype(parent, /obj/effect/decal/cleanable/blood/gibs))
|
||||
RegisterSignal(parent, COMSIG_GIBS_STREAK, .proc/try_infect_streak)
|
||||
|
||||
/datum/component/infective/proc/try_infect_eat(datum/source, mob/living/eater, mob/living/feeder)
|
||||
for(var/V in diseases)
|
||||
@@ -73,6 +80,9 @@
|
||||
if(isliving(M))
|
||||
try_infect(M, BODY_ZONE_PRECISE_L_FOOT)
|
||||
|
||||
/datum/component/infective/proc/try_infect_streak(datum/source, list/directions, list/output_diseases)
|
||||
output_diseases |= diseases
|
||||
|
||||
/datum/component/infective/proc/try_infect(mob/living/L, target_zone)
|
||||
for(var/V in diseases)
|
||||
L.ContactContractDisease(V, target_zone)
|
||||
|
||||
@@ -237,6 +237,3 @@
|
||||
LOCKON_RANGING_BREAK_CHECK
|
||||
cd++
|
||||
CHECK_TICK
|
||||
|
||||
/datum/component/lockon_aiming/PostTransfer(datum/new_parent)
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
/datum/component/mirage_border
|
||||
can_transfer = TRUE
|
||||
var/obj/effect/abstract/mirage_holder/holder
|
||||
|
||||
/datum/component/mirage_border/Initialize(turf/target, direction, range=world.view)
|
||||
|
||||
@@ -91,8 +91,8 @@
|
||||
mood += event.mood_change
|
||||
if(!event.hidden)
|
||||
shown_mood += event.mood_change
|
||||
mood *= mood_modifier
|
||||
shown_mood *= mood_modifier
|
||||
mood *= mood_modifier
|
||||
shown_mood *= mood_modifier
|
||||
|
||||
switch(mood)
|
||||
if(-INFINITY to MOOD_LEVEL_SAD4)
|
||||
@@ -127,6 +127,9 @@
|
||||
screen_obj.icon_state = "mood[mood_level]"
|
||||
|
||||
/datum/component/mood/process() //Called on SSmood process
|
||||
if(QDELETED(parent)) // workaround to an obnoxious sneaky periodical runtime.
|
||||
qdel(src)
|
||||
return
|
||||
var/mob/living/owner = parent
|
||||
|
||||
switch(mood_level)
|
||||
@@ -284,7 +287,7 @@
|
||||
RegisterSignal(screen_obj, COMSIG_CLICK, .proc/hud_click)
|
||||
|
||||
/datum/component/mood/proc/unmodify_hud(datum/source)
|
||||
if(!screen_obj)
|
||||
if(!screen_obj || !parent)
|
||||
return
|
||||
var/mob/living/owner = parent
|
||||
var/datum/hud/hud = owner.hud_used
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
return
|
||||
|
||||
/datum/proc/ntnet_send(datum/netdata/data, netid)
|
||||
GET_COMPONENT(NIC, /datum/component/ntnet_interface)
|
||||
var/datum/component/ntnet_interface/NIC = GetComponent(/datum/component/ntnet_interface)
|
||||
if(!NIC)
|
||||
return FALSE
|
||||
return NIC.__network_send(data, netid)
|
||||
|
||||
@@ -34,12 +34,13 @@
|
||||
var/atom/movable/master = parent
|
||||
master.add_filter("rad_glow", 2, list("type" = "outline", "color" = "#39ff1430", "size" = 2))
|
||||
addtimer(CALLBACK(src, .proc/glow_loop, master), rand(1,19))//Things should look uneven
|
||||
|
||||
START_PROCESSING(SSradiation, src)
|
||||
|
||||
/datum/component/radioactive/Destroy()
|
||||
STOP_PROCESSING(SSradiation, src)
|
||||
var/atom/movable/master = parent
|
||||
master.remove_filter("rad_glow")
|
||||
STOP_PROCESSING(SSradiation, src)
|
||||
return ..()
|
||||
|
||||
/datum/component/radioactive/process()
|
||||
@@ -60,7 +61,7 @@
|
||||
animate(filter, alpha = 110, time = 15, loop = -1)
|
||||
animate(alpha = 40, time = 25)
|
||||
|
||||
/datum/component/radioactive/InheritComponent(datum/component/C, i_am_original, _strength, _source, _half_life, _can_contaminate)
|
||||
/datum/component/radioactive/InheritComponent(datum/component/C, i_am_original, list/arguments)
|
||||
if(!i_am_original)
|
||||
return
|
||||
if(!hl3_release_date) // Permanently radioactive things don't get to grow stronger
|
||||
@@ -69,7 +70,7 @@
|
||||
var/datum/component/radioactive/other = C
|
||||
strength = max(strength, other.strength)
|
||||
else
|
||||
strength = max(strength, _strength)
|
||||
strength = max(strength, arguments[1])
|
||||
|
||||
/datum/component/radioactive/proc/rad_examine(datum/source, mob/user, list/examine_list)
|
||||
var/atom/master = parent
|
||||
|
||||
@@ -44,19 +44,21 @@
|
||||
if(src.rotation_flags & ROTATION_CLOCKWISE)
|
||||
default_rotation_direction = ROTATION_CLOCKWISE
|
||||
|
||||
if(src.rotation_flags & ROTATION_ALTCLICK)
|
||||
/datum/component/simple_rotation/proc/add_signals()
|
||||
if(rotation_flags & ROTATION_ALTCLICK)
|
||||
RegisterSignal(parent, COMSIG_CLICK_ALT, .proc/HandRot)
|
||||
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/ExamineMessage)
|
||||
if(src.rotation_flags & ROTATION_WRENCH)
|
||||
if(rotation_flags & ROTATION_WRENCH)
|
||||
RegisterSignal(parent, COMSIG_PARENT_ATTACKBY, .proc/WrenchRot)
|
||||
|
||||
if(src.rotation_flags & ROTATION_VERBS)
|
||||
/datum/component/simple_rotation/proc/add_verbs()
|
||||
if(rotation_flags & ROTATION_VERBS)
|
||||
var/atom/movable/AM = parent
|
||||
if(src.rotation_flags & ROTATION_FLIP)
|
||||
if(rotation_flags & ROTATION_FLIP)
|
||||
AM.verbs += /atom/movable/proc/simple_rotate_flip
|
||||
if(src.rotation_flags & ROTATION_CLOCKWISE)
|
||||
if(rotation_flags & ROTATION_CLOCKWISE)
|
||||
AM.verbs += /atom/movable/proc/simple_rotate_clockwise
|
||||
if(src.rotation_flags & ROTATION_COUNTERCLOCKWISE)
|
||||
if(rotation_flags & ROTATION_COUNTERCLOCKWISE)
|
||||
AM.verbs += /atom/movable/proc/simple_rotate_counterclockwise
|
||||
|
||||
/datum/component/simple_rotation/proc/remove_verbs()
|
||||
@@ -66,11 +68,30 @@
|
||||
AM.verbs -= /atom/movable/proc/simple_rotate_clockwise
|
||||
AM.verbs -= /atom/movable/proc/simple_rotate_counterclockwise
|
||||
|
||||
/datum/component/simple_rotation/Destroy()
|
||||
/datum/component/simple_rotation/proc/remove_signals()
|
||||
UnregisterSignal(parent, list(COMSIG_CLICK_ALT, COMSIG_PARENT_EXAMINE, COMSIG_PARENT_ATTACKBY))
|
||||
|
||||
/datum/component/simple_rotation/RegisterWithParent()
|
||||
add_verbs()
|
||||
add_signals()
|
||||
. = ..()
|
||||
|
||||
/datum/component/simple_rotation/PostTransfer()
|
||||
//Because of the callbacks which we don't track cleanly we can't transfer this
|
||||
//item cleanly, better to let the new of the new item create a new rotation datum
|
||||
//instead (there's no real state worth transferring)
|
||||
return COMPONENT_NOTRANSFER
|
||||
|
||||
/datum/component/simple_rotation/UnregisterFromParent()
|
||||
remove_verbs()
|
||||
remove_signals()
|
||||
. = ..()
|
||||
|
||||
/datum/component/simple_rotation/Destroy()
|
||||
QDEL_NULL(can_user_rotate)
|
||||
QDEL_NULL(can_be_rotated)
|
||||
QDEL_NULL(after_rotation)
|
||||
//Signals + verbs removed via UnRegister
|
||||
. = ..()
|
||||
|
||||
/datum/component/simple_rotation/RemoveComponent()
|
||||
@@ -122,7 +143,7 @@
|
||||
set name = "Rotate Clockwise"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
GET_COMPONENT(rotcomp,/datum/component/simple_rotation)
|
||||
var/datum/component/simple_rotation/rotcomp = GetComponent(/datum/component/simple_rotation)
|
||||
if(rotcomp)
|
||||
rotcomp.HandRot(usr,ROTATION_CLOCKWISE)
|
||||
|
||||
@@ -130,7 +151,7 @@
|
||||
set name = "Rotate Counter-Clockwise"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
GET_COMPONENT(rotcomp,/datum/component/simple_rotation)
|
||||
var/datum/component/simple_rotation/rotcomp = GetComponent(/datum/component/simple_rotation)
|
||||
if(rotcomp)
|
||||
rotcomp.HandRot(usr,ROTATION_COUNTERCLOCKWISE)
|
||||
|
||||
@@ -138,6 +159,6 @@
|
||||
set name = "Flip"
|
||||
set category = "Object"
|
||||
set src in oview(1)
|
||||
GET_COMPONENT(rotcomp,/datum/component/simple_rotation)
|
||||
var/datum/component/simple_rotation/rotcomp = GetComponent(/datum/component/simple_rotation)
|
||||
if(rotcomp)
|
||||
rotcomp.HandRot(usr,ROTATION_FLIP)
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
/datum/component/sizzle
|
||||
var/mutable_appearance/sizzling
|
||||
var/sizzlealpha = 0
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
|
||||
|
||||
/datum/component/sizzle/Initialize()
|
||||
if(!isatom(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
setup_sizzle()
|
||||
|
||||
/datum/component/sizzle/InheritComponent(datum/component/C, i_am_original)
|
||||
var/atom/food = parent
|
||||
sizzlealpha += 5
|
||||
sizzling.alpha = sizzlealpha
|
||||
food.cut_overlay(sizzling)
|
||||
food.add_overlay(sizzling)
|
||||
|
||||
/datum/component/sizzle/proc/setup_sizzle()
|
||||
var/atom/food = parent
|
||||
var/icon/grill_marks = icon(initial(food.icon), initial(food.icon_state)) //we only want to apply grill marks to the initial icon_state for each object
|
||||
grill_marks.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
grill_marks.Blend(icon('icons/obj/kitchen.dmi', "grillmarks"), ICON_MULTIPLY) //adds grill marks and the remaining white areas become transparent
|
||||
sizzling = new(grill_marks)
|
||||
sizzling.alpha = sizzlealpha
|
||||
food.add_overlay(sizzling)
|
||||
@@ -4,6 +4,7 @@
|
||||
// /mob/living/Move() in /modules/mob/living/living.dm - hiding storage boxes on mob movement
|
||||
|
||||
/datum/component/storage/concrete
|
||||
can_transfer = TRUE
|
||||
var/drop_all_on_deconstruct = TRUE
|
||||
var/drop_all_on_destroy = FALSE
|
||||
var/drop_all_on_break = FALSE
|
||||
|
||||
@@ -587,7 +587,7 @@
|
||||
return FALSE
|
||||
if(isitem(host))
|
||||
var/obj/item/IP = host
|
||||
GET_COMPONENT_FROM(STR_I, /datum/component/storage, I)
|
||||
var/datum/component/storage/STR_I = I.GetComponent(/datum/component/storage)
|
||||
if((I.w_class >= IP.w_class) && STR_I && !allow_big_nesting)
|
||||
if(!stop_messages)
|
||||
to_chat(M, "<span class='warning'>[IP] cannot hold [I] as it's a storage item of the same size!</span>")
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
RegisterSignal(parent, COMSIG_MOVABLE_UNCROSSED, .proc/leave_swarm)
|
||||
|
||||
/datum/component/swarming/proc/join_swarm(datum/source, atom/movable/AM)
|
||||
GET_COMPONENT_FROM(other_swarm, /datum/component/swarming, AM)
|
||||
var/datum/component/swarming/other_swarm = AM.GetComponent(/datum/component/swarming)
|
||||
if(!other_swarm)
|
||||
return
|
||||
swarm()
|
||||
@@ -21,7 +21,7 @@
|
||||
other_swarm.swarm_members |= src
|
||||
|
||||
/datum/component/swarming/proc/leave_swarm(datum/source, atom/movable/AM)
|
||||
GET_COMPONENT_FROM(other_swarm, /datum/component/swarming, AM)
|
||||
var/datum/component/swarming/other_swarm = AM.GetComponent(/datum/component/swarming)
|
||||
if(!other_swarm || !(other_swarm in swarm_members))
|
||||
return
|
||||
swarm_members -= other_swarm
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
/datum/component/wet_floor
|
||||
dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
|
||||
can_transfer = TRUE
|
||||
var/highest_strength = TURF_DRY
|
||||
var/lube_flags = NONE //why do we have this?
|
||||
var/list/time_left_list //In deciseconds.
|
||||
@@ -26,14 +27,19 @@
|
||||
if(!isopenturf(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
add_wet(strength, duration_minimum, duration_add, duration_maximum)
|
||||
RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet)
|
||||
RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry)
|
||||
permanent = _permanent
|
||||
if(!permanent)
|
||||
START_PROCESSING(SSwet_floors, src)
|
||||
addtimer(CALLBACK(src, .proc/gc, TRUE), 1) //GC after initialization.
|
||||
last_process = world.time
|
||||
|
||||
/datum/component/wet_floor/RegisterWithParent()
|
||||
RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet)
|
||||
RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry)
|
||||
|
||||
/datum/component/wet_floor/UnregisterFromParent()
|
||||
UnregisterSignal(parent, list(COMSIG_TURF_IS_WET, COMSIG_TURF_MAKE_DRY))
|
||||
|
||||
/datum/component/wet_floor/Destroy()
|
||||
STOP_PROCESSING(SSwet_floors, src)
|
||||
var/turf/T = parent
|
||||
@@ -138,12 +144,19 @@
|
||||
/datum/component/wet_floor/PreTransfer()
|
||||
var/turf/O = parent
|
||||
O.cut_overlay(current_overlay)
|
||||
//That turf is no longer slippery, we're out of here
|
||||
//Slippery components don't transfer due to callbacks
|
||||
qdel(O.GetComponent(/datum/component/slippery))
|
||||
|
||||
/datum/component/wet_floor/PostTransfer()
|
||||
if(!isopenturf(parent))
|
||||
return COMPONENT_INCOMPATIBLE
|
||||
var/turf/T = parent
|
||||
T.add_overlay(current_overlay)
|
||||
//Make sure to add/update any slippery component on the new turf (update_flags calls LoadComponent)
|
||||
update_flags()
|
||||
|
||||
//NB it's possible we get deleted after this, due to inherit
|
||||
|
||||
/datum/component/wet_floor/proc/add_wet(type, duration_minimum = 0, duration_add = 0, duration_maximum = MAXIMUM_WET_TIME, _permanent = FALSE)
|
||||
var/static/list/allowed_types = list(TURF_WET_WATER, TURF_WET_LUBE, TURF_WET_ICE, TURF_WET_PERMAFROST)
|
||||
|
||||
@@ -15,24 +15,34 @@
|
||||
for(var/A in T)
|
||||
if(is_cleanable(A))
|
||||
qdel(A)
|
||||
else if(istype(A, /obj/item))
|
||||
var/obj/item/I = A
|
||||
SEND_SIGNAL(I, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
if(ismob(I.loc))
|
||||
var/mob/M = I.loc
|
||||
else if(isitem(A))
|
||||
var/obj/item/cleaned_item = A
|
||||
SEND_SIGNAL(cleaned_item, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_item.clean_blood()
|
||||
if(ismob(cleaned_item.loc))
|
||||
var/mob/M = cleaned_item.loc
|
||||
M.regenerate_icons()
|
||||
else if(ishuman(A))
|
||||
var/mob/living/carbon/human/cleaned_human = A
|
||||
if(cleaned_human.lying)
|
||||
if(cleaned_human.head)
|
||||
SEND_SIGNAL(cleaned_human.head, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.head, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.head.clean_blood()
|
||||
cleaned_human.update_inv_head()
|
||||
if(cleaned_human.wear_suit)
|
||||
SEND_SIGNAL(cleaned_human.wear_suit, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.wear_suit, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.wear_suit.clean_blood()
|
||||
cleaned_human.update_inv_wear_suit()
|
||||
else if(cleaned_human.w_uniform)
|
||||
SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.w_uniform, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.w_uniform.clean_blood()
|
||||
cleaned_human.update_inv_w_uniform()
|
||||
if(cleaned_human.shoes)
|
||||
SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(cleaned_human.shoes, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.shoes.clean_blood()
|
||||
cleaned_human.update_inv_shoes()
|
||||
SEND_SIGNAL(cleaned_human, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
cleaned_human.clean_blood()
|
||||
cleaned_human.wash_cream()
|
||||
cleaned_human.regenerate_icons()
|
||||
to_chat(cleaned_human, "<span class='danger'>[src] cleans your face!</span>")
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
mid_sounds = list('sound/machines/shower/shower_mid1.ogg'=1,'sound/machines/shower/shower_mid2.ogg'=1,'sound/machines/shower/shower_mid3.ogg'=1)
|
||||
mid_length = 10
|
||||
end_sound = 'sound/machines/shower/shower_end.ogg'
|
||||
volume = 20
|
||||
volume = 10
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
|
||||
mid_length = 2
|
||||
end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg'
|
||||
volume = 15
|
||||
volume = 5
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -43,3 +43,12 @@
|
||||
mid_length = 10
|
||||
end_sound = 'sound/machines/microwave/microwave-end.ogg'
|
||||
volume = 90
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/looping_sound/grill
|
||||
mid_length = 2
|
||||
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
|
||||
volume = 10
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -122,6 +122,41 @@
|
||||
mood_change = 3
|
||||
timeout = 2 MINUTES
|
||||
|
||||
/datum/mood_event/breakfast
|
||||
description = "<span class='nicegreen'>Nothing like a hearty breakfast to start the shift.</span>\n"
|
||||
mood_change = 2
|
||||
timeout = 15 MINUTES
|
||||
|
||||
//Power gamer stuff below
|
||||
/datum/mood_event/drankblood
|
||||
description = "<span class='nicegreen'>I have fed greedly from that which nourishes me.</span>\n"
|
||||
mood_change = 10
|
||||
timeout = 900
|
||||
|
||||
/datum/mood_event/coffinsleep
|
||||
description = "<span class='nicegreen'>I slept in a coffin during the day. I feel whole again.</span>\n"
|
||||
mood_change = 8
|
||||
timeout = 1200
|
||||
|
||||
//Cursed stuff below.
|
||||
|
||||
/datum/mood_event/orgasm
|
||||
description = "<span class='userlove'>I came!</span>\n" //funny meme haha
|
||||
mood_change = 3
|
||||
timeout = 100 SECONDS
|
||||
|
||||
/datum/mood_event/fedpred
|
||||
description = "<span class='nicegreen'>I've devoured someone!</span>\n"
|
||||
mood_change = 3
|
||||
|
||||
/datum/mood_event/fedprey
|
||||
description = "<span class='nicegreen'>It feels quite cozy in here.</span>\n"
|
||||
mood_change = 3
|
||||
|
||||
/datum/mood_event/hope_lavaland
|
||||
description = "<span class='nicegreen'>What a peculiar emblem. It makes me feel hopeful for my future.</span>\n"
|
||||
mood_change = 5
|
||||
|
||||
/datum/mood_event/radiant
|
||||
description = "<span class='nicegreen'>I have seen the light of The Phoenix; I cannot be stopped.</span>\n"
|
||||
mood_change = 12
|
||||
|
||||
@@ -10,10 +10,11 @@
|
||||
// And yes this does have to be in the constructor, BYOND ignores it if you set it as a normal var
|
||||
|
||||
// Helper similar to image()
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE)
|
||||
/proc/mutable_appearance(icon, icon_state = "", layer = FLOAT_LAYER, plane = FLOAT_PLANE, color = "#FFFFFF")
|
||||
var/mutable_appearance/MA = new()
|
||||
MA.icon = icon
|
||||
MA.icon_state = icon_state
|
||||
MA.layer = layer
|
||||
MA.plane = plane
|
||||
MA.color = color
|
||||
return MA
|
||||
|
||||
@@ -194,14 +194,6 @@
|
||||
allow_duplicates = FALSE
|
||||
cost = 10
|
||||
|
||||
/datum/map_template/ruin/lavaland/duohermit
|
||||
name = "Makeshift Big Shelter"
|
||||
id = "duohermitcave"
|
||||
description = "A place of shelter for a couple of stranded hermits, scraping by to live another day."
|
||||
suffix = "lavaland_surface_duohermit.dmm"
|
||||
allow_duplicates = FALSE
|
||||
cost = 5
|
||||
|
||||
/datum/map_template/ruin/lavaland/hermit
|
||||
name = "Makeshift Shelter"
|
||||
id = "hermitcave"
|
||||
|
||||
@@ -16,13 +16,13 @@
|
||||
mood_quirk = TRUE
|
||||
|
||||
/datum/quirk/apathetic/add()
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, quirk_holder)
|
||||
var/datum/component/mood/mood = quirk_holder.GetComponent(/datum/component/mood)
|
||||
if(mood)
|
||||
mood.mood_modifier = 0.8
|
||||
|
||||
/datum/quirk/apathetic/remove()
|
||||
if(quirk_holder)
|
||||
GET_COMPONENT_FROM(mood, /datum/component/mood, quirk_holder)
|
||||
var/datum/component/mood/mood = quirk_holder.GetComponent(/datum/component/mood)
|
||||
if(mood)
|
||||
mood.mood_modifier = 1 //Change this once/if species get their own mood modifiers.
|
||||
|
||||
@@ -276,63 +276,3 @@
|
||||
/datum/quirk/slimespeaker/remove()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.remove_language(/datum/language/slime)
|
||||
|
||||
/datum/quirk/narsianspeaker
|
||||
name = "Nar-Sian speaker"
|
||||
desc = "Obsessed with forbidden knowledge regarding the blood cult, you've learned how to speak their ancient language."
|
||||
value = 1
|
||||
gain_text = "<span class='notice'>Your mind feels sensitive to the slurred, ancient language of Nar'Sian cultists.</span>"
|
||||
lose_text = "<span class='notice'>You forget how to speak Nar'Sian!</span>"
|
||||
|
||||
/datum/quirk/narsianspeaker/add()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.grant_language(/datum/language/narsie)
|
||||
|
||||
/datum/quirk/narsianspeaker/remove()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.remove_language(/datum/language/narsie)
|
||||
|
||||
/datum/quirk/ratvarianspeaker
|
||||
name = "Ratvarian speaker"
|
||||
desc = "Obsessed with the inner workings of the clock cult, you've learned how to speak their language."
|
||||
value = 1
|
||||
gain_text = "<span class='notice'>Your mind feels sensitive to the ancient language of Ratvarian cultists.</span>"
|
||||
lose_text = "<span class='notice'>You forget how to speak Ratvarian!</span>"
|
||||
|
||||
/datum/quirk/ratvarianspeaker/add()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.grant_language(/datum/language/ratvar)
|
||||
|
||||
/datum/quirk/ratvarianspeaker/remove()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.remove_language(/datum/language/ratvar)
|
||||
|
||||
/datum/quirk/encodedspeaker
|
||||
name = "Encoded Audio speaker"
|
||||
desc = "You've been augmented with language encoders, allowing you to understand encoded audio."
|
||||
value = 1
|
||||
gain_text = "<span class='notice'>Your mouth feels a little weird for a moment as your language encoder kicks in.</span>"
|
||||
lose_text = "<span class='notice'>You feel your encoded audio chip malfunction. You can no longer speak or understand the language of fax machines.</span>"
|
||||
|
||||
/datum/quirk/encodedspeaker/add()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.grant_language(/datum/language/machine)
|
||||
|
||||
/datum/quirk/encodedspeaker/remove()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.remove_language(/datum/language/machine)
|
||||
|
||||
/datum/quirk/xenospeaker
|
||||
name = "Xenocommon speaker"
|
||||
desc = "Through time observing and interacting with xenos and xeno hybrids, you've learned the intricate hissing patterns of their language."
|
||||
value = 1
|
||||
gain_text = "<span class='notice'>You feel that you are now able to hiss in the same way xenomorphs do.</span>"
|
||||
lose_text = "<span class='notice'>You seem to no longer know how to speak xenocommon.</span>"
|
||||
|
||||
/datum/quirk/xenospeaker/add()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.grant_language(/datum/language/xenocommon)
|
||||
|
||||
/datum/quirk/xenospeaker/remove()
|
||||
var/mob/living/M = quirk_holder
|
||||
M.remove_language(/datum/language/xenocommon)
|
||||
|
||||
@@ -110,6 +110,26 @@
|
||||
lose_text = "<span class='notice'>You feel awake again.</span>"
|
||||
medical_record_text = "Patient has abnormal sleep study results and is difficult to wake up."
|
||||
|
||||
/datum/quirk/hypersensitive
|
||||
name = "Hypersensitive"
|
||||
desc = "For better or worse, everything seems to affect your mood more than it should."
|
||||
value = -1
|
||||
gain_text = "<span class='danger'>You seem to make a big deal out of everything.</span>"
|
||||
lose_text = "<span class='notice'>You don't seem to make a big deal out of everything anymore.</span>"
|
||||
mood_quirk = TRUE //yogs
|
||||
medical_record_text = "Patient demonstrates a high level of emotional volatility."
|
||||
|
||||
/datum/quirk/hypersensitive/add()
|
||||
var/datum/component/mood/mood = quirk_holder.GetComponent(/datum/component/mood)
|
||||
if(mood)
|
||||
mood.mood_modifier += 0.5
|
||||
|
||||
/datum/quirk/hypersensitive/remove()
|
||||
if(quirk_holder)
|
||||
var/datum/component/mood/mood = quirk_holder.GetComponent(/datum/component/mood)
|
||||
if(mood)
|
||||
mood.mood_modifier -= 0.5
|
||||
|
||||
/datum/quirk/brainproblems
|
||||
name = "Brain Tumor"
|
||||
desc = "You have a little friend in your brain that is slowly destroying it. Better bring some mannitol!"
|
||||
@@ -241,6 +261,8 @@
|
||||
desc = "An accident caused you to lose one of your limbs. Because of this, you now have a random prosthetic!"
|
||||
value = -1
|
||||
var/slot_string = "limb"
|
||||
var/specific = null
|
||||
medical_record_text = "During physical examination, patient was found to have a prosthetic limb."
|
||||
|
||||
/datum/quirk/prosthetic_limb/on_spawn()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
@@ -249,6 +271,9 @@
|
||||
limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM)
|
||||
else
|
||||
limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG)
|
||||
if(specific)
|
||||
limb_slot = specific
|
||||
|
||||
var/obj/item/bodypart/old_part = H.get_bodypart(limb_slot)
|
||||
var/obj/item/bodypart/prosthetic
|
||||
switch(limb_slot)
|
||||
@@ -297,6 +322,26 @@
|
||||
to_chat(quirk_holder, "<span class='big bold info'>Please note that your dissociation syndrome does NOT give you the right to attack people or otherwise cause any interference to \
|
||||
the round. You are not an antagonist, and the rules will treat you the same as other crewmembers.</span>")
|
||||
|
||||
/datum/quirk/prosthetic_limb/left_arm
|
||||
name = "Prosthetic Limb (Left Arm)"
|
||||
desc = "An accident caused you to lose your left arm. Because of this, it's replaced with a prosthetic!"
|
||||
specific = BODY_ZONE_L_ARM
|
||||
|
||||
/datum/quirk/prosthetic_limb/right_arm
|
||||
name = "Prosthetic Limb (Right Arm)"
|
||||
desc = "An accident caused you to lose your right arm. Because of this, it's replaced with a prosthetic!"
|
||||
specific = BODY_ZONE_R_ARM
|
||||
|
||||
/datum/quirk/prosthetic_limb/left_leg
|
||||
name = "Prosthetic Limb (Left Leg)"
|
||||
desc = "An accident caused you to lose your left leg. Because of this, it's replaced with a prosthetic!"
|
||||
specific = BODY_ZONE_L_LEG
|
||||
|
||||
/datum/quirk/prosthetic_limb/right_leg
|
||||
name = "Prosthetic Limb (Right Leg)"
|
||||
desc = "An accident caused you to lose your right leg. Because of this, it's replaced with a prosthetic!"
|
||||
specific = BODY_ZONE_R_LEG
|
||||
|
||||
/datum/quirk/social_anxiety
|
||||
name = "Social Anxiety"
|
||||
desc = "Talking to people is very difficult for you, and you often stutter or even lock up."
|
||||
|
||||
@@ -10,6 +10,29 @@
|
||||
lose_text = "<span class='notice'>You can taste again!</span>"
|
||||
medical_record_text = "Patient suffers from ageusia and is incapable of tasting food or reagents."
|
||||
|
||||
/datum/quirk/vegetarian
|
||||
name = "Vegetarian"
|
||||
desc = "You find the idea of eating meat morally and physically repulsive."
|
||||
value = 0
|
||||
gain_text = "<span class='notice'>You feel repulsion at the idea of eating meat.</span>"
|
||||
lose_text = "<span class='notice'>You feel like eating meat isn't that bad.</span>"
|
||||
medical_record_text = "Patient reports a vegetarian diet."
|
||||
|
||||
/datum/quirk/vegetarian/add()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
var/datum/species/species = H.dna.species
|
||||
species.liked_food &= ~MEAT
|
||||
species.disliked_food |= MEAT
|
||||
|
||||
/datum/quirk/vegetarian/remove()
|
||||
var/mob/living/carbon/human/H = quirk_holder
|
||||
if(H)
|
||||
var/datum/species/species = H.dna.species
|
||||
if(initial(species.liked_food) & MEAT)
|
||||
species.liked_food |= MEAT
|
||||
if(!initial(species.disliked_food) & MEAT)
|
||||
species.disliked_food &= ~MEAT
|
||||
|
||||
/datum/quirk/pineapple_liker
|
||||
name = "Ananas Affinity"
|
||||
desc = "You find yourself greatly enjoying fruits of the ananas genus. You can't seem to ever get enough of their sweet goodness!"
|
||||
@@ -102,29 +125,10 @@
|
||||
medical_record_text = "Patient never skipped ass day."
|
||||
gain_text = "<span class='notice'>Your ass rivals those of golems.</span>"
|
||||
lose_text = "<span class='notice'>Your butt feels more squishy and slappable.</span>"
|
||||
|
||||
|
||||
/datum/quirk/headpat_slut
|
||||
name = "Headpat Slut"
|
||||
desc = "You like headpats, alot, maybe even a little bit too much. Headpats give you a bigger mood boost and cause arousal"
|
||||
mob_trait = TRAIT_HEADPAT_SLUT
|
||||
value = 0
|
||||
medical_record_text = "Patient seems overly affectionate"
|
||||
|
||||
//Skyrat port start
|
||||
/datum/quirk/alcohol_lightweight
|
||||
name = "Alcoholic Lightweight"
|
||||
desc = "Alcohol really goes straight to your head, gotta be careful with what you drink."
|
||||
value = 0
|
||||
mob_trait = TRAIT_ALCOHOL_LIGHTWEIGHT
|
||||
gain_text = "<span class='notice'>You feel woozy thinking of alcohol.</span>"
|
||||
lose_text = "<span class='notice'>You regain your stomach for drinks.</span>"
|
||||
//Skyrat port stop
|
||||
|
||||
/datum/quirk/cursed_blood
|
||||
name = "Cursed Blood"
|
||||
desc = "Your lineage is cursed with the paleblood curse. Best to stay away from holy water... Hell water, on the other hand..."
|
||||
value = 0
|
||||
mob_trait = TRAIT_CURSED_BLOOD
|
||||
gain_text = "<span class='notice'>A curse from a land where men return as beasts runs deep in your blood. Best to stay away from holy water... Hell water, on the other hand...</span>"
|
||||
lose_text = "<span class='notice'>You feel the weight of the curse in your blood finally gone.</span>"
|
||||
medical_record_text = "Patient suffers from an unknown type of aversion to holy reagents. Keep them away from a chaplain."
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
return TRUE
|
||||
if(ishuman(L)) //Are you immune?
|
||||
var/mob/living/carbon/human/H = L
|
||||
var/thermal_protection = H.get_thermal_protection()
|
||||
var/thermal_protection = H.easy_thermal_protection()
|
||||
if(thermal_protection >= FIRE_IMMUNITY_MAX_TEMP_PROTECT)
|
||||
return TRUE
|
||||
if(isliving(L))// if we're a non immune mob inside an immune mob we have to reconsider if that mob is immune to protect ourselves
|
||||
|
||||
@@ -76,6 +76,9 @@
|
||||
/area/ruin/unpowered/syndicate_lava_base/circuits
|
||||
name = "Syndicate Lavaland Circuit Lab"
|
||||
|
||||
/area/ruin/unpowered/syndicate_lava_base/outdoors //Putting this area down should prevent fauna from spawning nearby
|
||||
name = "Syndicate Lavaland Approach"
|
||||
icon_state = "red"
|
||||
|
||||
//Xeno Nest
|
||||
|
||||
@@ -89,4 +92,4 @@
|
||||
|
||||
//ash walker nest
|
||||
/area/ruin/unpowered/ash_walkers
|
||||
icon_state = "red"
|
||||
icon_state = "red"
|
||||
|
||||
+119
-9
@@ -43,6 +43,12 @@
|
||||
var/rad_flags = NONE // Will move to flags_1 when i can be arsed to
|
||||
var/rad_insulation = RAD_NO_INSULATION
|
||||
|
||||
var/icon/blood_splatter_icon
|
||||
var/list/fingerprints
|
||||
var/list/fingerprintshidden
|
||||
var/list/blood_DNA
|
||||
var/list/suit_fibers
|
||||
|
||||
/atom/New(loc, ...)
|
||||
//atom creation method that preloads variables at creation
|
||||
if(GLOB.use_preloader && (src.type == GLOB._preloader.target_path))//in case the instanciated atom is creating other atoms in New()
|
||||
@@ -231,7 +237,7 @@
|
||||
return FALSE
|
||||
|
||||
/atom/proc/CheckExit()
|
||||
return 1
|
||||
return TRUE
|
||||
|
||||
/atom/proc/HasProximity(atom/movable/AM as mob|obj)
|
||||
return
|
||||
@@ -288,6 +294,11 @@
|
||||
if(SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) & COMPONENT_EXNAME_CHANGED)
|
||||
should_override = TRUE
|
||||
|
||||
|
||||
if(blood_DNA && !istype(src, /obj/effect/decal))
|
||||
override[EXAMINE_POSITION_BEFORE] = " blood-stained "
|
||||
should_override = TRUE
|
||||
|
||||
if(should_override)
|
||||
. = override.Join("")
|
||||
|
||||
@@ -297,7 +308,7 @@
|
||||
|
||||
/atom/proc/examine(mob/user)
|
||||
. = list("[get_examine_string(user, TRUE)].")
|
||||
|
||||
|
||||
if(desc)
|
||||
. += desc
|
||||
|
||||
@@ -360,12 +371,14 @@
|
||||
|
||||
//returns the mob's dna info as a list, to be inserted in an object's blood_DNA list
|
||||
/mob/living/proc/get_blood_dna_list()
|
||||
if(get_blood_id() != "blood")
|
||||
var/blood_id = get_blood_id()
|
||||
if(!(blood_id =="blood" || blood_id == "jellyblood"))
|
||||
return
|
||||
return list("ANIMAL DNA" = "Y-")
|
||||
|
||||
/mob/living/carbon/get_blood_dna_list()
|
||||
if(get_blood_id() != "blood")
|
||||
var/blood_id = get_blood_id()
|
||||
if(!(blood_id =="blood" || blood_id == "jellyblood"))
|
||||
return
|
||||
var/list/blood_dna = list()
|
||||
if(dna)
|
||||
@@ -383,18 +396,115 @@
|
||||
var/new_blood_dna = L.get_blood_dna_list()
|
||||
if(!new_blood_dna)
|
||||
return FALSE
|
||||
var/old_length = blood_DNA_length()
|
||||
add_blood_DNA(new_blood_dna)
|
||||
if(blood_DNA_length() == old_length)
|
||||
LAZYINITLIST(blood_DNA) //if our list of DNA doesn't exist yet, initialise it.
|
||||
var/old_length = blood_DNA.len
|
||||
blood_DNA |= new_blood_dna
|
||||
if(blood_DNA.len == old_length)
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
//to add blood dna info to the object's blood_DNA list
|
||||
/atom/proc/transfer_blood_dna(list/blood_dna, list/datum/disease/diseases)
|
||||
LAZYINITLIST(blood_DNA)
|
||||
var/old_length = blood_DNA.len
|
||||
blood_DNA |= blood_dna
|
||||
if(blood_DNA.len > old_length)
|
||||
return TRUE
|
||||
//some new blood DNA was added
|
||||
|
||||
//to add blood from a mob onto something, and transfer their dna info
|
||||
/atom/proc/add_mob_blood(mob/living/M)
|
||||
var/list/blood_dna = M.get_blood_dna_list()
|
||||
if(!blood_dna)
|
||||
return FALSE
|
||||
return add_blood_DNA(blood_dna)
|
||||
return add_blood_DNA(blood_dna, M.diseases)
|
||||
|
||||
//to add blood onto something, with blood dna info to include.
|
||||
/atom/proc/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
return FALSE
|
||||
|
||||
/obj/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
return transfer_blood_dna(blood_dna, diseases)
|
||||
|
||||
/obj/item/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
if(!.)
|
||||
return
|
||||
add_blood_overlay()
|
||||
|
||||
/obj/item/proc/add_blood_overlay()
|
||||
if(!blood_DNA.len)
|
||||
return
|
||||
if(initial(icon) && initial(icon_state))
|
||||
blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object
|
||||
blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
|
||||
blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant
|
||||
blood_splatter_icon.Blend(blood_DNA_to_color(), ICON_MULTIPLY)
|
||||
add_overlay(blood_splatter_icon)
|
||||
|
||||
/obj/item/clothing/gloves/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
. = ..()
|
||||
transfer_blood = rand(2, 4)
|
||||
|
||||
/turf/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
var/obj/effect/decal/cleanable/blood/splatter/B = locate() in src
|
||||
if(!B)
|
||||
B = new /obj/effect/decal/cleanable/blood/splatter(src, diseases)
|
||||
B.transfer_blood_dna(blood_dna, diseases) //give blood info to the blood decal.
|
||||
return TRUE //we bloodied the floor
|
||||
|
||||
/mob/living/carbon/human/add_blood_DNA(list/blood_dna, list/datum/disease/diseases)
|
||||
if(head)
|
||||
head.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_head()
|
||||
else if(wear_mask)
|
||||
wear_mask.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_wear_mask()
|
||||
if(wear_neck)
|
||||
wear_neck.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_neck()
|
||||
if(wear_suit)
|
||||
wear_suit.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_wear_suit()
|
||||
else if(w_uniform)
|
||||
w_uniform.add_blood_DNA(blood_dna, diseases)
|
||||
update_inv_w_uniform()
|
||||
if(gloves)
|
||||
var/obj/item/clothing/gloves/G = gloves
|
||||
G.add_blood_DNA(blood_dna, diseases)
|
||||
else
|
||||
transfer_blood_dna(blood_dna, diseases)
|
||||
bloody_hands = rand(2, 4)
|
||||
update_inv_gloves() //handles bloody hands overlays and updating
|
||||
return TRUE
|
||||
|
||||
/atom/proc/blood_DNA_to_color()
|
||||
var/list/colors = list()//first we make a list of all bloodtypes present
|
||||
for(var/bloop in blood_DNA)
|
||||
if(colors[blood_DNA[bloop]])
|
||||
colors[blood_DNA[bloop]]++
|
||||
else
|
||||
colors[blood_DNA[bloop]] = 1
|
||||
|
||||
var/final_rgb = BLOOD_COLOR_HUMAN //a default so we don't have white blood graphics if something messed up
|
||||
|
||||
if(colors.len)
|
||||
var/sum = 0 //this is all shitcode, but it works; trust me
|
||||
final_rgb = bloodtype_to_color(colors[1])
|
||||
sum = colors[colors[1]]
|
||||
if(colors.len > 1)
|
||||
var/i = 2
|
||||
while(i <= colors.len)
|
||||
var/tmp = colors[colors[i]]
|
||||
final_rgb = BlendRGB(final_rgb, bloodtype_to_color(colors[i]), tmp/(tmp+sum))
|
||||
sum += tmp
|
||||
i++
|
||||
|
||||
return final_rgb
|
||||
|
||||
/atom/proc/clean_blood()
|
||||
. = blood_DNA? TRUE : FALSE
|
||||
blood_DNA = null
|
||||
|
||||
/atom/proc/wash_cream()
|
||||
return TRUE
|
||||
@@ -444,7 +554,7 @@
|
||||
/atom/proc/component_storage_contents_dump_act(datum/component/storage/src_object, mob/user)
|
||||
var/list/things = src_object.contents()
|
||||
var/datum/progressbar/progress = new(user, things.len, src)
|
||||
GET_COMPONENT(STR, /datum/component/storage)
|
||||
var/datum/component/storage/STR = GetComponent(/datum/component/storage)
|
||||
while (do_after(user, 10, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress)))
|
||||
stoplag(1)
|
||||
qdel(progress)
|
||||
|
||||
@@ -91,11 +91,13 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
|
||||
user.shirt_color =chosen_prof.shirt_color
|
||||
user.socks = chosen_prof.socks
|
||||
user.socks_color =chosen_prof.socks_color
|
||||
user.size_multiplier = chosen_prof.size_multiplier
|
||||
|
||||
chosen_dna.transfer_identity(user, 1)
|
||||
user.updateappearance(mutcolor_update=1)
|
||||
user.update_body()
|
||||
user.domutcheck()
|
||||
user.previous_size = chosen_prof.size_multiplier
|
||||
|
||||
//vars hackery. not pretty, but better than the alternative.
|
||||
for(var/slot in GLOB.slots)
|
||||
|
||||
@@ -39,12 +39,12 @@
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/Initialize()
|
||||
. = ..()
|
||||
GET_COMPONENT(bananium, /datum/component/material_container)
|
||||
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
|
||||
bananium.insert_amount(max_recharge, MAT_BANANIUM)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/clothing/shoes/clown_shoes/banana_shoes/combat/process()
|
||||
GET_COMPONENT(bananium, /datum/component/material_container)
|
||||
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
|
||||
var/bananium_amount = bananium.amount(MAT_BANANIUM)
|
||||
if(bananium_amount < max_recharge)
|
||||
bananium.insert_amount(min(recharge_rate, max_recharge - bananium_amount), MAT_BANANIUM)
|
||||
@@ -73,19 +73,19 @@
|
||||
/obj/item/melee/transforming/energy/sword/bananium/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/slippery, 60, GALOSHES_DONT_HELP)
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.signal_enabled = active
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/bananium/attack(mob/living/M, mob/living/user)
|
||||
..()
|
||||
if(active)
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.Slip(M)
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/bananium/throw_impact(atom/hit_atom, throwingdatum)
|
||||
. = ..()
|
||||
if(active)
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.Slip(hit_atom)
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/bananium/attackby(obj/item/I, mob/living/user, params)
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/bananium/transform_weapon(mob/living/user, supress_message_text)
|
||||
..()
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.signal_enabled = active
|
||||
|
||||
/obj/item/melee/transforming/energy/sword/bananium/ignition_effect(atom/A, mob/user)
|
||||
@@ -108,7 +108,7 @@
|
||||
if(!active)
|
||||
transform_weapon(user, TRUE)
|
||||
user.visible_message("<span class='suicide'>[user] is [pick("slitting [user.p_their()] stomach open with", "falling on")] [src]! It looks like [user.p_theyre()] trying to commit seppuku, but the blade slips off of [user.p_them()] harmlessly!</span>")
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.Slip(user)
|
||||
return SHAME
|
||||
|
||||
@@ -130,12 +130,12 @@
|
||||
/obj/item/shield/energy/bananium/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/slippery, 60, GALOSHES_DONT_HELP)
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.signal_enabled = active
|
||||
|
||||
/obj/item/shield/energy/bananium/attack_self(mob/living/carbon/human/user)
|
||||
..()
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.signal_enabled = active
|
||||
|
||||
/obj/item/shield/energy/bananium/throw_at(atom/target, range, speed, mob/thrower, spin=1)
|
||||
@@ -149,7 +149,7 @@
|
||||
if(active)
|
||||
var/caught = hit_atom.hitby(src, FALSE, FALSE, throwingdatum=throwingdatum)
|
||||
if(iscarbon(hit_atom) && !caught)//if they are a carbon and they didn't catch it
|
||||
GET_COMPONENT(slipper, /datum/component/slippery)
|
||||
var/datum/component/slippery/slipper = GetComponent(/datum/component/slippery)
|
||||
slipper.Slip(hit_atom)
|
||||
if(thrownby && !caught)
|
||||
throw_at(thrownby, throw_range+2, throw_speed, null, 1)
|
||||
|
||||
@@ -445,7 +445,7 @@ GLOBAL_VAR_INIT(dynamic_chaos_level, 1.5)
|
||||
|
||||
/// Picks a random roundstart rule from the list given as an argument and executes it.
|
||||
/datum/game_mode/dynamic/proc/picking_roundstart_rule(list/drafted_rules = list(), forced = FALSE)
|
||||
var/datum/dynamic_ruleset/roundstart/starting_rule = pickweight(drafted_rules)
|
||||
var/datum/dynamic_ruleset/roundstart/starting_rule = pickweightAllowZero(drafted_rules)
|
||||
if(!starting_rule)
|
||||
return FALSE
|
||||
|
||||
@@ -457,7 +457,7 @@ GLOBAL_VAR_INIT(dynamic_chaos_level, 1.5)
|
||||
drafted_rules -= starting_rule
|
||||
if(drafted_rules.len <= 0)
|
||||
return FALSE
|
||||
starting_rule = pickweight(drafted_rules)
|
||||
starting_rule = pickweightAllowZero(drafted_rules)
|
||||
// Check if the ruleset is highlander and if a highlander ruleset has been executed
|
||||
else if(starting_rule.flags & HIGHLANDER_RULESET)
|
||||
if(threat < GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
|
||||
@@ -465,7 +465,7 @@ GLOBAL_VAR_INIT(dynamic_chaos_level, 1.5)
|
||||
drafted_rules -= starting_rule
|
||||
if(drafted_rules.len <= 0)
|
||||
return FALSE
|
||||
starting_rule = pickweight(drafted_rules)
|
||||
starting_rule = pickweightAllowZero(drafted_rules)
|
||||
|
||||
message_admins("Picking a [istype(starting_rule, /datum/dynamic_ruleset/roundstart/delayed/) ? " delayed " : ""] ruleset [starting_rule.name]")
|
||||
log_game("DYNAMIC: Picking a [istype(starting_rule, /datum/dynamic_ruleset/roundstart/delayed/) ? " delayed " : ""] ruleset [starting_rule.name]")
|
||||
@@ -516,7 +516,7 @@ GLOBAL_VAR_INIT(dynamic_chaos_level, 1.5)
|
||||
/// Picks a random midround OR latejoin rule from the list given as an argument and executes it.
|
||||
/// Also this could be named better.
|
||||
/datum/game_mode/dynamic/proc/picking_midround_latejoin_rule(list/drafted_rules = list(), forced = FALSE)
|
||||
var/datum/dynamic_ruleset/rule = pickweight(drafted_rules)
|
||||
var/datum/dynamic_ruleset/rule = pickweightAllowZero(drafted_rules)
|
||||
if(!rule)
|
||||
return FALSE
|
||||
|
||||
@@ -528,7 +528,7 @@ GLOBAL_VAR_INIT(dynamic_chaos_level, 1.5)
|
||||
drafted_rules -= rule
|
||||
if(drafted_rules.len <= 0)
|
||||
return FALSE
|
||||
rule = pickweight(drafted_rules)
|
||||
rule = pickweightAllowZero(drafted_rules)
|
||||
// Check if the ruleset is highlander and if a highlander ruleset has been executed
|
||||
else if(rule.flags & HIGHLANDER_RULESET)
|
||||
if(threat < GLOB.dynamic_stacking_limit && GLOB.dynamic_no_stacking)
|
||||
@@ -536,7 +536,7 @@ GLOBAL_VAR_INIT(dynamic_chaos_level, 1.5)
|
||||
drafted_rules -= rule
|
||||
if(drafted_rules.len <= 0)
|
||||
return FALSE
|
||||
rule = pickweight(drafted_rules)
|
||||
rule = pickweightAllowZero(drafted_rules)
|
||||
|
||||
if(!rule.repeatable)
|
||||
if(rule.ruletype == "Latejoin")
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#define REVENANT_SPAWN_THRESHOLD 20
|
||||
#define REVENANT_SPAWN_THRESHOLD 15
|
||||
#define ABDUCTOR_MAX_TEAMS 4 // blame TG for not using the defines files
|
||||
|
||||
//////////////////////////////////////////////
|
||||
|
||||
@@ -317,7 +317,7 @@ GLOBAL_LIST_INIT(meteorsC, list(/obj/effect/meteor/dust)) //for space dust event
|
||||
|
||||
/obj/effect/meteor/meaty/xeno/ram_turf(turf/T)
|
||||
if(!isspaceturf(T))
|
||||
new /obj/effect/decal/cleanable/xenoblood(T)
|
||||
new /obj/effect/decal/cleanable/blood/xeno(T)
|
||||
|
||||
//Station buster Tunguska
|
||||
/obj/effect/meteor/tunguska
|
||||
|
||||
+155
-19
@@ -12,6 +12,7 @@
|
||||
density = FALSE
|
||||
state_open = TRUE
|
||||
circuit = /obj/item/circuitboard/machine/sleeper
|
||||
req_access = list(ACCESS_CMO) //Used for reagent deletion and addition of non medicines
|
||||
var/efficiency = 1
|
||||
var/min_health = -25
|
||||
var/list/available_chems
|
||||
@@ -28,9 +29,27 @@
|
||||
|
||||
/obj/machinery/sleeper/Initialize()
|
||||
. = ..()
|
||||
create_reagents(500, NO_REACT)
|
||||
occupant_typecache = GLOB.typecache_living
|
||||
update_icon()
|
||||
reset_chem_buttons()
|
||||
RefreshParts()
|
||||
add_inital_chems()
|
||||
|
||||
/obj/machinery/sleeper/on_deconstruction()
|
||||
var/obj/item/reagent_containers/sleeper_buffer/buffer = new (loc)
|
||||
buffer.volume = reagents.maximum_volume
|
||||
buffer.reagents.maximum_volume = reagents.maximum_volume
|
||||
reagents.trans_to(buffer.reagents, reagents.total_volume)
|
||||
|
||||
/obj/machinery/sleeper/proc/add_inital_chems()
|
||||
for(var/i in available_chems)
|
||||
var/datum/reagent/R = reagents.has_reagent(i)
|
||||
if(!R)
|
||||
reagents.add_reagent(i, (20))
|
||||
continue
|
||||
if(R.volume < 20)
|
||||
reagents.add_reagent(i, (20 - R.volume))
|
||||
|
||||
/obj/machinery/sleeper/RefreshParts()
|
||||
var/E
|
||||
@@ -47,6 +66,11 @@
|
||||
available_chems |= possible_chems[i]
|
||||
reset_chem_buttons()
|
||||
|
||||
//Total container size 500 - 2000u
|
||||
if(reagents)
|
||||
reagents.maximum_volume = (500*E)
|
||||
|
||||
|
||||
/obj/machinery/sleeper/update_icon()
|
||||
icon_state = initial(icon_state)
|
||||
if(state_open)
|
||||
@@ -81,24 +105,88 @@
|
||||
if (. & EMP_PROTECT_SELF)
|
||||
return
|
||||
if(is_operational() && occupant)
|
||||
var/datum/reagent/R = pick(reagents.reagent_list)
|
||||
inject_chem(R.id, occupant)
|
||||
open_machine()
|
||||
//Is this too much?
|
||||
if(severity == EMP_HEAVY)
|
||||
var/chem = pick(available_chems)
|
||||
available_chems -= chem
|
||||
available_chems += get_random_reagent_id()
|
||||
reset_chem_buttons()
|
||||
|
||||
/obj/machinery/sleeper/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/reagent_containers/sleeper_buffer))
|
||||
var/obj/item/reagent_containers/sleeper_buffer/SB = I
|
||||
if((SB.reagents.total_volume + reagents.total_volume) < reagents.maximum_volume)
|
||||
SB.reagents.trans_to(reagents, SB.reagents.total_volume)
|
||||
visible_message("[user] places the [SB] into the [src].")
|
||||
qdel(SB)
|
||||
return
|
||||
else
|
||||
SB.reagents.trans_to(reagents, SB.reagents.total_volume)
|
||||
visible_message("[user] adds as much as they can to the [src] from the [SB].")
|
||||
return
|
||||
if(istype(I, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/RC = I
|
||||
if(RC.reagents.total_volume == 0)
|
||||
to_chat(user, "<span class='notice'>The [I] is empty!</span>")
|
||||
for(var/datum/reagent/R in RC.reagents.reagent_list)
|
||||
if((obj_flags & EMAGGED) || (allowed(usr)))
|
||||
break
|
||||
if(!istype(R, /datum/reagent/medicine))
|
||||
visible_message("The [src] gives out a hearty boop and rejects the [I]. The Sleeper's screen flashes with a pompous \"Medicines only, please.\"")
|
||||
return
|
||||
RC.reagents.trans_to(reagents, 1000)
|
||||
visible_message("[user] adds as much as they can to the [src] from the [I].")
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/sleeper/MouseDrop_T(mob/target, mob/user)
|
||||
if(user.stat || user.lying || !Adjacent(user) || !user.Adjacent(target) || !iscarbon(target) || !user.IsAdvancedToolUser())
|
||||
return
|
||||
close_machine(target)
|
||||
|
||||
/obj/machinery/sleeper/attackby(obj/item/I, mob/user, params)
|
||||
if(!state_open && !occupant)
|
||||
if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I))
|
||||
return
|
||||
/obj/machinery/sleeper/screwdriver_act(mob/living/user, obj/item/I)
|
||||
. = TRUE
|
||||
if(..())
|
||||
return
|
||||
if(occupant)
|
||||
to_chat(user, "<span class='warning'>[src] is currently occupied!</span>")
|
||||
return
|
||||
if(state_open)
|
||||
to_chat(user, "<span class='warning'>[src] must be closed to [panel_open ? "close" : "open"] its maintenance hatch!</span>")
|
||||
return
|
||||
if(default_deconstruction_screwdriver(user, "[initial(icon_state)]-o", initial(icon_state), I))
|
||||
return
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/sleeper/wrench_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(default_change_direction_wrench(user, I))
|
||||
return
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/sleeper/crowbar_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(default_pry_open(I))
|
||||
return
|
||||
return TRUE
|
||||
if(default_deconstruction_crowbar(I))
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/sleeper/default_pry_open(obj/item/I) //wew
|
||||
. = !(state_open || panel_open || (flags_1 & NODECONSTRUCT_1)) && I.tool_behaviour == TOOL_CROWBAR
|
||||
if(.)
|
||||
I.play_tool_sound(src, 50)
|
||||
visible_message("<span class='notice'>[usr] pries open [src].</span>", "<span class='notice'>You pry open [src].</span>")
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/sleeper/AltClick(mob/user)
|
||||
if(!user.canUseTopic(src, !issilicon(user)))
|
||||
return
|
||||
return ..()
|
||||
if(state_open)
|
||||
close_machine()
|
||||
else
|
||||
open_machine()
|
||||
|
||||
/obj/machinery/sleeper/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -112,18 +200,24 @@
|
||||
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "sleeper", name, 375, 550, master_ui, state)
|
||||
ui = new(user, src, ui_key, "sleeper", name, 550, 700, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/sleeper/ui_data()
|
||||
var/list/data = list()
|
||||
data["occupied"] = occupant ? 1 : 0
|
||||
data["open"] = state_open
|
||||
data["efficiency"] = efficiency
|
||||
data["current_vol"] = reagents.total_volume
|
||||
data["tot_capacity"] = reagents.maximum_volume
|
||||
|
||||
data["chems"] = list()
|
||||
for(var/chem in available_chems)
|
||||
var/datum/reagent/R = GLOB.chemical_reagents_list[chem]
|
||||
data["chems"] += list(list("name" = R.name, "id" = R.id, "allowed" = chem_allowed(chem)))
|
||||
var/datum/reagent/R = reagents.has_reagent(chem)
|
||||
R = GLOB.chemical_reagents_list[chem]
|
||||
data["synthchems"] += list(list("name" = R.name, "id" = R.id, "synth_allowed" = synth_allowed(chem)))
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
data["chems"] += list(list("name" = R.name, "id" = R.id, "vol" = R.volume, "purity" = R.purity, "allowed" = chem_allowed(R.id)))
|
||||
|
||||
data["occupant"] = list()
|
||||
var/mob/living/mob_occupant = occupant
|
||||
@@ -155,8 +249,15 @@
|
||||
if(mob_occupant.reagents && mob_occupant.reagents.reagent_list.len)
|
||||
for(var/datum/reagent/R in mob_occupant.reagents.reagent_list)
|
||||
data["occupant"]["reagents"] += list(list("name" = R.name, "volume" = R.volume))
|
||||
data["occupant"]["failing_organs"] = list()
|
||||
var/mob/living/carbon/C = mob_occupant
|
||||
if(C)
|
||||
for(var/obj/item/organ/Or in C.getFailingOrgans())
|
||||
if(istype(Or, /obj/item/organ/brain))
|
||||
continue
|
||||
data["occupant"]["failing_organs"] += list(list("name" = Or.name))
|
||||
|
||||
if(mob_occupant.has_dna()) // Blood-stuff is mostly a copy-paste from the healthscanner.
|
||||
var/mob/living/carbon/C = mob_occupant
|
||||
var/blood_id = C.get_blood_id()
|
||||
if(blood_id)
|
||||
data["occupant"]["blood"] = list() // We can start populating this list.
|
||||
@@ -167,7 +268,7 @@
|
||||
blood_type = R.name
|
||||
else
|
||||
blood_type = blood_id
|
||||
data["occupant"]["blood"]["maxBloodVolume"] = BLOOD_VOLUME_NORMAL
|
||||
data["occupant"]["blood"]["maxBloodVolume"] = (BLOOD_VOLUME_NORMAL*C.blood_ratio)
|
||||
data["occupant"]["blood"]["currentBloodVolume"] = C.blood_volume
|
||||
data["occupant"]["blood"]["dangerBloodVolume"] = BLOOD_VOLUME_SAFE
|
||||
data["occupant"]["blood"]["bloodType"] = blood_type
|
||||
@@ -187,22 +288,49 @@
|
||||
. = TRUE
|
||||
if("inject")
|
||||
var/chem = params["chem"]
|
||||
var/amount = text2num(params["volume"])
|
||||
if(!is_operational() || !mob_occupant)
|
||||
return
|
||||
if(mob_occupant.health < min_health && chem != "epinephrine")
|
||||
return
|
||||
if(inject_chem(chem, usr))
|
||||
if(inject_chem(chem, usr, amount))
|
||||
. = TRUE
|
||||
if(scrambled_chems && prob(5))
|
||||
to_chat(usr, "<span class='warning'>Chem System Re-route detected, results may not be as expected!</span>")
|
||||
to_chat(usr, "<span class='warning'>Chemical system re-route detected, results may not be as expected!</span>")
|
||||
if("synth")
|
||||
var/chem = params["chem"]
|
||||
if(!is_operational())
|
||||
return
|
||||
reagents.add_reagent(chem_buttons[chem], 10) //other_purity = 0.75 for when the mechanics are in
|
||||
if("purge")
|
||||
var/chem = params["chem"]
|
||||
if(allowed(usr))
|
||||
if(!is_operational())
|
||||
return
|
||||
reagents.remove_reagent(chem, 10)
|
||||
return
|
||||
if(chem in available_chems)
|
||||
if(!is_operational())
|
||||
return
|
||||
/*var/datum/reagent/R = reagents.has_reagent(chem) //For when purity effects are in
|
||||
if(R.purity < 0.8)*/
|
||||
reagents.remove_reagent(chem, 10)
|
||||
else
|
||||
visible_message("<span class='warning'>Access Denied.</span>")
|
||||
playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, 0)
|
||||
|
||||
|
||||
/obj/machinery/sleeper/emag_act(mob/user)
|
||||
. = ..()
|
||||
obj_flags |= EMAGGED
|
||||
scramble_chem_buttons()
|
||||
to_chat(user, "<span class='warning'>You scramble the sleeper's user interface!</span>")
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/sleeper/proc/inject_chem(chem, mob/user)
|
||||
if((chem in available_chems) && chem_allowed(chem))
|
||||
occupant.reagents.add_reagent(chem_buttons[chem], 10) //emag effect kicks in here so that the "intended" chem is used for all checks, for extra FUUU
|
||||
//trans to
|
||||
/obj/machinery/sleeper/proc/inject_chem(chem, mob/user, volume = 10)
|
||||
if(chem_allowed(chem))
|
||||
reagents.trans_id_to(occupant, chem, volume)//emag effect kicks in here so that the "intended" chem is used for all checks, for extra FUUU
|
||||
if(user)
|
||||
log_combat(user, occupant, "injected [chem] into", addition = "via [src]")
|
||||
return TRUE
|
||||
@@ -215,6 +343,14 @@
|
||||
var/occ_health = mob_occupant.health > min_health || chem == "epinephrine"
|
||||
return amount && occ_health
|
||||
|
||||
/obj/machinery/sleeper/proc/synth_allowed(chem)
|
||||
var/datum/reagent/R = reagents.has_reagent(chem)
|
||||
if(!R)
|
||||
return TRUE
|
||||
if(R.volume < 50)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/sleeper/proc/reset_chem_buttons()
|
||||
scrambled_chems = FALSE
|
||||
LAZYINITLIST(chem_buttons)
|
||||
@@ -235,7 +371,7 @@
|
||||
/obj/machinery/sleeper/syndie/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/machine/sleeper(null)
|
||||
component_parts += new /obj/item/circuitboard/machine/sleeper/syndie(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/super(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/pico(null)
|
||||
component_parts += new /obj/item/stack/sheet/glass(null)
|
||||
@@ -246,7 +382,7 @@
|
||||
/obj/machinery/sleeper/syndie/fullupgrade/Initialize()
|
||||
. = ..()
|
||||
component_parts = list()
|
||||
component_parts += new /obj/item/circuitboard/machine/sleeper(null)
|
||||
component_parts += new /obj/item/circuitboard/machine/sleeper/syndie(null)
|
||||
component_parts += new /obj/item/stock_parts/matter_bin/bluespace(null)
|
||||
component_parts += new /obj/item/stock_parts/manipulator/femto(null)
|
||||
component_parts += new /obj/item/stack/sheet/glass(null)
|
||||
|
||||
@@ -113,6 +113,11 @@ Class Procs:
|
||||
var/atom/movable/occupant = null
|
||||
var/speed_process = FALSE // Process as fast as possible?
|
||||
var/obj/item/circuitboard/circuit // Circuit to be created and inserted when the machinery is created
|
||||
var/obj/item/card/id/inserted_scan_id
|
||||
var/obj/item/card/id/inserted_modify_id
|
||||
var/list/region_access = null // For the identification console (card.dm)
|
||||
var/list/head_subordinates = null // For the identification console (card.dm)
|
||||
var/authenticated = 0 // For the identification console (card.dm)
|
||||
|
||||
var/interaction_flags_machine = INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE
|
||||
|
||||
@@ -131,7 +136,7 @@ Class Procs:
|
||||
else
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
power_change()
|
||||
AddComponent(/datum/component/redirect, list(COMSIG_ENTER_AREA = CALLBACK(src, .proc/power_change)))
|
||||
RegisterSignal(src, COMSIG_ENTER_AREA, .proc/power_change)
|
||||
|
||||
if (occupant_typecache)
|
||||
occupant_typecache = typecacheof(occupant_typecache)
|
||||
@@ -143,6 +148,10 @@ Class Procs:
|
||||
else
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
dropContents()
|
||||
if(length(component_parts))
|
||||
for(var/atom/A in component_parts)
|
||||
qdel(A)
|
||||
component_parts.Cut()
|
||||
return ..()
|
||||
|
||||
/obj/machinery/proc/locate_machinery()
|
||||
@@ -314,6 +323,7 @@ Class Procs:
|
||||
spawn_frame(disassembled)
|
||||
for(var/obj/item/I in component_parts)
|
||||
I.forceMove(loc)
|
||||
component_parts.Cut()
|
||||
qdel(src)
|
||||
|
||||
/obj/machinery/proc/spawn_frame(disassembled)
|
||||
@@ -351,8 +361,8 @@ Class Procs:
|
||||
panel_open = FALSE
|
||||
icon_state = icon_state_closed
|
||||
to_chat(user, "<span class='notice'>You close the maintenance hatch of [src].</span>")
|
||||
return 1
|
||||
return 0
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/proc/default_change_direction_wrench(mob/user, obj/item/I)
|
||||
if(panel_open && I.tool_behaviour == TOOL_WRENCH)
|
||||
@@ -404,7 +414,7 @@ Class Procs:
|
||||
var/obj/item/circuitboard/machine/CB = locate(/obj/item/circuitboard/machine) in component_parts
|
||||
var/P
|
||||
if(W.works_from_distance)
|
||||
display_parts(user)
|
||||
to_chat(user, display_parts(user))
|
||||
for(var/obj/item/A in component_parts)
|
||||
for(var/D in CB.req_components)
|
||||
if(ispath(A.type, D))
|
||||
@@ -432,16 +442,18 @@ Class Procs:
|
||||
break
|
||||
RefreshParts()
|
||||
else
|
||||
display_parts(user)
|
||||
to_chat(user, display_parts(user))
|
||||
if(shouldplaysound)
|
||||
W.play_rped_sound()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/proc/display_parts(mob/user)
|
||||
to_chat(user, "<span class='notice'>It contains the following parts:</span>")
|
||||
. = list()
|
||||
. += "<span class='notice'>It contains the following parts:</span>"
|
||||
for(var/obj/item/C in component_parts)
|
||||
to_chat(user, "<span class='notice'>[icon2html(C, user)] \A [C].</span>")
|
||||
. += "<span class='notice'>[icon2html(C, user)] \A [C].</span>"
|
||||
. = jointext(., "")
|
||||
|
||||
/obj/machinery/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -460,6 +472,8 @@ Class Procs:
|
||||
. += "<span class='warning'>It's falling apart!</span>"
|
||||
if(user.research_scanner && component_parts)
|
||||
. += display_parts(user, TRUE)
|
||||
if(inserted_scan_id || inserted_modify_id)
|
||||
. += "<span class='notice'>Alt-click to eject the ID card.</span>"
|
||||
|
||||
//called on machinery construction (i.e from frame to machinery) but not on initialization
|
||||
/obj/machinery/proc/on_construction()
|
||||
@@ -498,3 +512,72 @@ Class Procs:
|
||||
. = ..()
|
||||
if(istype(mover) && (mover.pass_flags & PASSMACHINES))
|
||||
return TRUE
|
||||
/obj/machinery/proc/id_insert_scan(mob/user, obj/item/card/id/I)
|
||||
I = user.get_active_held_item()
|
||||
if(istype(I))
|
||||
if(inserted_scan_id)
|
||||
to_chat(user, "<span class='warning'>There's already an ID card in the console!</span>")
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
inserted_scan_id = I
|
||||
user.visible_message("<span class='notice'>[user] inserts an ID card into the console.</span>", \
|
||||
"<span class='notice'>You insert the ID card into the console.</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/proc/id_eject_scan(mob/user)
|
||||
if(!inserted_scan_id)
|
||||
to_chat(user, "<span class='warning'>There's no ID card in the console!</span>")
|
||||
return
|
||||
if(inserted_scan_id)
|
||||
inserted_scan_id.forceMove(drop_location())
|
||||
if(!issilicon(user) && Adjacent(user))
|
||||
user.put_in_hands(inserted_scan_id)
|
||||
inserted_scan_id = null
|
||||
user.visible_message("<span class='notice'>[user] gets an ID card from the console.</span>", \
|
||||
"<span class='notice'>You get the ID card from the console.</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/proc/id_eject_modify(mob/user)
|
||||
if(inserted_modify_id)
|
||||
GLOB.data_core.manifest_modify(inserted_modify_id.registered_name, inserted_modify_id.assignment)
|
||||
inserted_modify_id.update_label()
|
||||
inserted_modify_id.forceMove(drop_location())
|
||||
if(!issilicon(user) && Adjacent(user))
|
||||
user.put_in_hands(inserted_modify_id)
|
||||
user.visible_message("<span class='notice'>[user] gets an ID card from the console.</span>", \
|
||||
"<span class='notice'>You get the ID card from the console.</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
|
||||
inserted_modify_id = null
|
||||
region_access = null
|
||||
head_subordinates = null
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/proc/id_insert_modify(mob/user)
|
||||
var/obj/item/card/id/I = user.get_active_held_item()
|
||||
if(istype(I))
|
||||
if(inserted_modify_id)
|
||||
to_chat(user, "<span class='warning'>There's already an ID card in the console!</span>")
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
inserted_modify_id = I
|
||||
user.visible_message("<span class='notice'>[user] inserts an ID card into the console.</span>", \
|
||||
"<span class='notice'>You insert the ID card into the console.</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/AltClick(mob/user)
|
||||
. = ..()
|
||||
if(!user.canUseTopic(src, !issilicon(user)) || !is_operational())
|
||||
return
|
||||
if(inserted_modify_id)
|
||||
id_eject_modify(user)
|
||||
authenticated = FALSE
|
||||
return
|
||||
if(inserted_scan_id)
|
||||
id_eject_scan(user)
|
||||
authenticated = FALSE
|
||||
return
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/autolathe/on_deconstruction()
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.retrieve_all()
|
||||
|
||||
/obj/machinery/autolathe/attackby(obj/item/O, mob/user, params)
|
||||
@@ -164,7 +164,7 @@
|
||||
|
||||
var/power = max(2000, (metal_cost+glass_cost)*multiplier/5)
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
if((materials.amount(MAT_METAL) >= metal_cost*multiplier*coeff) && (materials.amount(MAT_GLASS) >= glass_cost*multiplier*coeff))
|
||||
busy = TRUE
|
||||
use_power(power)
|
||||
@@ -188,7 +188,7 @@
|
||||
return
|
||||
|
||||
/obj/machinery/autolathe/proc/make_item(power, metal_cost, glass_cost, multiplier, coeff, is_stack)
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/atom/A = drop_location()
|
||||
use_power(power)
|
||||
var/list/materials_used = list(MAT_METAL=metal_cost*coeff*multiplier, MAT_GLASS=glass_cost*coeff*multiplier)
|
||||
@@ -213,7 +213,7 @@
|
||||
var/T = 0
|
||||
for(var/obj/item/stock_parts/matter_bin/MB in component_parts)
|
||||
T += MB.rating*75000
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.max_amount = T
|
||||
T=1.2
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
@@ -262,7 +262,7 @@
|
||||
dat += "<a href='?src=[REF(src)];make=[D.id];multiplier=1'>[D.name]</a>"
|
||||
|
||||
if(ispath(D.build_path, /obj/item/stack))
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
|
||||
if (max_multiplier>10 && !disabled)
|
||||
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=10'>x10</a>"
|
||||
@@ -294,7 +294,7 @@
|
||||
dat += "<a href='?src=[REF(src)];make=[D.id];multiplier=1'>[D.name]</a>"
|
||||
|
||||
if(ispath(D.build_path, /obj/item/stack))
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/max_multiplier = min(D.maxstack, D.materials[MAT_METAL] ?round(materials.amount(MAT_METAL)/D.materials[MAT_METAL]):INFINITY,D.materials[MAT_GLASS]?round(materials.amount(MAT_GLASS)/D.materials[MAT_GLASS]):INFINITY)
|
||||
if (max_multiplier>10 && !disabled)
|
||||
dat += " <a href='?src=[REF(src)];make=[D.id];multiplier=10'>x10</a>"
|
||||
@@ -309,7 +309,7 @@
|
||||
return dat
|
||||
|
||||
/obj/machinery/autolathe/proc/materials_printout()
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/dat = "<b>Total amount:</b> [materials.total_amount] / [materials.max_amount] cm<sup>3</sup><br>"
|
||||
for(var/mat_id in materials.materials)
|
||||
var/datum/material/M = materials.materials[mat_id]
|
||||
@@ -322,7 +322,7 @@
|
||||
|
||||
var/coeff = (ispath(D.build_path, /obj/item/stack) ? 1 : prod_coeff)
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
if(D.materials[MAT_METAL] && (materials.amount(MAT_METAL) < (D.materials[MAT_METAL] * coeff * amount)))
|
||||
return FALSE
|
||||
if(D.materials[MAT_GLASS] && (materials.amount(MAT_GLASS) < (D.materials[MAT_GLASS] * coeff * amount)))
|
||||
@@ -380,4 +380,4 @@
|
||||
//Called when the object is constructed by an autolathe
|
||||
//Has a reference to the autolathe so you can do !!FUN!! things with hacked lathes
|
||||
/obj/item/proc/autolathe_crafted(obj/machinery/autolathe/A)
|
||||
return
|
||||
return
|
||||
|
||||
@@ -0,0 +1,336 @@
|
||||
/obj/machinery/bloodbankgen
|
||||
name = "blood bank generator"
|
||||
desc = "Generates universally applicable synthetics for all blood types. Add regular blood to convert."
|
||||
icon = 'icons/obj/bloodbank.dmi'
|
||||
icon_state = "bloodbank-off"
|
||||
density = TRUE
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 80
|
||||
circuit = /obj/item/circuitboard/machine/bloodbankgen
|
||||
interaction_flags_machine = INTERACT_MACHINE_OPEN | INTERACT_MACHINE_ALLOW_SILICON
|
||||
var/draining = FALSE
|
||||
var/filling = FALSE
|
||||
var/obj/item/reagent_containers/blood/bag = null
|
||||
var/obj/item/reagent_containers/blood/outbag = null
|
||||
var/maxbloodstored = 1000
|
||||
var/menustat = "menu"
|
||||
var/efficiency = 0
|
||||
var/productivity = 0
|
||||
|
||||
/obj/machinery/bloodbankgen/Initialize()
|
||||
. = ..()
|
||||
create_reagents(maxbloodstored, AMOUNT_VISIBLE)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/Destroy()
|
||||
QDEL_NULL(bag)
|
||||
QDEL_NULL(outbag)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/bloodbankgen/examine(mob/user)
|
||||
. = ..()
|
||||
if(bag)
|
||||
. += "<span class='notice'>It has \a [bag.name] hooked to its <b>input</b> slot. The counter reads: \"Current Capacity: [bag.reagents.total_volume] of [bag.reagents.maximum_volume]\"</span>"
|
||||
if(outbag)
|
||||
. += "<span class='notice'>It has \a [bag.name] hooked to its <b>output</b> slot. The counter reads: \"Current Capacity: [outbag.reagents.total_volume] of [outbag.reagents.maximum_volume]\"</span>"
|
||||
|
||||
|
||||
/obj/machinery/bloodbankgen/handle_atom_del(atom/A)
|
||||
..()
|
||||
if(A == bag)
|
||||
bag = null
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
if(A == outbag)
|
||||
outbag = null
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/bloodbankgen/RefreshParts()
|
||||
var/E = 0
|
||||
var/P = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
E += M.rating
|
||||
efficiency = E
|
||||
productivity = P
|
||||
|
||||
/obj/machinery/bloodbankgen/update_icon()
|
||||
cut_overlays()
|
||||
if(is_operational())
|
||||
icon_state = "bloodbank-on"
|
||||
|
||||
if(panel_open)
|
||||
add_overlay("bloodbank-panel")
|
||||
|
||||
if(src.bag)
|
||||
add_overlay("bloodbag-input")
|
||||
if(bag.reagents.total_volume)
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance(icon, "input-reagent")
|
||||
|
||||
var/percent = round((bag.reagents.total_volume / bag.volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9)
|
||||
filling_overlay.icon_state = "input-reagent0"
|
||||
if(10 to 24)
|
||||
filling_overlay.icon_state = "input-reagent10"
|
||||
if(25 to 49)
|
||||
filling_overlay.icon_state = "input-reagent25"
|
||||
if(50 to 74)
|
||||
filling_overlay.icon_state = "input-reagent50"
|
||||
if(75 to 79)
|
||||
filling_overlay.icon_state = "input-reagent75"
|
||||
if(80 to 90)
|
||||
filling_overlay.icon_state = "input-reagent80"
|
||||
if(91 to INFINITY)
|
||||
filling_overlay.icon_state = "input-reagent100"
|
||||
|
||||
filling_overlay.color = list(mix_color_from_reagents(bag.reagents.reagent_list))
|
||||
add_overlay(filling_overlay)
|
||||
|
||||
if(src.outbag)
|
||||
add_overlay("bloodbag-output")
|
||||
if(outbag.reagents.total_volume)
|
||||
var/mutable_appearance/filling_overlay = mutable_appearance(icon, "output-reagent")
|
||||
|
||||
var/percent = round((outbag.reagents.total_volume / outbag.volume) * 100)
|
||||
switch(percent)
|
||||
if(0 to 9)
|
||||
filling_overlay.icon_state = "output-reagent0"
|
||||
if(10 to 24)
|
||||
filling_overlay.icon_state = "output-reagent10"
|
||||
if(25 to 49)
|
||||
filling_overlay.icon_state = "output-reagent25"
|
||||
if(50 to 74)
|
||||
filling_overlay.icon_state = "output-reagent50"
|
||||
if(75 to 79)
|
||||
filling_overlay.icon_state = "output-reagent75"
|
||||
if(80 to 90)
|
||||
filling_overlay.icon_state = "output-reagent80"
|
||||
if(91 to INFINITY)
|
||||
filling_overlay.icon_state = "output-reagent100"
|
||||
|
||||
filling_overlay.color = list(mix_color_from_reagents(outbag.reagents.reagent_list))
|
||||
add_overlay(filling_overlay)
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/process()
|
||||
if(!is_operational())
|
||||
return
|
||||
|
||||
var/transfer_amount = 20
|
||||
|
||||
if(draining)
|
||||
if(reagents.total_volume >= reagents.maximum_volume || !bag || !bag.reagents.total_volume)
|
||||
beep_stop_pumping()
|
||||
return
|
||||
var/blood_amount = bag.reagents.get_reagent_amount("blood")
|
||||
//monitor the machine and blood bag's reagents storage.
|
||||
var/amount = min(blood_amount, min(transfer_amount, reagents.maximum_volume - reagents.total_volume))
|
||||
if(!amount)
|
||||
beep_stop_pumping()
|
||||
return
|
||||
var/bonus = bag.blood_type == "SY" ? 0 : 5 * efficiency //no infinite loops using synthetics.
|
||||
reagents.add_reagent("syntheticblood", amount + bonus)
|
||||
bag.reagents.remove_reagent("blood", amount)
|
||||
update_icon()
|
||||
|
||||
if(filling)
|
||||
if(!reagents.total_volume || !outbag || outbag.reagents.total_volume >= outbag.reagents.maximum_volume)
|
||||
beep_stop_pumping("[src] pings.", TRUE)
|
||||
return
|
||||
//monitor the output bag's reagents storage.
|
||||
var/amount = min(transfer_amount, outbag.reagents.maximum_volume - outbag.reagents.total_volume)
|
||||
reagents.trans_to(outbag, amount)
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/beep_stop_pumping(msg = "[src] beeps loudly.", out_instead_of_in = FALSE)
|
||||
if(out_instead_of_in)
|
||||
filling = FALSE
|
||||
else
|
||||
draining = FALSE
|
||||
updateUsrDialog()
|
||||
audible_message(msg)
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
|
||||
/obj/machinery/bloodbankgen/attackby(obj/item/O, mob/user, params)
|
||||
if(user.a_intent == INTENT_HARM)
|
||||
return ..()
|
||||
|
||||
if(default_deconstruction_screwdriver(user, "bloodbank-off", "bloodbank-off", O) || default_unfasten_wrench(user, O, 20) == SUCCESSFUL_UNFASTEN)
|
||||
if(bag)
|
||||
var/obj/item/reagent_containers/blood/B = bag
|
||||
B.forceMove(drop_location())
|
||||
bag = null
|
||||
if(outbag)
|
||||
var/obj/item/reagent_containers/blood/B = outbag
|
||||
B.forceMove(drop_location())
|
||||
outbag = null
|
||||
update_icon()
|
||||
return
|
||||
|
||||
if(default_deconstruction_crowbar(O))
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/reagent_containers/blood))
|
||||
. = TRUE //no afterattack
|
||||
var/msg
|
||||
if(panel_open)
|
||||
. += "Close the maintenance panel"
|
||||
if(!anchored)
|
||||
. += "[msg ? " and a" : "A"]nchor its bolts"
|
||||
if(length(msg))
|
||||
to_chat(user, "<span class='warning'>[msg] first.</span>")
|
||||
return
|
||||
if(bag && outbag)
|
||||
to_chat(user, "<span class='warning'>This machine already has bags attached.</span>")
|
||||
|
||||
if(!bag && !outbag)
|
||||
var/choice = alert(user, "Choose where to place [O]", "", "Input", "Cancel", "Output")
|
||||
switch(choice)
|
||||
if("Cancel")
|
||||
return FALSE
|
||||
if("Input")
|
||||
attachinput(O, user)
|
||||
if("Output")
|
||||
attachoutput(O, user)
|
||||
else if(!bag)
|
||||
attachinput(O, user)
|
||||
else if(!outbag)
|
||||
attachoutput(O, user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You cannot put this in [src]!</span>")
|
||||
|
||||
/obj/machinery/bloodbankgen/is_operational()
|
||||
return ..() && anchored
|
||||
|
||||
/obj/machinery/bloodbankgen/ui_interact(mob/user)
|
||||
. = ..()
|
||||
|
||||
if(!is_operational())
|
||||
return
|
||||
|
||||
var/dat
|
||||
switch(menustat)
|
||||
if("noblood")
|
||||
dat += "<div class='statusDisplay'>You do not have enough blood product to create synthetics.</div>"
|
||||
menustat = "menu"
|
||||
if("complete")
|
||||
dat += "<div class='statusDisplay'>Operation complete.</div>"
|
||||
menustat = "menu"
|
||||
if("nobagspace")
|
||||
dat += "<div class='statusDisplay'>Not enough space left in container. Please replace receptical.</div>"
|
||||
menustat = "menu"
|
||||
|
||||
dat+= "<br><B>Current Synthetics stockpile: [reagents.total_volume] units.</B><HR>"
|
||||
|
||||
dat += "<br>Supply Bag<HR>"
|
||||
if(bag)
|
||||
dat += "<br>Current Capacity: [bag.reagents.total_volume] of [bag.reagents.maximum_volume]"
|
||||
if(bag.reagents && bag.reagents.total_volume)
|
||||
dat += "<br><a href='?src=\ref[src];activateinput=1'>Drain</a>"
|
||||
|
||||
dat += "<br><a href='?src=\ref[src];detachinput=1'>Detach</a>"
|
||||
|
||||
|
||||
dat += "<br><br>Synthetics Bag<HR>"
|
||||
if(outbag)
|
||||
dat += "<br>Current Capacity:[outbag.reagents.total_volume] of [outbag.reagents.maximum_volume]"
|
||||
if(!(outbag.reagents.total_volume >= outbag.reagents.maximum_volume))
|
||||
dat += "<br><a href='?src=\ref[src];activateoutput=1'>Fill</a>"
|
||||
dat += "<br><a href='?src=\ref[src];detachoutput=1'>Detach</a>"
|
||||
|
||||
if(!bag && !outbag)
|
||||
dat += "<div class='statusDisplay'>No containers inside, please insert container.</div>"
|
||||
|
||||
var/datum/browser/popup = new(user, "bloodbankgen", name, 350, 420)
|
||||
popup.set_content(dat)
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/activateinput()
|
||||
if(bag)
|
||||
draining = TRUE
|
||||
update_icon()
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>There is no blood bag in the input slot.</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/activateoutput()
|
||||
if(outbag)
|
||||
filling = TRUE
|
||||
update_icon()
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>There is no blood bag in the output slot.</span>")
|
||||
return
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/check_container_volume(list/reagents, multiplier = 1)
|
||||
var/sum_reagents = 0
|
||||
for(var/R in reagents)
|
||||
sum_reagents += reagents[R]
|
||||
sum_reagents *= multiplier
|
||||
|
||||
if(outbag.reagents.total_volume + sum_reagents > outbag.reagents.maximum_volume)
|
||||
menustat = "nobagspace"
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/detachinput()
|
||||
if(bag)
|
||||
bag.forceMove(drop_location())
|
||||
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
|
||||
usr.put_in_hands(bag)
|
||||
bag = null
|
||||
draining = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/detachoutput()
|
||||
if(outbag)
|
||||
outbag.forceMove(drop_location())
|
||||
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
|
||||
usr.put_in_hands(outbag)
|
||||
outbag = null
|
||||
filling = null
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/attachinput(obj/item/O, mob/user)
|
||||
if(!bag)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
bag = O
|
||||
to_chat(user, "<span class='notice'>You add [O] to the machine's input slot.</span>")
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There is already something in this slot!</span>")
|
||||
|
||||
/obj/machinery/bloodbankgen/proc/attachoutput(obj/item/O, mob/user)
|
||||
if(!outbag)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
outbag = O
|
||||
to_chat(user, "<span class='notice'>You add [O] to the machine's output slot.</span>")
|
||||
update_icon()
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There is already something in this slot!</span>")
|
||||
|
||||
/obj/machinery/bloodbankgen/Topic(href, href_list)
|
||||
. = ..()
|
||||
if(. | !is_operational())
|
||||
return
|
||||
|
||||
usr.set_machine(src)
|
||||
|
||||
if(href_list["activateinput"])
|
||||
activateinput()
|
||||
|
||||
else if(href_list["detachinput"])
|
||||
detachinput()
|
||||
|
||||
else if(href_list["activateoutput"])
|
||||
activateoutput()
|
||||
|
||||
else if(href_list["detachoutput"])
|
||||
detachoutput()
|
||||
|
||||
updateUsrDialog()
|
||||
@@ -354,7 +354,8 @@
|
||||
O.organ_flags &= ~ORGAN_FROZEN
|
||||
unattached_flesh.Cut()
|
||||
mess = FALSE
|
||||
new /obj/effect/gibspawner/generic(get_turf(src))
|
||||
if(mob_occupant)
|
||||
mob_occupant.spawn_gibs()
|
||||
audible_message("<span class='italics'>You hear a splat.</span>")
|
||||
update_icon()
|
||||
return
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
var/list/result_filters //For sorting the results
|
||||
var/checking_logs = 0
|
||||
var/list/logs
|
||||
var/authenticated = 0
|
||||
var/auth_id = "\[NULL\]"
|
||||
|
||||
/obj/machinery/computer/apc_control/Initialize()
|
||||
|
||||
@@ -13,11 +13,8 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
|
||||
circuit = /obj/item/circuitboard/computer/card
|
||||
var/obj/item/card/id/scan = null
|
||||
var/obj/item/card/id/modify = null
|
||||
var/authenticated = 0
|
||||
var/mode = 0
|
||||
var/printing = null
|
||||
var/list/region_access = null
|
||||
var/list/head_subordinates = null
|
||||
var/target_dept = 0 //Which department this computer has access to. 0=all departments
|
||||
|
||||
//Cooldown for closing positions in seconds
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
icon_keyboard = "tech_key"
|
||||
req_access = list(ACCESS_HEADS)
|
||||
circuit = /obj/item/circuitboard/computer/communications
|
||||
var/authenticated = 0
|
||||
var/auth_id = "Unknown" //Who is currently logged in?
|
||||
var/list/datum/comm_message/messages = list()
|
||||
var/datum/comm_message/currmsg
|
||||
|
||||
@@ -7,13 +7,10 @@
|
||||
icon_keyboard = "med_key"
|
||||
req_one_access = list(ACCESS_MEDICAL, ACCESS_FORENSICS_LOCKERS)
|
||||
circuit = /obj/item/circuitboard/computer/med_data
|
||||
var/obj/item/card/id/scan = null
|
||||
var/authenticated = null
|
||||
var/rank = null
|
||||
var/screen = null
|
||||
var/datum/data/record/active1
|
||||
var/datum/data/record/active2
|
||||
var/a_id = null
|
||||
var/temp = null
|
||||
var/printing = null
|
||||
//Sorting Variables
|
||||
@@ -25,12 +22,9 @@
|
||||
/obj/machinery/computer/med_data/syndie
|
||||
icon_keyboard = "syndie_key"
|
||||
|
||||
/obj/machinery/computer/med_data/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/card/id) && !scan)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
scan = O
|
||||
to_chat(user, "<span class='notice'>You insert [O].</span>")
|
||||
/obj/machinery/computer/med_data/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/card/id))
|
||||
id_insert_scan(user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -40,9 +34,8 @@
|
||||
if(temp)
|
||||
dat = text("<TT>[temp]</TT><BR><BR><A href='?src=[REF(src)];temp=1'>Clear Screen</A>")
|
||||
else
|
||||
dat = text("Confirm Identity: <A href='?src=[REF(src)];scan=1'>[]</A><HR>", (src.scan ? text("[]", src.scan.name) : "----------"))
|
||||
if(src.authenticated)
|
||||
switch(src.screen)
|
||||
if(authenticated)
|
||||
switch(screen)
|
||||
if(1)
|
||||
dat += {"
|
||||
<A href='?src=[REF(src)];search=1'>Search Records</A>
|
||||
@@ -116,7 +109,7 @@
|
||||
dat += "<td><a href='?src=[REF(src)];field=show_photo_front'><img src=photo_front height=80 width=80 border=4></a></td>"
|
||||
dat += "<td><a href='?src=[REF(src)];field=show_photo_side'><img src=photo_side height=80 width=80 border=4></a></td></tr>"
|
||||
dat += "<tr><td>ID:</td><td>[active1.fields["id"]]</td></tr>"
|
||||
dat += "<tr><td>Sex:</td><td><A href='?src=[REF(src)];field=sex'> [active1.fields["sex"]] </A></td></tr>"
|
||||
dat += "<tr><td>Gender:</td><td><A href='?src=[REF(src)];field=gender'> [active1.fields["gender"]] </A></td></tr>"
|
||||
dat += "<tr><td>Age:</td><td><A href='?src=[REF(src)];field=age'> [active1.fields["age"]] </A></td></tr>"
|
||||
dat += "<tr><td>Species:</td><td><A href='?src=[REF(src)];field=species'> [active1.fields["species"]] </A></td></tr>"
|
||||
dat += "<tr><td>Fingerprint:</td><td><A href='?src=[REF(src)];field=fingerprint'> [active1.fields["fingerprint"]] </A></td></tr>"
|
||||
@@ -141,7 +134,7 @@
|
||||
|
||||
dat += "<tr><td><br><b><font size='4'>Comments/Log</font></b></td></tr>"
|
||||
var/counter = 1
|
||||
while(src.active2.fields[text("com_[]", counter)])
|
||||
while(active2.fields[text("com_[]", counter)])
|
||||
dat += "<tr><td>[active2.fields[text("com_[]", counter)]]</td></tr><tr><td><A href='?src=[REF(src)];del_c=[counter]'>Delete Entry</A></td></tr>"
|
||||
counter++
|
||||
dat += "<tr><td><A href='?src=[REF(src)];add_c=1'>Add Entry</A></td></tr>"
|
||||
@@ -169,7 +162,7 @@
|
||||
dat += "<br><b>Medical Robots:</b>"
|
||||
var/bdat = null
|
||||
for(var/mob/living/simple_animal/bot/medbot/M in GLOB.alive_mob_list)
|
||||
if(M.z != src.z)
|
||||
if(M.z != z)
|
||||
continue //only find medibots on the same z-level as the computer
|
||||
var/turf/bl = get_turf(M)
|
||||
if(bl) //if it can't find a turf for the medibot, then it probably shouldn't be showing up
|
||||
@@ -189,7 +182,7 @@
|
||||
dat += "<A href='?src=[REF(src)];login=1'>{Log In}</A>"
|
||||
var/datum/browser/popup = new(user, "med_rec", "Medical Records Console", 600, 400)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.set_title_image(user.browse_rsc_icon(icon, icon_state))
|
||||
popup.open()
|
||||
|
||||
/obj/machinery/computer/med_data/Topic(href, href_list)
|
||||
@@ -197,29 +190,20 @@
|
||||
if(.)
|
||||
return .
|
||||
if(!(active1 in GLOB.data_core.general))
|
||||
src.active1 = null
|
||||
active1 = null
|
||||
if(!(active2 in GLOB.data_core.medical))
|
||||
src.active2 = null
|
||||
active2 = null
|
||||
|
||||
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr) || IsAdminGhost(usr))
|
||||
usr.set_machine(src)
|
||||
if(href_list["temp"])
|
||||
src.temp = null
|
||||
if(href_list["scan"])
|
||||
if(src.scan)
|
||||
usr.put_in_hands(scan)
|
||||
scan = null
|
||||
else
|
||||
var/obj/item/I = usr.is_holding_item_of_type(/obj/item/card/id)
|
||||
if(I)
|
||||
if(!usr.transferItemToLoc(I, src))
|
||||
return
|
||||
src.scan = I
|
||||
temp = null
|
||||
else if(href_list["logout"])
|
||||
src.authenticated = null
|
||||
src.screen = null
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
authenticated = null
|
||||
screen = null
|
||||
active1 = null
|
||||
active2 = null
|
||||
playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE)
|
||||
else if(href_list["choice"])
|
||||
// SORTING!
|
||||
if(href_list["choice"] == "Sorting")
|
||||
@@ -234,34 +218,37 @@
|
||||
sortBy = href_list["sort"]
|
||||
order = initial(order)
|
||||
else if(href_list["login"])
|
||||
if(issilicon(usr))
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
src.authenticated = 1
|
||||
src.rank = "AI"
|
||||
src.screen = 1
|
||||
else if(IsAdminGhost(usr))
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
src.authenticated = 1
|
||||
src.rank = "Central Command"
|
||||
src.screen = 1
|
||||
else if(istype(src.scan, /obj/item/card/id))
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
if(src.check_access(src.scan))
|
||||
src.authenticated = src.scan.registered_name
|
||||
src.rank = src.scan.assignment
|
||||
src.screen = 1
|
||||
if(src.authenticated)
|
||||
|
||||
var/mob/M = usr
|
||||
var/obj/item/card/id/I = M.get_idcard(TRUE)
|
||||
if(issilicon(M))
|
||||
active1 = null
|
||||
active2 = null
|
||||
authenticated = 1
|
||||
rank = "AI"
|
||||
screen = 1
|
||||
else if(IsAdminGhost(M))
|
||||
active1 = null
|
||||
active2 = null
|
||||
authenticated = 1
|
||||
rank = "Central Command"
|
||||
screen = 1
|
||||
else if(istype(I) && check_access(I))
|
||||
active1 = null
|
||||
active2 = null
|
||||
authenticated = I.registered_name
|
||||
rank = I.assignment
|
||||
screen = 1
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Unauthorized access.</span>")
|
||||
playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE)
|
||||
if(authenticated)
|
||||
if(href_list["screen"])
|
||||
src.screen = text2num(href_list["screen"])
|
||||
if(src.screen < 1)
|
||||
src.screen = 1
|
||||
screen = text2num(href_list["screen"])
|
||||
if(screen < 1)
|
||||
screen = 1
|
||||
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
active1 = null
|
||||
active2 = null
|
||||
|
||||
else if(href_list["vir"])
|
||||
var/type = href_list["vir"]
|
||||
@@ -269,7 +256,7 @@
|
||||
var/AfS = ""
|
||||
for(var/mob/M in Dis.viable_mobtypes)
|
||||
AfS += " [initial(M.name)];"
|
||||
src.temp = {"<b>Name:</b> [Dis.name]
|
||||
temp = {"<b>Name:</b> [Dis.name]
|
||||
<BR><b>Number of stages:</b> [Dis.max_stages]
|
||||
<BR><b>Spread:</b> [Dis.spread_text] Transmission
|
||||
<BR><b>Possible Cure:</b> [(Dis.cure_text||"none")]
|
||||
@@ -280,110 +267,112 @@
|
||||
<BR><b>Severity:</b> [Dis.severity]"}
|
||||
|
||||
else if(href_list["del_all"])
|
||||
src.temp = "Are you sure you wish to delete all records?<br>\n\t<A href='?src=[REF(src)];temp=1;del_all2=1'>Yes</A><br>\n\t<A href='?src=[REF(src)];temp=1'>No</A><br>"
|
||||
temp = "Are you sure you wish to delete all records?<br>\n\t<A href='?src=[REF(src)];temp=1;del_all2=1'>Yes</A><br>\n\t<A href='?src=[REF(src)];temp=1'>No</A><br>"
|
||||
|
||||
else if(href_list["del_all2"])
|
||||
investigate_log("[key_name(usr)] has deleted all medical records.", INVESTIGATE_RECORDS)
|
||||
GLOB.data_core.medical.Cut()
|
||||
src.temp = "All records deleted."
|
||||
temp = "All records deleted."
|
||||
|
||||
else if(href_list["field"])
|
||||
var/a1 = src.active1
|
||||
var/a2 = src.active2
|
||||
var/a1 = active1
|
||||
var/a2 = active2
|
||||
switch(href_list["field"])
|
||||
if("fingerprint")
|
||||
if(active1)
|
||||
var/t1 = stripped_input("Please input fingerprint hash:", "Med. records", src.active1.fields["fingerprint"], null)
|
||||
var/t1 = stripped_input("Please input fingerprint hash:", "Med. records", active1.fields["fingerprint"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, a1))
|
||||
return
|
||||
src.active1.fields["fingerprint"] = t1
|
||||
if("sex")
|
||||
active1.fields["fingerprint"] = t1
|
||||
if("gender")
|
||||
if(active1)
|
||||
if(src.active1.fields["sex"] == "Male")
|
||||
src.active1.fields["sex"] = "Female"
|
||||
if(active1.fields["gender"] == "Male")
|
||||
active1.fields["gender"] = "Female"
|
||||
else if(active1.fields["gender"] == "Female")
|
||||
active1.fields["gender"] = "Other"
|
||||
else
|
||||
src.active1.fields["sex"] = "Male"
|
||||
active1.fields["gender"] = "Male"
|
||||
if("age")
|
||||
if(active1)
|
||||
var/t1 = input("Please input age:", "Med. records", src.active1.fields["age"], null) as num
|
||||
var/t1 = input("Please input age:", "Med. records", active1.fields["age"], null) as num
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, a1))
|
||||
return
|
||||
src.active1.fields["age"] = t1
|
||||
active1.fields["age"] = t1
|
||||
if("species")
|
||||
if(active1)
|
||||
var/t1 = stripped_input("Please input species name", "Med. records", src.active1.fields["species"], null)
|
||||
var/t1 = stripped_input("Please input species name", "Med. records", active1.fields["species"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, a1))
|
||||
return
|
||||
active1.fields["species"] = t1
|
||||
if("mi_dis")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please input minor disabilities list:", "Med. records", src.active2.fields["mi_dis"], null)
|
||||
var/t1 = stripped_input("Please input minor disabilities list:", "Med. records", active2.fields["mi_dis"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["mi_dis"] = t1
|
||||
active2.fields["mi_dis"] = t1
|
||||
if("mi_dis_d")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please summarize minor dis.:", "Med. records", src.active2.fields["mi_dis_d"], null)
|
||||
var/t1 = stripped_input("Please summarize minor dis.:", "Med. records", active2.fields["mi_dis_d"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["mi_dis_d"] = t1
|
||||
active2.fields["mi_dis_d"] = t1
|
||||
if("ma_dis")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please input major disabilities list:", "Med. records", src.active2.fields["ma_dis"], null)
|
||||
var/t1 = stripped_input("Please input major disabilities list:", "Med. records", active2.fields["ma_dis"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["ma_dis"] = t1
|
||||
active2.fields["ma_dis"] = t1
|
||||
if("ma_dis_d")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please summarize major dis.:", "Med. records", src.active2.fields["ma_dis_d"], null)
|
||||
var/t1 = stripped_input("Please summarize major dis.:", "Med. records", active2.fields["ma_dis_d"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["ma_dis_d"] = t1
|
||||
active2.fields["ma_dis_d"] = t1
|
||||
if("alg")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please state allergies:", "Med. records", src.active2.fields["alg"], null)
|
||||
var/t1 = stripped_input("Please state allergies:", "Med. records", active2.fields["alg"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["alg"] = t1
|
||||
active2.fields["alg"] = t1
|
||||
if("alg_d")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please summarize allergies:", "Med. records", src.active2.fields["alg_d"], null)
|
||||
var/t1 = stripped_input("Please summarize allergies:", "Med. records", active2.fields["alg_d"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["alg_d"] = t1
|
||||
active2.fields["alg_d"] = t1
|
||||
if("cdi")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please state diseases:", "Med. records", src.active2.fields["cdi"], null)
|
||||
var/t1 = stripped_input("Please state diseases:", "Med. records", active2.fields["cdi"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["cdi"] = t1
|
||||
active2.fields["cdi"] = t1
|
||||
if("cdi_d")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please summarize diseases:", "Med. records", src.active2.fields["cdi_d"], null)
|
||||
var/t1 = stripped_input("Please summarize diseases:", "Med. records", active2.fields["cdi_d"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["cdi_d"] = t1
|
||||
active2.fields["cdi_d"] = t1
|
||||
if("notes")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please summarize notes:", "Med. records", src.active2.fields["notes"], null)
|
||||
var/t1 = stripped_input("Please summarize notes:", "Med. records", active2.fields["notes"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["notes"] = t1
|
||||
active2.fields["notes"] = t1
|
||||
if("p_stat")
|
||||
if(active1)
|
||||
src.temp = "<B>Physical Condition:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=deceased'>*Deceased*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=unconscious'>*Unconscious*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=active'>Active</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=unfit'>Physically Unfit</A><BR>"
|
||||
temp = "<B>Physical Condition:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=deceased'>*Deceased*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=unconscious'>*Unconscious*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=active'>Active</A><BR>\n\t<A href='?src=[REF(src)];temp=1;p_stat=unfit'>Physically Unfit</A><BR>"
|
||||
if("m_stat")
|
||||
if(active1)
|
||||
src.temp = "<B>Mental Condition:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=insane'>*Insane*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=unstable'>*Unstable*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=watch'>*Watch*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=stable'>Stable</A><BR>"
|
||||
temp = "<B>Mental Condition:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=insane'>*Insane*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=unstable'>*Unstable*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=watch'>*Watch*</A><BR>\n\t<A href='?src=[REF(src)];temp=1;m_stat=stable'>Stable</A><BR>"
|
||||
if("blood_type")
|
||||
if(active2)
|
||||
src.temp = "<B>Blood Type:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=an'>A-</A> <A href='?src=[REF(src)];temp=1;blood_type=ap'>A+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=bn'>B-</A> <A href='?src=[REF(src)];temp=1;blood_type=bp'>B+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=abn'>AB-</A> <A href='?src=[REF(src)];temp=1;blood_type=abp'>AB+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=on'>O-</A> <A href='?src=[REF(src)];temp=1;blood_type=op'>O+</A><BR>"
|
||||
temp = "<B>Blood Type:</B><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=an'>A-</A> <A href='?src=[REF(src)];temp=1;blood_type=ap'>A+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=bn'>B-</A> <A href='?src=[REF(src)];temp=1;blood_type=bp'>B+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=abn'>AB-</A> <A href='?src=[REF(src)];temp=1;blood_type=abp'>AB+</A><BR>\n\t<A href='?src=[REF(src)];temp=1;blood_type=on'>O-</A> <A href='?src=[REF(src)];temp=1;blood_type=op'>O+</A><BR>"
|
||||
if("b_dna")
|
||||
if(active2)
|
||||
var/t1 = stripped_input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null)
|
||||
var/t1 = stripped_input("Please input DNA hash:", "Med. records", active2.fields["b_dna"], null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
src.active2.fields["b_dna"] = t1
|
||||
active2.fields["b_dna"] = t1
|
||||
if("show_photo_front")
|
||||
if(active1)
|
||||
if(active1.fields["photo_front"])
|
||||
@@ -402,51 +391,51 @@
|
||||
if(active1)
|
||||
switch(href_list["p_stat"])
|
||||
if("deceased")
|
||||
src.active1.fields["p_stat"] = "*Deceased*"
|
||||
active1.fields["p_stat"] = "*Deceased*"
|
||||
if("unconscious")
|
||||
src.active1.fields["p_stat"] = "*Unconscious*"
|
||||
active1.fields["p_stat"] = "*Unconscious*"
|
||||
if("active")
|
||||
src.active1.fields["p_stat"] = "Active"
|
||||
active1.fields["p_stat"] = "Active"
|
||||
if("unfit")
|
||||
src.active1.fields["p_stat"] = "Physically Unfit"
|
||||
active1.fields["p_stat"] = "Physically Unfit"
|
||||
|
||||
else if(href_list["m_stat"])
|
||||
if(active1)
|
||||
switch(href_list["m_stat"])
|
||||
if("insane")
|
||||
src.active1.fields["m_stat"] = "*Insane*"
|
||||
active1.fields["m_stat"] = "*Insane*"
|
||||
if("unstable")
|
||||
src.active1.fields["m_stat"] = "*Unstable*"
|
||||
active1.fields["m_stat"] = "*Unstable*"
|
||||
if("watch")
|
||||
src.active1.fields["m_stat"] = "*Watch*"
|
||||
active1.fields["m_stat"] = "*Watch*"
|
||||
if("stable")
|
||||
src.active1.fields["m_stat"] = "Stable"
|
||||
active1.fields["m_stat"] = "Stable"
|
||||
|
||||
|
||||
else if(href_list["blood_type"])
|
||||
if(active2)
|
||||
switch(href_list["blood_type"])
|
||||
if("an")
|
||||
src.active2.fields["blood_type"] = "A-"
|
||||
active2.fields["blood_type"] = "A-"
|
||||
if("bn")
|
||||
src.active2.fields["blood_type"] = "B-"
|
||||
active2.fields["blood_type"] = "B-"
|
||||
if("abn")
|
||||
src.active2.fields["blood_type"] = "AB-"
|
||||
active2.fields["blood_type"] = "AB-"
|
||||
if("on")
|
||||
src.active2.fields["blood_type"] = "O-"
|
||||
active2.fields["blood_type"] = "O-"
|
||||
if("ap")
|
||||
src.active2.fields["blood_type"] = "A+"
|
||||
active2.fields["blood_type"] = "A+"
|
||||
if("bp")
|
||||
src.active2.fields["blood_type"] = "B+"
|
||||
active2.fields["blood_type"] = "B+"
|
||||
if("abp")
|
||||
src.active2.fields["blood_type"] = "AB+"
|
||||
active2.fields["blood_type"] = "AB+"
|
||||
if("op")
|
||||
src.active2.fields["blood_type"] = "O+"
|
||||
active2.fields["blood_type"] = "O+"
|
||||
|
||||
|
||||
else if(href_list["del_r"])
|
||||
if(active2)
|
||||
src.temp = "Are you sure you wish to delete the record (Medical Portion Only)?<br>\n\t<A href='?src=[REF(src)];temp=1;del_r2=1'>Yes</A><br>\n\t<A href='?src=[REF(src)];temp=1'>No</A><br>"
|
||||
temp = "Are you sure you wish to delete the record (Medical Portion Only)?<br>\n\t<A href='?src=[REF(src)];temp=1;del_r2=1'>Yes</A><br>\n\t<A href='?src=[REF(src)];temp=1'>No</A><br>"
|
||||
|
||||
else if(href_list["del_r2"])
|
||||
investigate_log("[key_name(usr)] has deleted the medical records for [active1.fields["name"]].", INVESTIGATE_RECORDS)
|
||||
@@ -463,10 +452,10 @@
|
||||
screen = 4
|
||||
|
||||
else if(href_list["new"])
|
||||
if((istype(src.active1, /datum/data/record) && !( istype(src.active2, /datum/data/record) )))
|
||||
if((istype(active1, /datum/data/record) && !( istype(active2, /datum/data/record) )))
|
||||
var/datum/data/record/R = new /datum/data/record( )
|
||||
R.fields["name"] = src.active1.fields["name"]
|
||||
R.fields["id"] = src.active1.fields["id"]
|
||||
R.fields["name"] = active1.fields["name"]
|
||||
R.fields["id"] = active1.fields["id"]
|
||||
R.name = text("Medical Record #[]", R.fields["id"])
|
||||
R.fields["blood_type"] = "Unknown"
|
||||
R.fields["b_dna"] = "Unknown"
|
||||
@@ -480,76 +469,77 @@
|
||||
R.fields["cdi_d"] = "No diseases have been diagnosed at the moment."
|
||||
R.fields["notes"] = "No notes."
|
||||
GLOB.data_core.medical += R
|
||||
src.active2 = R
|
||||
src.screen = 4
|
||||
active2 = R
|
||||
screen = 4
|
||||
|
||||
else if(href_list["add_c"])
|
||||
if(!(active2 in GLOB.data_core.medical))
|
||||
return
|
||||
var/a2 = src.active2
|
||||
var/a2 = active2
|
||||
var/t1 = stripped_multiline_input("Add Comment:", "Med. records", null, null)
|
||||
if(!canUseMedicalRecordsConsole(usr, t1, null, a2))
|
||||
return
|
||||
var/counter = 1
|
||||
while(src.active2.fields[text("com_[]", counter)])
|
||||
while(active2.fields[text("com_[]", counter)])
|
||||
counter++
|
||||
src.active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []<BR>[]", src.authenticated, src.rank, STATION_TIME_TIMESTAMP("hh:mm:ss"), time2text(world.realtime, "MMM DD"), GLOB.year_integer+540, t1)
|
||||
active2.fields[text("com_[]", counter)] = text("Made by [] ([]) on [] [], []<BR>[]", authenticated, rank, STATION_TIME_TIMESTAMP("hh:mm:ss"), time2text(world.realtime, "MMM DD"), GLOB.year_integer+540, t1)
|
||||
|
||||
else if(href_list["del_c"])
|
||||
if((istype(src.active2, /datum/data/record) && src.active2.fields[text("com_[]", href_list["del_c"])]))
|
||||
src.active2.fields[text("com_[]", href_list["del_c"])] = "<B>Deleted</B>"
|
||||
if((istype(active2, /datum/data/record) && active2.fields[text("com_[]", href_list["del_c"])]))
|
||||
active2.fields[text("com_[]", href_list["del_c"])] = "<B>Deleted</B>"
|
||||
|
||||
else if(href_list["search"])
|
||||
var/t1 = stripped_input(usr, "Search String: (Name, DNA, or ID)", "Med. records")
|
||||
if(!canUseMedicalRecordsConsole(usr, t1))
|
||||
return
|
||||
src.active1 = null
|
||||
src.active2 = null
|
||||
active1 = null
|
||||
active2 = null
|
||||
t1 = lowertext(t1)
|
||||
for(var/datum/data/record/R in GLOB.data_core.medical)
|
||||
if((lowertext(R.fields["name"]) == t1 || t1 == lowertext(R.fields["id"]) || t1 == lowertext(R.fields["b_dna"])))
|
||||
src.active2 = R
|
||||
active2 = R
|
||||
else
|
||||
//Foreach continue //goto(3229)
|
||||
if(!( src.active2 ))
|
||||
src.temp = text("Could not locate record [].", sanitize(t1))
|
||||
if(!( active2 ))
|
||||
temp = text("Could not locate record [].", sanitize(t1))
|
||||
else
|
||||
for(var/datum/data/record/E in GLOB.data_core.general)
|
||||
if((E.fields["name"] == src.active2.fields["name"] || E.fields["id"] == src.active2.fields["id"]))
|
||||
src.active1 = E
|
||||
if((E.fields["name"] == active2.fields["name"] || E.fields["id"] == active2.fields["id"]))
|
||||
active1 = E
|
||||
else
|
||||
//Foreach continue //goto(3334)
|
||||
src.screen = 4
|
||||
screen = 4
|
||||
|
||||
else if(href_list["print_p"])
|
||||
if(!( src.printing ))
|
||||
src.printing = 1
|
||||
if(!( printing ))
|
||||
printing = 1
|
||||
GLOB.data_core.medicalPrintCount++
|
||||
playsound(loc, 'sound/items/poster_being_created.ogg', 100, 1)
|
||||
sleep(30)
|
||||
var/obj/item/paper/P = new /obj/item/paper( src.loc )
|
||||
var/obj/item/paper/P = new /obj/item/paper( loc )
|
||||
P.info = "<CENTER><B>Medical Record - (MR-[GLOB.data_core.medicalPrintCount])</B></CENTER><BR>"
|
||||
if(active1 in GLOB.data_core.general)
|
||||
P.info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>", src.active1.fields["name"], src.active1.fields["id"], src.active1.fields["sex"], src.active1.fields["age"])
|
||||
P.info += text("Name: [] ID: []<BR>\nGender: []<BR>\nAge: []<BR>", active1.fields["name"], active1.fields["id"], active1.fields["gender"], active1.fields["age"])
|
||||
P.info += "\nSpecies: [active1.fields["species"]]<BR>"
|
||||
P.info += text("\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", src.active1.fields["fingerprint"], src.active1.fields["p_stat"], src.active1.fields["m_stat"])
|
||||
P.info += text("\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"])
|
||||
else
|
||||
P.info += "<B>General Record Lost!</B><BR>"
|
||||
if(active2 in GLOB.data_core.medical)
|
||||
P.info += text("<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: []<BR>\nDNA: []<BR>\n<BR>\nMinor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nMajor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nAllergies: []<BR>\nDetails: []<BR>\n<BR>\nCurrent Diseases: [] (per disease info placed in log/comment section)<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", src.active2.fields["blood_type"], src.active2.fields["b_dna"], src.active2.fields["mi_dis"], src.active2.fields["mi_dis_d"], src.active2.fields["ma_dis"], src.active2.fields["ma_dis_d"], src.active2.fields["alg"], src.active2.fields["alg_d"], src.active2.fields["cdi"], src.active2.fields["cdi_d"], src.active2.fields["notes"])
|
||||
P.info += text("<BR>\n<CENTER><B>Medical Data</B></CENTER><BR>\nBlood Type: []<BR>\nDNA: []<BR>\n<BR>\nMinor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nMajor Disabilities: []<BR>\nDetails: []<BR>\n<BR>\nAllergies: []<BR>\nDetails: []<BR>\n<BR>\nCurrent Diseases: [] (per disease info placed in log/comment section)<BR>\nDetails: []<BR>\n<BR>\nImportant Notes:<BR>\n\t[]<BR>\n<BR>\n<CENTER><B>Comments/Log</B></CENTER><BR>", active2.fields["blood_type"], active2.fields["b_dna"], active2.fields["mi_dis"], active2.fields["mi_dis_d"], active2.fields["ma_dis"], active2.fields["ma_dis_d"], active2.fields["alg"], active2.fields["alg_d"], active2.fields["cdi"], active2.fields["cdi_d"], active2.fields["notes"])
|
||||
var/counter = 1
|
||||
while(src.active2.fields[text("com_[]", counter)])
|
||||
P.info += text("[]<BR>", src.active2.fields[text("com_[]", counter)])
|
||||
while(active2.fields[text("com_[]", counter)])
|
||||
P.info += text("[]<BR>", active2.fields[text("com_[]", counter)])
|
||||
counter++
|
||||
P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, src.active1.fields["name"])
|
||||
P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, active1.fields["name"])
|
||||
else
|
||||
P.info += "<B>Medical Record Lost!</B><BR>"
|
||||
P.name = text("MR-[] '[]'", GLOB.data_core.medicalPrintCount, "Record Lost")
|
||||
P.info += "</TT>"
|
||||
src.printing = null
|
||||
P.update_icon()
|
||||
printing = null
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
add_fingerprint(usr)
|
||||
updateUsrDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/med_data/emp_act(severity)
|
||||
@@ -560,11 +550,11 @@
|
||||
switch(rand(1,6))
|
||||
if(1)
|
||||
if(prob(10))
|
||||
R.fields["name"] = random_unique_lizard_name(R.fields["sex"],1)
|
||||
R.fields["name"] = random_unique_lizard_name(R.fields["gender"],1)
|
||||
else
|
||||
R.fields["name"] = random_unique_name(R.fields["sex"],1)
|
||||
R.fields["name"] = random_unique_name(R.fields["gender"],1)
|
||||
if(2)
|
||||
R.fields["sex"] = pick("Male", "Female")
|
||||
R.fields["gender"] = pick("Male", "Female", "Other")
|
||||
if(3)
|
||||
R.fields["age"] = rand(AGE_MIN, AGE_MAX)
|
||||
if(4)
|
||||
@@ -583,7 +573,7 @@
|
||||
if(user)
|
||||
if(message)
|
||||
if(authenticated)
|
||||
if(user.canUseTopic(src))
|
||||
if(user.canUseTopic(src, BE_CLOSE))
|
||||
if(!record1 || record1 == active1)
|
||||
if(!record2 || record2 == active2)
|
||||
return 1
|
||||
|
||||
@@ -1,143 +1 @@
|
||||
/obj/machinery/computer/prisoner
|
||||
name = "prisoner management console"
|
||||
desc = "Used to manage tracking implants placed inside criminals."
|
||||
icon_screen = "explosive"
|
||||
icon_keyboard = "security_key"
|
||||
req_access = list(ACCESS_BRIG)
|
||||
var/id = 0
|
||||
var/temp = null
|
||||
var/status = 0
|
||||
var/timeleft = 60
|
||||
var/stop = 0
|
||||
var/screen = 0 // 0 - No Access Denied, 1 - Access allowed
|
||||
var/obj/item/card/id/prisoner/inserted_id
|
||||
circuit = /obj/item/circuitboard/computer/prisoner
|
||||
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/machinery/computer/prisoner/ui_interact(mob/user)
|
||||
. = ..()
|
||||
var/dat = ""
|
||||
if(screen == 0)
|
||||
dat += "<HR><A href='?src=[REF(src)];lock=1'>Unlock Console</A>"
|
||||
else if(screen == 1)
|
||||
dat += "<H3>Prisoner ID Management</H3>"
|
||||
if(inserted_id)
|
||||
dat += text("<A href='?src=[REF(src)];id=eject'>[inserted_id]</A><br>")
|
||||
dat += text("Collected Points: [inserted_id.points]. <A href='?src=[REF(src)];id=reset'>Reset.</A><br>")
|
||||
dat += text("Card goal: [inserted_id.goal]. <A href='?src=[REF(src)];id=setgoal'>Set </A><br>")
|
||||
dat += text("Space Law recommends quotas of 100 points per minute they would normally serve in the brig.<BR>")
|
||||
else
|
||||
dat += text("<A href='?src=[REF(src)];id=insert'>Insert Prisoner ID.</A><br>")
|
||||
dat += "<H3>Prisoner Implant Management</H3>"
|
||||
dat += "<HR>Chemical Implants<BR>"
|
||||
var/turf/Tr = null
|
||||
for(var/obj/item/implant/chem/C in GLOB.tracked_chem_implants)
|
||||
Tr = get_turf(C)
|
||||
if((Tr) && (Tr.z != src.z))
|
||||
continue//Out of range
|
||||
if(!C.imp_in)
|
||||
continue
|
||||
dat += "ID: [C.imp_in.name] | Remaining Units: [C.reagents.total_volume] <BR>"
|
||||
dat += "| Inject: "
|
||||
dat += "<A href='?src=[REF(src)];inject1=[REF(C)]'>(<font class='bad'>(1)</font>)</A>"
|
||||
dat += "<A href='?src=[REF(src)];inject5=[REF(C)]'>(<font class='bad'>(5)</font>)</A>"
|
||||
dat += "<A href='?src=[REF(src)];inject10=[REF(C)]'>(<font class='bad'>(10)</font>)</A><BR>"
|
||||
dat += "********************************<BR>"
|
||||
dat += "<HR>Tracking Implants<BR>"
|
||||
for(var/obj/item/implant/tracking/T in GLOB.tracked_implants)
|
||||
if(!isliving(T.imp_in))
|
||||
continue
|
||||
Tr = get_turf(T)
|
||||
if((Tr) && (Tr.z != src.z))
|
||||
continue//Out of range
|
||||
|
||||
var/loc_display = "Unknown"
|
||||
var/mob/living/M = T.imp_in
|
||||
if(is_station_level(Tr.z) && !isspaceturf(M.loc))
|
||||
var/turf/mob_loc = get_turf(M)
|
||||
loc_display = mob_loc.loc
|
||||
|
||||
dat += "ID: [T.imp_in.name] | Location: [loc_display]<BR>"
|
||||
dat += "<A href='?src=[REF(src)];warn=[REF(T)]'>(<font class='bad'><i>Message Holder</i></font>)</A> |<BR>"
|
||||
dat += "********************************<BR>"
|
||||
dat += "<HR><A href='?src=[REF(src)];lock=1'>Lock Console</A>"
|
||||
var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/prisoner/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/card/id))
|
||||
return attack_hand(user)
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/prisoner/process()
|
||||
if(!..())
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/computer/prisoner/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr))
|
||||
usr.set_machine(src)
|
||||
|
||||
if(href_list["id"])
|
||||
if(href_list["id"] =="insert" && !inserted_id)
|
||||
var/obj/item/card/id/prisoner/I = usr.is_holding_item_of_type(/obj/item/card/id/prisoner)
|
||||
if(I)
|
||||
if(!usr.transferItemToLoc(I, src))
|
||||
return
|
||||
inserted_id = I
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>No valid ID.</span>")
|
||||
else if(inserted_id)
|
||||
switch(href_list["id"])
|
||||
if("eject")
|
||||
inserted_id.forceMove(drop_location())
|
||||
inserted_id.verb_pickup()
|
||||
inserted_id = null
|
||||
if("reset")
|
||||
inserted_id.points = 0
|
||||
if("setgoal")
|
||||
var/num = round(input(usr, "Choose prisoner's goal:", "Input an Integer", null) as num|null)
|
||||
if(num >= 0)
|
||||
num = min(num,1000) //Cap the quota to the equivilent of 10 minutes.
|
||||
inserted_id.goal = num
|
||||
else if(href_list["inject1"])
|
||||
var/obj/item/implant/I = locate(href_list["inject1"]) in GLOB.tracked_chem_implants
|
||||
if(I && istype(I))
|
||||
I.activate(1)
|
||||
else if(href_list["inject5"])
|
||||
var/obj/item/implant/I = locate(href_list["inject5"]) in GLOB.tracked_chem_implants
|
||||
if(I && istype(I))
|
||||
I.activate(5)
|
||||
|
||||
else if(href_list["inject10"])
|
||||
var/obj/item/implant/I = locate(href_list["inject10"]) in GLOB.tracked_chem_implants
|
||||
if(I && istype(I))
|
||||
I.activate(10)
|
||||
|
||||
else if(href_list["lock"])
|
||||
if(src.allowed(usr))
|
||||
screen = !screen
|
||||
else
|
||||
to_chat(usr, "Unauthorized Access.")
|
||||
|
||||
else if(href_list["warn"])
|
||||
var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN)
|
||||
if(!warning)
|
||||
return
|
||||
var/obj/item/implant/I = locate(href_list["warn"]) in GLOB.tracked_implants
|
||||
if(I && istype(I) && I.imp_in)
|
||||
var/mob/living/R = I.imp_in
|
||||
to_chat(R, "<span class='italics'>You hear a voice in your head saying: '[warning]'</span>")
|
||||
log_directed_talk(usr, R, warning, LOG_SAY, "implant message")
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
/obj/machinery/computer/prisoner
|
||||
var/obj/item/card/id/prisoner/contained_id
|
||||
|
||||
/obj/machinery/computer/prisoner/Destroy()
|
||||
if(contained_id)
|
||||
contained_id.forceMove(get_turf(src))
|
||||
return ..()
|
||||
|
||||
|
||||
/obj/machinery/computer/prisoner/examine(mob/user)
|
||||
. = ..()
|
||||
if(contained_id)
|
||||
. += "<span class='notice'><b>Alt-click</b> to eject the ID card.</span>"
|
||||
|
||||
|
||||
|
||||
/obj/machinery/computer/prisoner/AltClick(mob/user)
|
||||
id_eject(user)
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/prisoner/proc/id_insert(mob/user, obj/item/card/id/prisoner/P)
|
||||
if(istype(P))
|
||||
if(contained_id)
|
||||
to_chat(user, "<span class='warning'>There's already an ID card in the console!</span>")
|
||||
return
|
||||
if(!user.transferItemToLoc(P, src))
|
||||
return
|
||||
contained_id = P
|
||||
user.visible_message("<span class='notice'>[user] inserts an ID card into the console.</span>", \
|
||||
"<span class='notice'>You insert the ID card into the console.</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/computer/prisoner/proc/id_eject(mob/user)
|
||||
if(!contained_id)
|
||||
to_chat(user, "<span class='warning'>There's no ID card in the console!</span>")
|
||||
return
|
||||
else
|
||||
contained_id.forceMove(drop_location())
|
||||
if(!issilicon(user) && Adjacent(user))
|
||||
user.put_in_hands(contained_id)
|
||||
contained_id = null
|
||||
user.visible_message("<span class='notice'>[user] gets an ID card from the console.</span>", \
|
||||
"<span class='notice'>You get the ID card from the console.</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, FALSE)
|
||||
updateUsrDialog()
|
||||
|
||||
/obj/machinery/computer/prisoner/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/card/id/prisoner))
|
||||
id_insert(user, I)
|
||||
else
|
||||
return ..()
|
||||
@@ -0,0 +1,142 @@
|
||||
//computer that handle the points and teleports the prisoner
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer
|
||||
name = "labor camp teleporter console"
|
||||
desc = "Used to send criminals to the Labor Camp."
|
||||
icon_screen = "explosive"
|
||||
icon_keyboard = "security_key"
|
||||
req_access = list(ACCESS_ARMORY)
|
||||
circuit = /obj/item/circuitboard/computer/gulag_teleporter_console
|
||||
var/default_goal = 200
|
||||
var/obj/machinery/gulag_teleporter/teleporter = null
|
||||
var/obj/structure/gulag_beacon/beacon = null
|
||||
var/mob/living/carbon/human/prisoner = null
|
||||
var/datum/data/record/temporary_record = null
|
||||
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/Initialize()
|
||||
. = ..()
|
||||
scan_machinery()
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/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, "gulag_console", name, 455, 440, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
|
||||
var/list/prisoner_list = list()
|
||||
var/can_teleport = FALSE
|
||||
|
||||
if(teleporter && (teleporter.occupant && ishuman(teleporter.occupant)))
|
||||
prisoner = teleporter.occupant
|
||||
prisoner_list["name"] = prisoner.real_name
|
||||
if(contained_id)
|
||||
can_teleport = TRUE
|
||||
if(!isnull(GLOB.data_core.general))
|
||||
for(var/r in GLOB.data_core.security)
|
||||
var/datum/data/record/R = r
|
||||
if(R.fields["name"] == prisoner_list["name"])
|
||||
temporary_record = R
|
||||
prisoner_list["crimstat"] = temporary_record.fields["criminal"]
|
||||
|
||||
data["prisoner"] = prisoner_list
|
||||
|
||||
if(teleporter)
|
||||
data["teleporter"] = teleporter
|
||||
data["teleporter_location"] = "([teleporter.x], [teleporter.y], [teleporter.z])"
|
||||
data["teleporter_lock"] = teleporter.locked
|
||||
data["teleporter_state_open"] = teleporter.state_open
|
||||
if(beacon)
|
||||
data["beacon"] = beacon
|
||||
data["beacon_location"] = "([beacon.x], [beacon.y], [beacon.z])"
|
||||
if(contained_id)
|
||||
data["id"] = contained_id
|
||||
data["id_name"] = contained_id.registered_name
|
||||
data["goal"] = contained_id.goal
|
||||
data["can_teleport"] = can_teleport
|
||||
|
||||
return data
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/ui_act(action, list/params)
|
||||
if(isliving(usr))
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE)
|
||||
if(..())
|
||||
return
|
||||
if(!allowed(usr))
|
||||
to_chat(usr, "<span class='warning'>Access denied.</span>")
|
||||
return
|
||||
switch(action)
|
||||
if("scan_teleporter")
|
||||
teleporter = findteleporter()
|
||||
if("scan_beacon")
|
||||
beacon = findbeacon()
|
||||
if("handle_id")
|
||||
if(contained_id)
|
||||
id_eject(usr)
|
||||
else
|
||||
id_insert(usr)
|
||||
if("set_goal")
|
||||
var/new_goal = input("Set the amount of points:", "Points", contained_id.goal) as num|null
|
||||
if(!isnum(new_goal))
|
||||
return
|
||||
if(!new_goal)
|
||||
new_goal = default_goal
|
||||
if (new_goal > 1000)
|
||||
to_chat(usr, "The entered amount of points is too large. Points have instead been set to the maximum allowed amount.")
|
||||
contained_id.goal = CLAMP(new_goal, 0, 1000) //maximum 1000 points
|
||||
if("toggle_open")
|
||||
if(teleporter.locked)
|
||||
to_chat(usr, "The teleporter is locked")
|
||||
return
|
||||
teleporter.toggle_open()
|
||||
if("teleporter_lock")
|
||||
if(teleporter.state_open)
|
||||
to_chat(usr, "Close the teleporter before locking!")
|
||||
return
|
||||
teleporter.locked = !teleporter.locked
|
||||
if("teleport")
|
||||
if(!teleporter || !beacon)
|
||||
return
|
||||
addtimer(CALLBACK(src, .proc/teleport, usr), 5)
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/scan_machinery()
|
||||
teleporter = findteleporter()
|
||||
beacon = findbeacon()
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/findteleporter()
|
||||
var/obj/machinery/gulag_teleporter/teleporterf = null
|
||||
|
||||
for(var/direction in GLOB.cardinals)
|
||||
teleporterf = locate(/obj/machinery/gulag_teleporter, get_step(src, direction))
|
||||
if(teleporterf && teleporterf.is_operational())
|
||||
return teleporterf
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/findbeacon()
|
||||
return locate(/obj/structure/gulag_beacon)
|
||||
|
||||
/obj/machinery/computer/prisoner/gulag_teleporter_computer/proc/teleport(mob/user)
|
||||
if(!contained_id) //incase the ID was removed after the transfer timer was set.
|
||||
say("Warning: Unable to transfer prisoner without a valid Prisoner ID inserted!")
|
||||
return
|
||||
var/id_goal_not_set
|
||||
if(!contained_id.goal)
|
||||
id_goal_not_set = TRUE
|
||||
contained_id.goal = default_goal
|
||||
say("[contained_id]'s ID card goal defaulting to [contained_id.goal] points.")
|
||||
log_game("[key_name(user)] teleported [key_name(prisoner)] to the Labor Camp [COORD(beacon)] for [id_goal_not_set ? "default goal of ":""][contained_id.goal] points.")
|
||||
teleporter.handle_prisoner(contained_id, temporary_record)
|
||||
playsound(src, 'sound/weapons/emitter.ogg', 50, 1)
|
||||
prisoner.forceMove(get_turf(beacon))
|
||||
prisoner.Stun(40) // small travel dizziness
|
||||
to_chat(prisoner, "<span class='warning'>The teleportation makes you a little dizzy.</span>")
|
||||
new /obj/effect/particle_effect/sparks(get_turf(prisoner))
|
||||
playsound(src, "sparks", 50, 1)
|
||||
if(teleporter.locked)
|
||||
teleporter.locked = FALSE
|
||||
teleporter.toggle_open()
|
||||
contained_id = null
|
||||
temporary_record = null
|
||||
@@ -0,0 +1,139 @@
|
||||
|
||||
/obj/machinery/computer/prisoner/management
|
||||
name = "prisoner management console"
|
||||
desc = "Used to manage tracking implants placed inside criminals."
|
||||
icon_screen = "explosive"
|
||||
icon_keyboard = "security_key"
|
||||
req_access = list(ACCESS_BRIG)
|
||||
var/id = 0
|
||||
var/temp = null
|
||||
var/status = 0
|
||||
var/timeleft = 60
|
||||
var/stop = 0
|
||||
var/screen = 0 // 0 - No Access Denied, 1 - Access allowed
|
||||
circuit = /obj/item/circuitboard/computer/prisoner
|
||||
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/machinery/computer/prisoner/management/ui_interact(mob/user)
|
||||
. = ..()
|
||||
if(isliving(user))
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE)
|
||||
var/dat = ""
|
||||
if(screen == 0)
|
||||
dat += "<HR><A href='?src=[REF(src)];lock=1'>{Log In}</A>"
|
||||
else if(screen == 1)
|
||||
dat += "<H3>Prisoner ID Management</H3>"
|
||||
if(contained_id)
|
||||
dat += text("<A href='?src=[REF(src)];id=eject'>[contained_id]</A><br>")
|
||||
dat += text("Collected Points: [contained_id.points]. <A href='?src=[REF(src)];id=reset'>Reset.</A><br>")
|
||||
dat += text("Card goal: [contained_id.goal]. <A href='?src=[REF(src)];id=setgoal'>Set </A><br>")
|
||||
dat += text("Space Law recommends quotas of 100 points per minute they would normally serve in the brig.<BR>")
|
||||
else
|
||||
dat += text("<A href='?src=[REF(src)];id=insert'>Insert Prisoner ID.</A><br>")
|
||||
dat += "<H3>Prisoner Implant Management</H3>"
|
||||
dat += "<HR>Chemical Implants<BR>"
|
||||
var/turf/Tr = null
|
||||
for(var/obj/item/implant/chem/C in GLOB.tracked_chem_implants)
|
||||
Tr = get_turf(C)
|
||||
if((Tr) && (Tr.z != src.z))
|
||||
continue//Out of range
|
||||
if(!C.imp_in)
|
||||
continue
|
||||
dat += "ID: [C.imp_in.name] | Remaining Units: [C.reagents.total_volume] <BR>"
|
||||
dat += "| Inject: "
|
||||
dat += "<A href='?src=[REF(src)];inject1=[REF(C)]'>(<font class='bad'>(1)</font>)</A>"
|
||||
dat += "<A href='?src=[REF(src)];inject5=[REF(C)]'>(<font class='bad'>(5)</font>)</A>"
|
||||
dat += "<A href='?src=[REF(src)];inject10=[REF(C)]'>(<font class='bad'>(10)</font>)</A><BR>"
|
||||
dat += "********************************<BR>"
|
||||
dat += "<HR>Tracking Implants<BR>"
|
||||
for(var/obj/item/implant/tracking/T in GLOB.tracked_implants)
|
||||
if(!isliving(T.imp_in))
|
||||
continue
|
||||
Tr = get_turf(T)
|
||||
if((Tr) && (Tr.z != src.z))
|
||||
continue//Out of range
|
||||
|
||||
var/loc_display = "Unknown"
|
||||
var/mob/living/M = T.imp_in
|
||||
if(is_station_level(Tr.z) && !isspaceturf(M.loc))
|
||||
var/turf/mob_loc = get_turf(M)
|
||||
loc_display = mob_loc.loc
|
||||
|
||||
dat += "ID: [T.imp_in.name] | Location: [loc_display]<BR>"
|
||||
dat += "<A href='?src=[REF(src)];warn=[REF(T)]'>(<font class='bad'><i>Message Holder</i></font>)</A> |<BR>"
|
||||
dat += "********************************<BR>"
|
||||
dat += "<HR><A href='?src=[REF(src)];lock=1'>{Log Out}</A>"
|
||||
var/datum/browser/popup = new(user, "computer", "Prisoner Management Console", 400, 500)
|
||||
popup.set_content(dat)
|
||||
popup.set_title_image(user.browse_rsc_icon(src.icon, src.icon_state))
|
||||
popup.open()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/prisoner/management/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/card/id))
|
||||
if(screen)
|
||||
id_insert(user)
|
||||
else
|
||||
to_chat(user, "<span class='danger'>Unauthorized access.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/machinery/computer/prisoner/management/process()
|
||||
if(!..())
|
||||
src.updateDialog()
|
||||
return
|
||||
|
||||
/obj/machinery/computer/prisoner/management/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)) || issilicon(usr))
|
||||
usr.set_machine(src)
|
||||
|
||||
if(href_list["id"])
|
||||
if(href_list["id"] =="insert" && !contained_id)
|
||||
id_insert(usr)
|
||||
else if(contained_id)
|
||||
switch(href_list["id"])
|
||||
if("eject")
|
||||
id_eject(usr)
|
||||
if("reset")
|
||||
contained_id.points = 0
|
||||
if("setgoal")
|
||||
var/num = round(input(usr, "Choose prisoner's goal:", "Input an Integer", null) as num|null)
|
||||
if(num >= 0)
|
||||
num = min(num,1000) //Cap the quota to the equivilent of 10 minutes.
|
||||
contained_id.goal = num
|
||||
else if(href_list["inject1"])
|
||||
var/obj/item/implant/I = locate(href_list["inject1"]) in GLOB.tracked_chem_implants
|
||||
if(I && istype(I))
|
||||
I.activate(1)
|
||||
else if(href_list["inject5"])
|
||||
var/obj/item/implant/I = locate(href_list["inject5"]) in GLOB.tracked_chem_implants
|
||||
if(I && istype(I))
|
||||
I.activate(5)
|
||||
else if(href_list["inject10"])
|
||||
var/obj/item/implant/I = locate(href_list["inject10"]) in GLOB.tracked_chem_implants
|
||||
if(I && istype(I))
|
||||
I.activate(10)
|
||||
|
||||
else if(href_list["lock"])
|
||||
if(allowed(usr))
|
||||
screen = !screen
|
||||
playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE)
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Unauthorized access.</span>")
|
||||
|
||||
else if(href_list["warn"])
|
||||
var/warning = copytext(sanitize(input(usr,"Message:","Enter your message here!","")),1,MAX_MESSAGE_LEN)
|
||||
if(!warning)
|
||||
return
|
||||
var/obj/item/implant/I = locate(href_list["warn"]) in GLOB.tracked_implants
|
||||
if(I && istype(I) && I.imp_in)
|
||||
var/mob/living/R = I.imp_in
|
||||
to_chat(R, "<span class='italics'>You hear a voice in your head saying: '[warning]'</span>")
|
||||
log_directed_talk(usr, R, warning, LOG_SAY, "implant message")
|
||||
|
||||
src.add_fingerprint(usr)
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
@@ -5,13 +5,10 @@
|
||||
icon_keyboard = "security_key"
|
||||
req_one_access = list(ACCESS_SECURITY, ACCESS_FORENSICS_LOCKERS)
|
||||
circuit = /obj/item/circuitboard/computer/secure_data
|
||||
var/obj/item/card/id/scan = null
|
||||
var/authenticated = null
|
||||
var/rank = null
|
||||
var/screen = null
|
||||
var/datum/data/record/active1 = null
|
||||
var/datum/data/record/active2 = null
|
||||
var/a_id = null
|
||||
var/temp = null
|
||||
var/printing = null
|
||||
var/can_change_id = 0
|
||||
@@ -23,11 +20,6 @@
|
||||
|
||||
light_color = LIGHT_COLOR_RED
|
||||
|
||||
/obj/machinery/computer/secure_data/examine(mob/user)
|
||||
. = ..()
|
||||
if(scan)
|
||||
. += "<span class='notice'>Alt-click to eject the ID card.</span>"
|
||||
|
||||
/obj/machinery/computer/secure_data/syndie
|
||||
icon_keyboard = "syndie_key"
|
||||
|
||||
@@ -40,32 +32,19 @@
|
||||
clockwork = TRUE //it'd look weird
|
||||
pass_flags = PASSTABLE
|
||||
|
||||
/obj/machinery/computer/secure_data/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/card/id))
|
||||
if(!scan)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
scan = O
|
||||
to_chat(user, "<span class='notice'>You insert [O].</span>")
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
updateUsrDialog()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>There's already an ID card in the console.</span>")
|
||||
else
|
||||
return ..()
|
||||
|
||||
//Someone needs to break down the dat += into chunks instead of long ass lines.
|
||||
/obj/machinery/computer/secure_data/ui_interact(mob/user)
|
||||
. = ..()
|
||||
playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE)
|
||||
if(src.z > 6)
|
||||
to_chat(user, "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!")
|
||||
return
|
||||
var/dat
|
||||
|
||||
if(temp)
|
||||
dat = text("<TT>[]</TT><BR><BR><A href='?src=[REF(src)];choice=Clear Screen'>Clear Screen</A>", temp)
|
||||
dat = "<TT>[temp]</TT><BR><BR><A href='?src=[REF(src)];choice=Clear Screen'>Clear Screen</A>"
|
||||
else
|
||||
dat = text("Confirm Identity: <A href='?src=[REF(src)];choice=Confirm Identity'>[]</A><HR>", (scan ? text("[]", scan.name) : "----------"))
|
||||
dat = ""
|
||||
if(authenticated)
|
||||
switch(screen)
|
||||
if(1)
|
||||
@@ -190,7 +169,7 @@
|
||||
dat += {"<table><tr><td><table>
|
||||
<tr><td>Name:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=name'> [active1.fields["name"]] </A></td></tr>
|
||||
<tr><td>ID:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=id'> [active1.fields["id"]] </A></td></tr>
|
||||
<tr><td>Sex:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=sex'> [active1.fields["sex"]] </A></td></tr>
|
||||
<tr><td>Gender:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=gender'> [active1.fields["gender"]] </A></td></tr>
|
||||
<tr><td>Age:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=age'> [active1.fields["age"]] </A></td></tr>"}
|
||||
dat += "<tr><td>Species:</td><td><A href ='?src=[REF(src)];choice=Edit Field;field=species'> [active1.fields["species"]] </A></td></tr>"
|
||||
dat += {"<tr><td>Rank:</td><td><A href='?src=[REF(src)];choice=Edit Field;field=rank'> [active1.fields["rank"]] </A></td></tr>
|
||||
@@ -309,36 +288,38 @@ What a mess.*/
|
||||
active1 = null
|
||||
active2 = null
|
||||
|
||||
if("Confirm Identity")
|
||||
eject_id(usr)
|
||||
|
||||
if("Log Out")
|
||||
authenticated = null
|
||||
screen = null
|
||||
active1 = null
|
||||
active2 = null
|
||||
|
||||
playsound(src, 'sound/machines/terminal_off.ogg', 50, FALSE)
|
||||
|
||||
if("Log In")
|
||||
if(issilicon(usr))
|
||||
var/mob/living/silicon/borg = usr
|
||||
var/mob/M = usr
|
||||
var/obj/item/card/id/I = M.get_idcard(TRUE)
|
||||
if(issilicon(M))
|
||||
var/mob/living/silicon/borg = M
|
||||
active1 = null
|
||||
active2 = null
|
||||
authenticated = borg.name
|
||||
rank = "AI"
|
||||
screen = 1
|
||||
else if(IsAdminGhost(usr))
|
||||
else if(IsAdminGhost(M))
|
||||
active1 = null
|
||||
active2 = null
|
||||
authenticated = usr.client.holder.admin_signature
|
||||
authenticated = M.client.holder.admin_signature
|
||||
rank = "Central Command"
|
||||
screen = 1
|
||||
else if(istype(scan, /obj/item/card/id))
|
||||
else if(I && check_access(I))
|
||||
active1 = null
|
||||
active2 = null
|
||||
if(check_access(scan))
|
||||
authenticated = scan.registered_name
|
||||
rank = scan.assignment
|
||||
screen = 1
|
||||
authenticated = I.registered_name
|
||||
rank = I.assignment
|
||||
screen = 1
|
||||
else
|
||||
to_chat(usr, "<span class='danger'>Unauthorized Access.</span>")
|
||||
playsound(src, 'sound/machines/terminal_on.ogg', 50, FALSE)
|
||||
//RECORD FUNCTIONS
|
||||
if("Record Maintenance")
|
||||
screen = 2
|
||||
@@ -346,16 +327,14 @@ What a mess.*/
|
||||
active2 = null
|
||||
|
||||
if("Browse Record")
|
||||
var/datum/data/record/R = locate(href_list["d_rec"])
|
||||
var/S = locate(href_list["d_rec"])
|
||||
if(!( GLOB.data_core.general.Find(R) ))
|
||||
var/datum/data/record/R = locate(href_list["d_rec"]) in GLOB.data_core.general
|
||||
if(!R)
|
||||
temp = "Record Not Found!"
|
||||
else
|
||||
active1 = active2 = R
|
||||
for(var/datum/data/record/E in GLOB.data_core.security)
|
||||
if((E.fields["name"] == R.fields["name"] || E.fields["id"] == R.fields["id"]))
|
||||
S = E
|
||||
active1 = R
|
||||
active2 = S
|
||||
active2 = E
|
||||
screen = 3
|
||||
|
||||
|
||||
@@ -368,7 +347,7 @@ What a mess.*/
|
||||
var/obj/item/paper/P = new /obj/item/paper( loc )
|
||||
P.info = "<CENTER><B>Security Record - (SR-[GLOB.data_core.securityPrintCount])</B></CENTER><BR>"
|
||||
if((istype(active1, /datum/data/record) && GLOB.data_core.general.Find(active1)))
|
||||
P.info += text("Name: [] ID: []<BR>\nSex: []<BR>\nAge: []<BR>", active1.fields["name"], active1.fields["id"], active1.fields["sex"], active1.fields["age"])
|
||||
P.info += text("Name: [] ID: []<BR>\nGender: []<BR>\nAge: []<BR>", active1.fields["name"], active1.fields["id"], active1.fields["gender"], active1.fields["age"])
|
||||
P.info += "\nSpecies: [active1.fields["species"]]<BR>"
|
||||
P.info += text("\nFingerprint: []<BR>\nPhysical Status: []<BR>\nMental Status: []<BR>", active1.fields["fingerprint"], active1.fields["p_stat"], active1.fields["m_stat"])
|
||||
else
|
||||
@@ -419,6 +398,7 @@ What a mess.*/
|
||||
P.info += "<B>Security Record Lost!</B><BR>"
|
||||
P.name = text("SR-[] '[]'", GLOB.data_core.securityPrintCount, "Record Lost")
|
||||
P.info += "</TT>"
|
||||
P.update_icon()
|
||||
printing = null
|
||||
if("Print Poster")
|
||||
if(!( printing ))
|
||||
@@ -512,7 +492,7 @@ What a mess.*/
|
||||
G.fields["name"] = "New Record"
|
||||
G.fields["id"] = "[num2hex(rand(1, 1.6777215E7), 6)]"
|
||||
G.fields["rank"] = "Unassigned"
|
||||
G.fields["sex"] = "Male"
|
||||
G.fields["gender"] = "Male"
|
||||
G.fields["age"] = "Unknown"
|
||||
G.fields["species"] = "Human"
|
||||
G.fields["photo_front"] = new /icon()
|
||||
@@ -584,12 +564,14 @@ What a mess.*/
|
||||
if(!canUseSecurityRecordsConsole(usr, t1, a1))
|
||||
return
|
||||
active1.fields["fingerprint"] = t1
|
||||
if("sex")
|
||||
if("gender")
|
||||
if(istype(active1, /datum/data/record))
|
||||
if(active1.fields["sex"] == "Male")
|
||||
active1.fields["sex"] = "Female"
|
||||
if(active1.fields["gender"] == "Male")
|
||||
active1.fields["gender"] = "Female"
|
||||
else if(active1.fields["gender"] == "Female")
|
||||
active1.fields["gender"] = "Other"
|
||||
else
|
||||
active1.fields["sex"] = "Male"
|
||||
active1.fields["gender"] = "Male"
|
||||
if("age")
|
||||
if(istype(active1, /datum/data/record))
|
||||
var/t1 = input("Please input age:", "Secure. records", active1.fields["age"], null) as num
|
||||
@@ -767,19 +749,14 @@ What a mess.*/
|
||||
P = user.get_active_held_item()
|
||||
return P
|
||||
|
||||
/obj/machinery/computer/secure_data/proc/print_photo(icon/temp, name)
|
||||
/obj/machinery/computer/secure_data/proc/print_photo(icon/temp, person_name)
|
||||
if (printing)
|
||||
return
|
||||
printing = TRUE
|
||||
sleep(20)
|
||||
var/obj/item/photo/P = new/obj/item/photo(drop_location())
|
||||
var/icon/small_img = icon(temp)
|
||||
var/icon/ic = icon('icons/obj/items_and_weapons.dmi',"photo")
|
||||
small_img.Scale(8, 8)
|
||||
ic.Blend(small_img,ICON_OVERLAY, 13, 13)
|
||||
P.icon = ic
|
||||
P.picture.picture_image = temp
|
||||
P.desc = "The photo on file for [name]."
|
||||
var/datum/picture/toEmbed = new(name = person_name, desc = "The photo on file for [person_name].", image = temp)
|
||||
P.set_picture(toEmbed, TRUE, TRUE)
|
||||
P.pixel_x = rand(-10, 10)
|
||||
P.pixel_y = rand(-10, 10)
|
||||
printing = FALSE
|
||||
@@ -799,7 +776,7 @@ What a mess.*/
|
||||
else
|
||||
R.fields["name"] = "[pick(pick(GLOB.first_names_male), pick(GLOB.first_names_female))] [pick(GLOB.last_names)]"
|
||||
if(2)
|
||||
R.fields["sex"] = pick("Male", "Female")
|
||||
R.fields["gender"] = pick("Male", "Female", "Other")
|
||||
if(3)
|
||||
R.fields["age"] = rand(5, 85)
|
||||
if(4)
|
||||
@@ -823,30 +800,10 @@ What a mess.*/
|
||||
/obj/machinery/computer/secure_data/proc/canUseSecurityRecordsConsole(mob/user, message1 = 0, record1, record2)
|
||||
if(user)
|
||||
if(authenticated)
|
||||
if(user.canUseTopic(src))
|
||||
if(user.canUseTopic(src, BE_CLOSE))
|
||||
if(!trim(message1))
|
||||
return 0
|
||||
if(!record1 || record1 == active1)
|
||||
if(!record2 || record2 == active2)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/machinery/computer/secure_data/AltClick(mob/user)
|
||||
if(user.canUseTopic(src))
|
||||
eject_id(user)
|
||||
|
||||
/obj/machinery/computer/secure_data/proc/eject_id(mob/user)
|
||||
if(scan)
|
||||
scan.forceMove(drop_location())
|
||||
if(!issilicon(user) && Adjacent(user))
|
||||
user.put_in_hands(scan)
|
||||
scan = null
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
else //switching the ID with the one you're holding
|
||||
if(issilicon(user) || !Adjacent(user))
|
||||
return
|
||||
var/obj/item/card/id/held_id = user.is_holding_item_of_type(/obj/item/card/id)
|
||||
if(QDELETED(held_id) || !user.transferItemToLoc(held_id, src))
|
||||
return
|
||||
scan = held_id
|
||||
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
|
||||
|
||||
@@ -33,7 +33,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
if(uplinkholder)
|
||||
to_chat(user, "<span class='notice'>[src] already has an uplink in it.</span>")
|
||||
return
|
||||
GET_COMPONENT_FROM(hidden_uplink, /datum/component/uplink, I)
|
||||
var/datum/component/uplink/hidden_uplink = I.GetComponent(/datum/component/uplink)
|
||||
if(hidden_uplink)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
@@ -57,7 +57,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/donateTC(amt, addLog = 1)
|
||||
if(uplinkholder && linkedboss)
|
||||
GET_COMPONENT_FROM(hidden_uplink, /datum/component/uplink, uplinkholder)
|
||||
var/datum/component/uplink/hidden_uplink = uplinkholder.GetComponent(/datum/component/uplink)
|
||||
if(amt < 0)
|
||||
linkedboss.storedcrystals += hidden_uplink.telecrystals
|
||||
if(addLog)
|
||||
@@ -71,7 +71,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
|
||||
/obj/machinery/computer/telecrystals/uplinker/proc/giveTC(amt, addLog = 1)
|
||||
if(uplinkholder && linkedboss)
|
||||
GET_COMPONENT_FROM(hidden_uplink, /datum/component/uplink, uplinkholder)
|
||||
var/datum/component/uplink/hidden_uplink = uplinkholder.GetComponent(/datum/component/uplink)
|
||||
if(amt < 0)
|
||||
hidden_uplink.telecrystals += linkedboss.storedcrystals
|
||||
if(addLog)
|
||||
@@ -94,7 +94,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
dat += "No linked management consoles detected. Scan for uplink stations using the management console.<BR><BR>"
|
||||
|
||||
if(uplinkholder)
|
||||
GET_COMPONENT_FROM(hidden_uplink, /datum/component/uplink, uplinkholder)
|
||||
var/datum/component/uplink/hidden_uplink = uplinkholder.GetComponent(/datum/component/uplink)
|
||||
dat += "[hidden_uplink.telecrystals] telecrystals remain in this uplink.<BR>"
|
||||
if(linkedboss)
|
||||
dat += "Donate TC: <a href='byond://?src=[REF(src)];donate=1'>1</a> | <a href='byond://?src=[REF(src)];donate=5'>5</a> | <a href='byond://?src=[REF(src)];donate=-1'>All</a>"
|
||||
@@ -170,7 +170,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
|
||||
for(var/obj/machinery/computer/telecrystals/uplinker/A in TCstations)
|
||||
dat += "[A.name] | "
|
||||
if(A.uplinkholder)
|
||||
GET_COMPONENT_FROM(hidden_uplink, /datum/component/uplink, A.uplinkholder)
|
||||
var/datum/component/uplink/hidden_uplink = A.uplinkholder.GetComponent(/datum/component/uplink)
|
||||
dat += "[hidden_uplink.telecrystals] telecrystals."
|
||||
if(storedcrystals)
|
||||
dat+= "<BR>Add TC: <a href ='?src=[REF(src)];target=[REF(A)];give=1'>1</a> | <a href ='?src=[REF(src)];target=[REF(A)];give=5'>5</a> | <a href ='?src=[REF(src)];target=[REF(A)];give=10'>10</a> | <a href ='?src=[REF(src)];target=[REF(A)];give=-1'>All</a>"
|
||||
|
||||
@@ -181,6 +181,9 @@
|
||||
if(component_check)
|
||||
P.play_tool_sound(src)
|
||||
var/obj/machinery/new_machine = new circuit.build_path(loc)
|
||||
if(new_machine.circuit)
|
||||
QDEL_NULL(new_machine.circuit)
|
||||
new_machine.circuit = circuit
|
||||
new_machine.setAnchored(anchored)
|
||||
new_machine.on_construction()
|
||||
for(var/obj/O in new_machine.component_parts)
|
||||
@@ -189,9 +192,6 @@
|
||||
for(var/obj/O in src)
|
||||
O.moveToNullspace()
|
||||
new_machine.component_parts += O
|
||||
if(new_machine.circuit)
|
||||
QDEL_NULL(new_machine.circuit)
|
||||
new_machine.circuit = circuit
|
||||
circuit.moveToNullspace()
|
||||
new_machine.RefreshParts()
|
||||
qdel(src)
|
||||
|
||||
@@ -202,6 +202,8 @@
|
||||
for(var/i in 1 to 10)
|
||||
spawn_atom_to_turf(/obj/effect/temp_visual/hierophant/telegraph/edge, src, 1, FALSE)
|
||||
sleep(5)
|
||||
if(QDELETED(src))
|
||||
return
|
||||
|
||||
#define DISCO_INFENO_RANGE (rand(85, 115)*0.01)
|
||||
|
||||
@@ -364,7 +366,7 @@
|
||||
//for(var/mob/living/carbon/NS in rangers)
|
||||
// NS.resting = !NS.resting
|
||||
// NS.update_canmove()
|
||||
time--
|
||||
time--
|
||||
|
||||
/obj/machinery/jukebox/disco/proc/dance5(var/mob/living/M)
|
||||
animate(M, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0)
|
||||
@@ -430,6 +432,14 @@
|
||||
/obj/machinery/jukebox/disco/process()
|
||||
. = ..()
|
||||
if(active)
|
||||
for(var/mob/M in rangers)
|
||||
for(var/mob/living/M in range(10,src))
|
||||
if(!M.client || !(M.client.prefs.toggles & SOUND_INSTRUMENTS))
|
||||
continue
|
||||
if(!(M in rangers))
|
||||
rangers += M
|
||||
for(var/mob/living/M in rangers)
|
||||
if(get_dist(src,M) > 10)
|
||||
rangers -= M
|
||||
for(var/mob/living/M in rangers)
|
||||
if(prob(5+(allowed(M)*4)) && M.canmove)
|
||||
dance(M)
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
else //for simple_animals & borgs
|
||||
L.adjustBruteLoss(DOOR_CRUSH_DAMAGE)
|
||||
var/turf/location = get_turf(src)
|
||||
//add_blood doesn't work for borgs/xenos, but add_blood_floor does.
|
||||
//add_blood_DNA doesn't work for borgs/xenos, but add_blood_floor does.
|
||||
if(iscarbon(L))
|
||||
var/mob/living/carbon/C = L
|
||||
C.bleed(DOOR_CRUSH_DAMAGE)
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
if((stat & (NOPOWER|BROKEN)) || !anchored)
|
||||
return
|
||||
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
if(!materials.has_materials(using_materials))
|
||||
return // We require more minerals
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
|
||||
/obj/machinery/droneDispenser/attackby(obj/item/I, mob/living/user)
|
||||
if(istype(I, /obj/item/crowbar))
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.retrieve_all()
|
||||
I.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You retrieve the materials from [src].</span>")
|
||||
|
||||
@@ -58,8 +58,6 @@
|
||||
/obj/machinery/firealarm/update_icon()
|
||||
cut_overlays()
|
||||
SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays)
|
||||
var/area/A = src.loc
|
||||
A = A.loc
|
||||
|
||||
if(panel_open)
|
||||
icon_state = "fire_b[buildstage]"
|
||||
@@ -69,23 +67,32 @@
|
||||
icon_state = "firex"
|
||||
return
|
||||
|
||||
icon_state = "fire0"
|
||||
|
||||
if(stat & NOPOWER)
|
||||
icon_state = "fire0"
|
||||
return
|
||||
|
||||
if(is_station_level(z))
|
||||
add_overlay("overlay_[GLOB.security_level]")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "overlay_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
else
|
||||
add_overlay("overlay_[SEC_LEVEL_GREEN]")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "overlay_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
add_overlay("fire_overlay")
|
||||
|
||||
if(detecting)
|
||||
add_overlay("overlay_[A.fire ? "fire" : "clear"]")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "overlay_[A.fire ? "fire" : "clear"]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
if(is_station_level(z))
|
||||
add_overlay("fire_[GLOB.security_level]")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[GLOB.security_level]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
else
|
||||
add_overlay("overlay_fire")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "overlay_fire", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
add_overlay("fire_[SEC_LEVEL_GREEN]")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_[SEC_LEVEL_GREEN]", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
|
||||
var/area/A = src.loc
|
||||
A = A.loc
|
||||
|
||||
if(!detecting || !A.fire)
|
||||
add_overlay("fire_off")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_off", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
else if(obj_flags & EMAGGED)
|
||||
add_overlay("fire_emagged")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_emagged", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
else
|
||||
add_overlay("fire_on")
|
||||
SSvis_overlays.add_vis_overlay(src, icon, "fire_on", ABOVE_LIGHTING_LAYER, ABOVE_LIGHTING_PLANE, dir)
|
||||
|
||||
/obj/machinery/firealarm/emp_act(severity)
|
||||
. = ..()
|
||||
@@ -97,64 +104,55 @@
|
||||
alarm()
|
||||
|
||||
/obj/machinery/firealarm/emag_act(mob/user)
|
||||
. = ..()
|
||||
if(obj_flags & EMAGGED)
|
||||
return
|
||||
obj_flags |= EMAGGED
|
||||
update_icon()
|
||||
if(user)
|
||||
user.visible_message("<span class='warning'>Sparks fly out of [src]!</span>",
|
||||
"<span class='notice'>You emag [src], disabling its thermal sensors.</span>")
|
||||
playsound(src, "sparks", 50, 1)
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/firealarm/temperature_expose(datum/gas_mixture/air, temperature, volume)
|
||||
if((temperature > T0C + 200 || temperature < BODYTEMP_COLD_DAMAGE_LIMIT) && (last_alarm+FIREALARM_COOLDOWN < world.time) && !(obj_flags & EMAGGED) && detecting && !stat)
|
||||
alarm()
|
||||
..()
|
||||
|
||||
/obj/machinery/firealarm/proc/alarm()
|
||||
if(!is_operational() && (last_alarm+FIREALARM_COOLDOWN < world.time))
|
||||
/obj/machinery/firealarm/proc/alarm(mob/user)
|
||||
if(!is_operational() || (last_alarm+FIREALARM_COOLDOWN > world.time))
|
||||
return
|
||||
last_alarm = world.time
|
||||
var/area/A = get_area(src)
|
||||
A.firealert(src)
|
||||
playsound(src.loc, 'goon/sound/machinery/FireAlarm.ogg', 75)
|
||||
playsound(loc, 'goon/sound/machinery/FireAlarm.ogg', 75)
|
||||
if(user)
|
||||
log_game("[user] triggered a fire alarm at [COORD(src)]")
|
||||
|
||||
/obj/machinery/firealarm/proc/reset()
|
||||
/obj/machinery/firealarm/proc/reset(mob/user)
|
||||
if(!is_operational())
|
||||
return
|
||||
var/area/A = get_area(src)
|
||||
A.firereset(src)
|
||||
if(user)
|
||||
log_game("[user] reset a fire alarm at [COORD(src)]")
|
||||
|
||||
/obj/machinery/firealarm/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, "firealarm", name, 300, 150, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/machinery/firealarm/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
data["emagged"] = obj_flags & EMAGGED ? 1 : 0
|
||||
|
||||
if(is_station_level(z))
|
||||
data["seclevel"] = get_security_level()
|
||||
else
|
||||
data["seclevel"] = "green"
|
||||
|
||||
/obj/machinery/firealarm/attack_hand(mob/user)
|
||||
if(buildstage != 2)
|
||||
return ..()
|
||||
add_fingerprint(user)
|
||||
var/area/A = get_area(src)
|
||||
data["alarm"] = A.fire
|
||||
if(A.fire)
|
||||
reset(user)
|
||||
else
|
||||
alarm(user)
|
||||
|
||||
return data
|
||||
/obj/machinery/firealarm/attack_ai(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/firealarm/ui_act(action, params)
|
||||
if(..() || buildstage != 2)
|
||||
return
|
||||
switch(action)
|
||||
if("reset")
|
||||
reset()
|
||||
. = TRUE
|
||||
if("alarm")
|
||||
alarm()
|
||||
. = TRUE
|
||||
/obj/machinery/firealarm/attack_robot(mob/user)
|
||||
return attack_hand(user)
|
||||
|
||||
/obj/machinery/firealarm/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
@@ -198,6 +196,12 @@
|
||||
to_chat(user, "<span class='notice'>You cut the wires from \the [src].</span>")
|
||||
update_icon()
|
||||
return
|
||||
else if(W.force) //hit and turn it on
|
||||
..()
|
||||
var/area/A = get_area(src)
|
||||
if(!A.fire)
|
||||
alarm()
|
||||
return
|
||||
if(1)
|
||||
if(istype(W, /obj/item/stack/cable_coil))
|
||||
var/obj/item/stack/cable_coil/coil = W
|
||||
@@ -252,20 +256,6 @@
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/firealarm/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
if((buildstage == 0) && (the_rcd.upgrade & RCD_UPGRADE_SIMPLE_CIRCUITS))
|
||||
return list("mode" = RCD_UPGRADE_SIMPLE_CIRCUITS, "delay" = 20, "cost" = 1)
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/firealarm/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
switch(passed_mode)
|
||||
if(RCD_UPGRADE_SIMPLE_CIRCUITS)
|
||||
user.visible_message("<span class='notice'>[user] fabricates a circuit and places it into [src].</span>", \
|
||||
"<span class='notice'>You adapt a fire alarm circuit and slot it into the assembly.</span>")
|
||||
buildstage = 1
|
||||
update_icon()
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
/obj/machinery/firealarm/take_damage(damage_amount, damage_type = BRUTE, damage_flag = 0, sound_effect = 1, attack_dir)
|
||||
. = ..()
|
||||
@@ -334,8 +324,3 @@
|
||||
if (!party_overlay)
|
||||
party_overlay = iconstate2appearance('icons/turf/areas.dmi', "party")
|
||||
A.add_overlay(party_overlay)
|
||||
|
||||
/obj/machinery/firealarm/partyalarm/ui_data(mob/user)
|
||||
. = ..()
|
||||
var/area/A = get_area(src)
|
||||
.["alarm"] = A && A.party
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
idle_power_usage = 100
|
||||
active_power_usage = 2500
|
||||
var/list/stored_items = list()
|
||||
var/obj/item/card/id/prisoner/inserted_id = null
|
||||
var/obj/machinery/gulag_teleporter/linked_teleporter = null
|
||||
|
||||
/obj/machinery/gulag_item_reclaimer/Destroy()
|
||||
@@ -18,9 +17,6 @@
|
||||
I.forceMove(get_turf(src))
|
||||
if(linked_teleporter)
|
||||
linked_teleporter.linked_reclaimer = null
|
||||
if(inserted_id)
|
||||
inserted_id.forceMove(get_turf(src))
|
||||
inserted_id = null
|
||||
return ..()
|
||||
|
||||
/obj/machinery/gulag_item_reclaimer/emag_act(mob/user)
|
||||
@@ -29,18 +25,6 @@
|
||||
req_access = list()
|
||||
obj_flags |= EMAGGED
|
||||
|
||||
/obj/machinery/gulag_item_reclaimer/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/card/id))
|
||||
if(!inserted_id)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
inserted_id = I
|
||||
to_chat(user, "<span class='notice'>You insert [I].</span>")
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>There's an ID inserted already.</span>")
|
||||
return ..()
|
||||
|
||||
/obj/machinery/gulag_item_reclaimer/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)
|
||||
@@ -55,15 +39,19 @@
|
||||
if(allowed(user))
|
||||
can_reclaim = TRUE
|
||||
|
||||
if(inserted_id)
|
||||
data["id"] = inserted_id
|
||||
data["id_name"] = inserted_id.registered_name
|
||||
if(inserted_id.points >= inserted_id.goal)
|
||||
var/obj/item/card/id/I = user.get_idcard(TRUE)
|
||||
if(istype(I, /obj/item/card/id/prisoner))
|
||||
var/obj/item/card/id/prisoner/P = I
|
||||
if(P.points >= P.goal)
|
||||
can_reclaim = TRUE
|
||||
|
||||
var/list/mobs = list()
|
||||
for(var/i in stored_items)
|
||||
var/mob/thismob = i
|
||||
if(QDELETED(thismob))
|
||||
say("Alert! Unable to locate vital signals of a previously processed prisoner. Ejecting equipment!")
|
||||
drop_items(thismob)
|
||||
continue
|
||||
var/list/mob_info = list()
|
||||
mob_info["name"] = thismob.real_name
|
||||
mob_info["mob"] = "[REF(thismob)]"
|
||||
@@ -78,16 +66,6 @@
|
||||
|
||||
/obj/machinery/gulag_item_reclaimer/ui_act(action, list/params)
|
||||
switch(action)
|
||||
if("handle_id")
|
||||
if(inserted_id)
|
||||
usr.put_in_hands(inserted_id)
|
||||
inserted_id = null
|
||||
else
|
||||
var/obj/item/I = usr.is_holding_item_of_type(/obj/item/card/id)
|
||||
if(I)
|
||||
if(!usr.transferItemToLoc(I, src))
|
||||
return
|
||||
inserted_id = I
|
||||
if("release_items")
|
||||
var/mob/M = locate(params["mobref"])
|
||||
if(M == usr || allowed(usr))
|
||||
@@ -98,8 +76,9 @@
|
||||
/obj/machinery/gulag_item_reclaimer/proc/drop_items(mob/user)
|
||||
if(!stored_items[user])
|
||||
return
|
||||
var/drop_location = drop_location()
|
||||
for(var/i in stored_items[user])
|
||||
var/obj/item/W = i
|
||||
stored_items[user] -= W
|
||||
W.forceMove(get_turf(src))
|
||||
W.forceMove(drop_location)
|
||||
stored_items -= user
|
||||
|
||||
@@ -8,14 +8,14 @@
|
||||
icon_state = "iv_drip"
|
||||
anchored = FALSE
|
||||
mouse_drag_pointer = MOUSE_ACTIVE_POINTER
|
||||
var/mob/living/carbon/attached = null
|
||||
var/mob/living/carbon/attached
|
||||
var/mode = IV_INJECTING
|
||||
var/obj/item/reagent_containers/beaker = null
|
||||
var/obj/item/reagent_containers/beaker
|
||||
var/static/list/drip_containers = typecacheof(list(/obj/item/reagent_containers/blood,
|
||||
/obj/item/reagent_containers/food,
|
||||
/obj/item/reagent_containers/glass,
|
||||
/obj/item/reagent_containers/chem_pack))
|
||||
/obj/machinery/iv_drip/Initialize()
|
||||
/obj/machinery/iv_drip/Initialize(mapload)
|
||||
. = ..()
|
||||
update_icon()
|
||||
|
||||
@@ -84,6 +84,8 @@
|
||||
if(Adjacent(target) && usr.Adjacent(target))
|
||||
if(beaker)
|
||||
usr.visible_message("<span class='warning'>[usr] attaches [src] to [target].</span>", "<span class='notice'>You attach [src] to [target].</span>")
|
||||
log_combat(usr, target, "attached", src, "containing: [beaker.name] - ([beaker.reagents.log_list()])")
|
||||
add_fingerprint(usr)
|
||||
attached = target
|
||||
START_PROCESSING(SSmachines, src)
|
||||
update_icon()
|
||||
@@ -100,6 +102,8 @@
|
||||
return
|
||||
beaker = W
|
||||
to_chat(user, "<span class='notice'>You attach [W] to [src].</span>")
|
||||
user.log_message("attached a [W] to [src] at [AREACOORD(src)] containing ([beaker.reagents.log_list()])", LOG_ATTACK)
|
||||
add_fingerprint(user)
|
||||
update_icon()
|
||||
return
|
||||
else
|
||||
@@ -142,10 +146,11 @@
|
||||
if(!amount)
|
||||
if(prob(5))
|
||||
visible_message("[src] pings.")
|
||||
playsound(loc, 'sound/machines/beep.ogg', 50, 1)
|
||||
return
|
||||
|
||||
// If the human is losing too much blood, beep.
|
||||
if(attached.blood_volume < ( (BLOOD_VOLUME_SAFE*attached.blood_ratio) && prob(5) ) )
|
||||
if(attached.blood_volume < ((BLOOD_VOLUME_SAFE*attached.blood_ratio) && prob(5) && ishuman(attached))) //really couldn't care less about monkeys
|
||||
visible_message("[src] beeps loudly.")
|
||||
playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
|
||||
attached.transfer_blood_to(beaker, amount)
|
||||
@@ -178,9 +183,10 @@
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
if(beaker)
|
||||
beaker.forceMove(drop_location())
|
||||
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
|
||||
if(!usr.put_in_hands(beaker))
|
||||
beaker.forceMove(drop_location())
|
||||
beaker = null
|
||||
update_icon()
|
||||
|
||||
@@ -195,7 +201,6 @@
|
||||
|
||||
if(usr.incapacitated())
|
||||
return
|
||||
|
||||
mode = !mode
|
||||
to_chat(usr, "The IV drip is now [mode ? "injecting" : "taking blood"].")
|
||||
update_icon()
|
||||
@@ -204,7 +209,9 @@
|
||||
. = ..()
|
||||
if(get_dist(user, src) > 2)
|
||||
return
|
||||
|
||||
. += "[src] is [mode ? "injecting" : "taking blood"].\n"
|
||||
|
||||
if(beaker)
|
||||
if(beaker.reagents && beaker.reagents.reagent_list.len)
|
||||
. += "\t<span class='notice'>Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.</span>\n"
|
||||
|
||||
@@ -75,8 +75,7 @@ Buildable meters
|
||||
new_layer = PIPING_LAYER_DEFAULT
|
||||
piping_layer = new_layer
|
||||
|
||||
pixel_x += (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X
|
||||
pixel_y += (piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y
|
||||
PIPING_LAYER_SHIFT(src, piping_layer)
|
||||
layer = initial(layer) + ((piping_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_LCHANGE)
|
||||
|
||||
/obj/item/pipe/proc/update()
|
||||
@@ -232,5 +231,4 @@ Buildable meters
|
||||
|
||||
/obj/item/pipe_meter/proc/setAttachLayer(new_layer = PIPING_LAYER_DEFAULT)
|
||||
piping_layer = new_layer
|
||||
pixel_x = (new_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_X
|
||||
pixel_y = (new_layer - PIPING_LAYER_DEFAULT) * PIPING_LAYER_P_Y
|
||||
PIPING_LAYER_DOUBLE_SHIFT(src, piping_layer)
|
||||
|
||||
@@ -369,7 +369,7 @@
|
||||
if(check_anomalies)//if it's set to check for simple animals
|
||||
if(isanimal(A))
|
||||
var/mob/living/simple_animal/SA = A
|
||||
if(SA.stat || in_faction(SA)) //don't target if dead or in faction
|
||||
if(SA.stat || in_faction(SA) || istype(SA, /mob/living/simple_animal/hostile/megafauna)) //don't target if dead or in faction
|
||||
continue
|
||||
targets += SA
|
||||
if(issilicon(A))
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
mat_mod *= 50000
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
amt_made = 12.5 * M.rating //% of materials salvaged
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.max_amount = mat_mod
|
||||
amount_produced = min(50, amt_made) + 50
|
||||
GET_COMPONENT(butchering, /datum/component/butchering)
|
||||
var/datum/component/butchering/butchering = GetComponent(/datum/component/butchering)
|
||||
butchering.effectiveness = amount_produced
|
||||
butchering.bonus_modifier = amount_produced/5
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
var/atom/movable/AM = i
|
||||
var/obj/item/bodypart/head/as_head = AM
|
||||
var/obj/item/mmi/as_mmi = AM
|
||||
var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || isbrain(AM)
|
||||
var/brain_holder = istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || isbrain(AM) || istype(AM, /obj/item/dullahan_relay)
|
||||
if(brain_holder)
|
||||
emergency_stop(AM)
|
||||
else if(isliving(AM))
|
||||
@@ -142,7 +142,7 @@
|
||||
qdel(L)
|
||||
return
|
||||
else
|
||||
GET_COMPONENT(materials, /datum/component/material_container)
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
var/material_amount = materials.get_item_material_amount(I)
|
||||
if(!material_amount)
|
||||
qdel(I)
|
||||
@@ -193,7 +193,7 @@
|
||||
L.Unconscious(100)
|
||||
L.adjustBruteLoss(crush_damage)
|
||||
if(L.stat == DEAD && (L.butcher_results || L.guaranteed_butcher_results))
|
||||
GET_COMPONENT(butchering, /datum/component/butchering)
|
||||
var/datum/component/butchering/butchering = GetComponent(/datum/component/butchering)
|
||||
butchering.Butcher(src,L)
|
||||
|
||||
/obj/machinery/recycler/deathtrap
|
||||
|
||||
@@ -265,6 +265,8 @@
|
||||
things_to_clear += occupant.GetAllContents()
|
||||
for(var/atom/movable/AM in things_to_clear) //Scorches away blood and forensic evidence, although the SSU itself is unaffected
|
||||
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRONG)
|
||||
AM.clean_blood()
|
||||
AM.fingerprints = null
|
||||
var/datum/component/radioactive/contamination = AM.GetComponent(/datum/component/radioactive)
|
||||
if(contamination)
|
||||
qdel(contamination)
|
||||
|
||||
@@ -11,10 +11,6 @@
|
||||
var/obj/item/color_source
|
||||
var/max_wash_capacity = 5
|
||||
|
||||
/obj/machinery/washing_machine/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/redirect, list(COMSIG_COMPONENT_CLEAN_ACT = CALLBACK(src, .proc/clean_blood)))
|
||||
|
||||
/obj/machinery/washing_machine/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click it to start a wash cycle.</span>"
|
||||
@@ -59,7 +55,8 @@
|
||||
M.Translate(rand(-3, 3), rand(-1, 3))
|
||||
animate(src, transform=M, time=2)
|
||||
|
||||
/obj/machinery/washing_machine/proc/clean_blood()
|
||||
/obj/machinery/washing_machine/clean_blood()
|
||||
..()
|
||||
if(!busy)
|
||||
bloody_mess = FALSE
|
||||
update_icon()
|
||||
@@ -67,7 +64,8 @@
|
||||
/obj/machinery/washing_machine/proc/wash_cycle()
|
||||
for(var/X in contents)
|
||||
var/atom/movable/AM = X
|
||||
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_STRENGTH_BLOOD)
|
||||
SEND_SIGNAL(AM, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
|
||||
AM.clean_blood()
|
||||
AM.machine_wash(src)
|
||||
|
||||
busy = FALSE
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user