Merge branch 'master' of https://github.com/ParadiseSS13/Paradise into zefix

This commit is contained in:
Markolie
2017-03-16 22:36:00 +01:00
62 changed files with 1580 additions and 699 deletions
@@ -54,7 +54,7 @@
"abb" = (/obj/structure/rack,/obj/item/clothing/suit/space/syndicate/black/red,/obj/item/clothing/head/helmet/space/syndicate/black/red,/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1331; id_tag = "synd_pump"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"abc" = (/obj/item/device/radio/intercom/syndicate{pixel_x = -28},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"abd" = (/obj/structure/grille,/turf/space,/area/space)
"abe" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/lattice,/turf/space,/area/space)
"abe" = (/obj/structure/grille/broken,/obj/structure/lattice,/turf/space,/area/space)
"abf" = (/obj/structure/grille,/obj/structure/lattice,/turf/space,/area/space)
"abg" = (/obj/machinery/recharge_station/upgraded,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
"abh" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate)
@@ -1053,7 +1053,7 @@
"aum" = (/obj/machinery/door/airlock/maintenance{icon = 'icons/obj/doors/Doorint.dmi'; name = "Brig Emergency Storage"; req_access_txt = "63"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plating,/area/security/brig)
"aun" = (/obj/machinery/space_heater,/turf/simulated/floor/plasteel,/area/security/podbay)
"auo" = (/obj/machinery/light{dir = 1; in_use = 1},/turf/simulated/floor/plasteel{icon_state = "vault"; dir = 5},/area/maintenance/starboard)
"aup" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"aup" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
"auq" = (/obj/machinery/space_heater,/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating,/area/maintenance/fpmaint2{name = "Port Maintenance"})
"aur" = (/obj/machinery/space_heater,/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/fpmaint2{name = "Port Maintenance"})
"aus" = (/obj/machinery/door/poddoor/shutters{dir = 2; id_tag = "supplybridge"},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/maintenance/fpmaint2{name = "Port Maintenance"})
@@ -6718,7 +6718,7 @@
"czj" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/machinery/power/apc{cell_type = 5000; dir = 1; name = "Toxins Storage APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable/yellow{d2 = 2; icon_state = "0-2"},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/toxins/storage)
"czk" = (/obj/machinery/portable_atmospherics/scrubber/huge,/turf/simulated/floor/plasteel{icon_state = "delivery"; name = "floor"},/area/toxins/storage)
"czl" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{req_access_txt = 1},/turf/simulated/floor/plating{tag = "icon-platingdmg2"; icon_state = "platingdmg2"},/area/maintenance/aft{name = "Aft Maintenance"})
"czm" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"czm" = (/obj/structure/grille/broken,/turf/space,/area/space)
"czn" = (/obj/machinery/vending/cigarette,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"})
"czo" = (/obj/machinery/vending/assist,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/maintenance/aft{name = "Aft Maintenance"})
"czp" = (/obj/structure/table,/obj/item/weapon/surgicaldrill,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/weapon/FixOVein,/turf/simulated/floor/plasteel{icon_state = "whitehall"; dir = 2},/area/medical/surgery)
+3 -3
View File
@@ -627,7 +627,7 @@
"mc" = (/turf/unsimulated/wall/abductor{icon_state = "alien4"},/area/abductor_ship)
"md" = (/turf/unsimulated/wall/abductor{icon_state = "alien3"},/area/abductor_ship)
"me" = (/turf/unsimulated/wall/abductor{icon_state = "alien5"},/area/abductor_ship)
"mf" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "small"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/wizard_station)
"mf" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "small"},/obj/structure/grille/broken{color = "#008000"},/turf/simulated/floor/plating/airless,/area/wizard_station)
"mg" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 8; icon_state = "fakewindows2"},/area/wizard_station)
"mh" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 4; icon_state = "fakewindows"},/area/wizard_station)
"mi" = (/turf/unsimulated/wall{tag = "icon-uranium2"; icon_state = "uranium2"},/area/wizard_station)
@@ -781,7 +781,7 @@
"rm" = (/obj/machinery/recharger{pixel_y = 4},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"rn" = (/turf/unsimulated/wall/fakeglass{color = "#008000"; dir = 1; icon_state = "fakewindows2"},/area/wizard_station)
"ro" = (/obj/structure/bookcase,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"rp" = (/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station)
"rp" = (/obj/structure/grille/broken{color = "#008000"},/turf/simulated/floor/plating,/area/wizard_station)
"rr" = (/obj/item/clothing/shoes/sandal/marisa,/obj/item/clothing/suit/wizrobe/marisa,/obj/item/clothing/head/wizard/marisa,/obj/item/weapon/twohanded/staff/broom,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"rs" = (/obj/effect/decal/cleanable/blood/splatter,/mob/living/simple_animal/hostile/creature{name = "Experiment 35b"},/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"rt" = (/obj/machinery/door/poddoor/preopen,/obj/effect/decal/cleanable/blood/splatter,/obj/effect/decal/cleanable/blood/gibs/body,/turf/simulated/floor/plating/airless,/area/wizard_station)
@@ -793,7 +793,7 @@
"rE" = (/obj/machinery/flasher{id = "tdomeflash"; name = "Thunderdome Flash"},/turf/simulated/floor/bluegrid,/area/tdome/arena)
"rF" = (/obj/machinery/camera{pixel_x = 12; pixel_y = -10; network = list("thunder"); c_tag = "Green Team"},/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1)
"rG" = (/turf/unsimulated/wall/fakeglass{color = "#008000"},/area/wizard_station)
"rH" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/obj/structure/grille{color = "#008000"; density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/wizard_station)
"rH" = (/obj/item/weapon/shard{color = "#008000"; icon_state = "medium"},/obj/structure/grille/broken{color = "#008000"},/turf/simulated/floor/plating,/area/wizard_station)
"rI" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{tag = "icon-cultdamage5"; icon_state = "cultdamage5"},/area/wizard_station)
"rJ" = (/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/splatter,/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/area/wizard_station)
"rK" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station)
+4 -4
View File
@@ -3,7 +3,7 @@
"ay" = (/obj/structure/lattice,/turf/space,/area/space)
"be" = (/obj/item/trash/cheesie,/turf/space,/area/space)
"bj" = (/turf/simulated/floor/plating/airless,/area/space)
"bk" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"bk" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
"bl" = (/obj/structure/lattice,/obj/structure/grille,/turf/space,/area/space)
"bm" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/space)
"bn" = (/turf/simulated/wall/r_wall,/area/space)
@@ -34,7 +34,7 @@
"bM" = (/obj/structure/table,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bN" = (/obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh{name = "Cuban Pete-Meat"},/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
"bO" = (/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bP" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bP" = (/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bQ" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bR" = (/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"bS" = (/obj/item/stack/cable_coil/cut{amount = 1},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
@@ -66,7 +66,7 @@
"cs" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk{dir = 4},/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"ct" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/tcommsat/chamber)
"cu" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall/r_wall,/area/space)
"cv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
"cv" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/space)
"cw" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless,/area/space)
"cx" = (/obj/structure/disposaloutlet{dir = 4},/obj/structure/disposalpipe/trunk{dir = 8},/turf/simulated/floor/plating/airless,/area/space)
"cy" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "dark"},/area/tcommsat/chamber)
@@ -127,7 +127,7 @@
"dI" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"dJ" = (/obj/structure/lattice,/obj/item/stack/rods,/obj/item/weapon/shard{icon_state = "medium"},/turf/space,/area/space)
"dK" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating/airless,/area/tcommsat/chamber)
"dM" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"dM" = (/obj/structure/grille/broken,/turf/space,/area/space)
"dO" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/plasteel,/area/tcommsat/chamber)
"dP" = (/turf/simulated/floor/plasteel{dir = 9; icon_state = "warning"},/area/tcommsat/chamber)
"dQ" = (/turf/simulated/floor/plasteel{dir = 1; icon_state = "warning"},/area/tcommsat/chamber)
+4 -4
View File
@@ -111,7 +111,7 @@
"cg" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/solar_control)
"ch" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor/plasteel,/area/derelict/solar_control)
"ci" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/derelict/solar_control)
"cj" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/space)
"cj" = (/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/space)
"ck" = (/obj/machinery/light/small,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
"cl" = (/obj/structure/window/reinforced{dir = 4},/obj/machinery/porta_turret,/turf/simulated/floor/plasteel,/area/derelict/bridge/ai_upload)
"cm" = (/obj/machinery/porta_turret,/turf/simulated/floor/plating/airless,/area/derelict/bridge/ai_upload)
@@ -296,7 +296,7 @@
"fJ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/cans/beer,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plasteel,/area/derelict/bridge)
"fK" = (/obj/item/stack/rods,/turf/space,/area/space)
"fL" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fM" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plating/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fM" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plating/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fN" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fO" = (/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fP" = (/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
@@ -377,7 +377,7 @@
"hq" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"hs" = (/turf/simulated/floor/plating/airless{icon_state = "floorscorched1"},/area/space)
"ht" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"hu" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"hu" = (/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"hv" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
"hw" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"hx" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
@@ -414,7 +414,7 @@
"ie" = (/turf/simulated/wall,/area/derelict/medical)
"if" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"ig" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"ih" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"ih" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/derelict/medical)
"ii" = (/turf/simulated/floor/plating/airless,/area/derelict/medical)
"ij" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"ik" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating/airless,/area/space)
+2 -2
View File
@@ -925,7 +925,7 @@
"rO" = (/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
"rP" = (/turf/simulated/floor/plating/airless/asteroid{temperature = 273.15},/area/mine/dangerous/explored)
"rQ" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/plating/airless{icon_state = "asteroidfloor"},/area/mine/abandoned)
"rR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"rR" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille/broken,/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"rS" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidwarning"; dir = 10},/area/mine/dangerous/explored)
"rT" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidwarning"; dir = 6},/area/mine/dangerous/explored)
"rU" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidwarning"; dir = 2},/area/mine/dangerous/explored)
@@ -961,7 +961,7 @@
"sy" = (/obj/item/device/radio/intercom/locked/prison{dir = 2; name = "Prison Intercom (General)"; pixel_x = 0; pixel_y = 24},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
"sz" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
"sA" = (/turf/simulated/floor/plasteel{icon_state = "asteroidfloor"; temperature = 273.15},/area/mine/dangerous/explored)
"sB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
"sB" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille/broken,/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
"sC" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"},/area/mine/abandoned)
"sD" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
"sE" = (/obj/machinery/navbeacon{codes_txt = "patrol;next_patrol=7-Sleeper"; location = "6-Vending"},/mob/living/simple_animal/mouse,/turf/simulated/floor/plasteel{icon_state = "floorgrime"; temperature = 273.15},/area/mine/laborcamp)
@@ -89,14 +89,14 @@
"bK" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/space)
"bL" = (/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plasteel,/area/ruin/unpowered)
"bM" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel,/area/ruin/unpowered)
"bN" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating,/area/ruin/unpowered)
"bN" = (/obj/structure/grille/broken,/obj/item/weapon/shard{icon_state = "small"},/turf/simulated/floor/plating,/area/ruin/unpowered)
"bO" = (/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/ruin/unpowered)
"bP" = (/obj/structure/lattice,/turf/space,/area/space)
"bQ" = (/obj/machinery/shieldwallgen{active = 2; anchored = 1; power = 1},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable,/turf/simulated/floor/plating,/area/ruin/unpowered)
"bR" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating,/area/space)
"bS" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable,/obj/machinery/shieldwallgen,/turf/simulated/floor/plating,/area/ruin/unpowered)
"bT" = (/obj/structure/grille,/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating,/area/ruin/unpowered)
"bU" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/ruin/unpowered)
"bU" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/ruin/unpowered)
"bV" = (/obj/machinery/shieldwallgen,/turf/space,/area/space)
"bW" = (/obj/item/weapon/shard,/turf/space,/area/space)
@@ -161,7 +161,7 @@
"df" = (/obj/structure/lattice,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/space,/area/space)
"dg" = (/obj/structure/girder/reinforced,/obj/item/stack/sheet/plasteel,/turf/simulated/floor/plating/airless,/area/space)
"dh" = (/turf/simulated/floor/plating/airless{broken = 1; icon_state = "platingdmg2"},/area/space)
"di" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway)
"di" = (/obj/structure/grille/broken,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless{broken = 1; icon_state = "platingdmg1"},/area/ruin/onehalf/hallway)
"dj" = (/obj/structure/grille,/obj/item/weapon/shard,/turf/simulated/floor/plating,/area/ruin/onehalf/hallway)
"dk" = (/obj/structure/grille,/obj/structure/window/full/reinforced,/obj/structure/cable{d2 = 2; icon_state = "0-2"},/obj/structure/cable{d2 = 4; icon_state = "0-4"},/obj/machinery/door/poddoor/preopen{id_tag = "onehalf bridge"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/ruin/onehalf/bridge)
"dl" = (/obj/structure/grille,/obj/structure/window/full/reinforced,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/poddoor/preopen{id_tag = "onehalf bridge"; name = "bridge blast door"},/turf/simulated/floor/plating,/area/ruin/onehalf/bridge)
+158 -96
View File
@@ -33,30 +33,30 @@
"aG" = (/obj/structure/safe/floor,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aI" = (/obj/structure/table/reinforced,/obj/item/device/laser_pointer/upgraded,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aJ" = (/obj/structure/cult/tome,/obj/item/weapon/twohanded/staff,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aJ" = (/obj/structure/cult/tome,/obj/item/weapon/twohanded/staff,/obj/item/weapon/spellbook/oneuse/charge,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aK" = (/obj/structure/stool/bed/chair/wood/wings{dir = 8},/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aL" = (/obj/item/clothing/suit/space/hardsuit/wizard,/obj/structure/table/woodentable,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aL" = (/obj/item/clothing/suit/space/hardsuit/wizard,/obj/structure/table/woodentable,/obj/item/stack/sheet/mineral/silver{amount = 20},/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aM" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/briefcase,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aN" = (/obj/structure/table/reinforced,/obj/item/weapon/coin/plasma,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aO" = (/obj/machinery/light/small{dir = 1},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aO" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aP" = (/obj/structure/lattice,/turf/space,/area/space)
"aQ" = (/obj/machinery/door/airlock/gold{locked = 1},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aR" = (/obj/machinery/door/airlock/gold{locked = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aS" = (/turf/simulated/mineral/random/high_chance,/area/awaymission/academy)
"aT" = (/obj/structure/noticeboard,/turf/simulated/wall,/area/awaymission/academy/headmaster)
"aU" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aV" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aV" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aW" = (/obj/structure/reagent_dispensers/water_cooler,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aX" = (/obj/machinery/photocopier,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"aY" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aZ" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"aZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/awaymission/academy/headmaster)
"ba" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/weapon/pen/red,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bb" = (/obj/structure/table/woodentable,/obj/item/weapon/twohanded/staff,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bc" = (/obj/structure/table/woodentable,/obj/item/weapon/hand_labeler,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"bd" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/invisible,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"be" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bf" = (/obj/structure/table/woodentable,/obj/item/weapon/pen/red,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bg" = (/obj/structure/table/woodentable,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bg" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"bh" = (/obj/structure/table/woodentable,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/item/weapon/dice/d20,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bi" = (/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/tea,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bj" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
@@ -65,7 +65,7 @@
"bm" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"bn" = (/obj/machinery/light,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"bo" = (/obj/structure/filingcabinet/chestdrawer,/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"bp" = (/obj/machinery/door/airlock/gold,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bp" = (/obj/structure/stool/bed/chair/office/dark,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"bq" = (/obj/machinery/door/airlock/gold,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"br" = (/turf/simulated/floor/plasteel,/area/awaymission/academy/headmaster)
"bs" = (/turf/simulated/wall/r_wall,/area/awaymission/academy/classrooms)
@@ -233,10 +233,10 @@
"ey" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHWEST)"; icon_state = "warnplate"; dir = 9},/area/awaymission/academy)
"ez" = (/obj/machinery/door/airlock/glass,/obj/machinery/door/airlock/external,/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
"eA" = (/obj/machinery/door/airlock/glass,/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
"eB" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
"eB" = (/obj/structure/table/woodentable,/obj/item/weapon/folder/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"eC" = (/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"eD" = (/obj/structure/stool/bed/chair,/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"eE" = (/obj/machinery/light{dir = 1},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"eE" = (/obj/structure/table/woodentable,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"eF" = (/obj/structure/table/reinforced,/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/awaymission/academy/classrooms)
"eG" = (/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/awaymission/academy/classrooms)
"eH" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{dir = 8; icon_state = "barber"},/area/awaymission/academy/classrooms)
@@ -385,18 +385,18 @@
"hu" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hv" = (/obj/machinery/power/smes/magical,/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hw" = (/obj/machinery/power/terminal{dir = 8},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hx" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"hy" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"hz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"hA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance_hatch,/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "green"; dir = 8},/area/awaymission/academy/academyaft)
"hx" = (/obj/machinery/light,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"hy" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/wood,/area/awaymission/academy/headmaster)
"hz" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"hA" = (/obj/machinery/door/airlock/gold,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/headmaster)
"hB" = (/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/classrooms)
"hC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/classrooms)
"hD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft)
"hE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plasteel{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/awaymission/academy/academyaft)
"hE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/classrooms)
"hF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"hG" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"hH" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/weapon/caution,/turf/simulated/floor/plasteel{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/awaymission/academy/academyaft)
"hI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hG" = (/obj/machinery/door/airlock/glass,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
"hH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plating,/area/awaymission/academy/classrooms)
"hI" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
"hJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"hK" = (/obj/machinery/constructable_frame/machine_frame,/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"hL" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
@@ -441,7 +441,7 @@
"iy" = (/obj/structure/rack,/obj/item/weapon/stock_parts/manipulator,/obj/item/weapon/stock_parts/subspace/filter,/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"iz" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/academy/academyaft)
"iA" = (/obj/structure/toilet{dir = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/academy/academyaft)
"iB" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/stack/sheet/metal,/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"iB" = (/mob/living/simple_animal/hostile/statue,/turf/simulated/floor/plasteel,/area/awaymission/academy/headmaster)
"iC" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"iD" = (/obj/structure/toilet{dir = 8},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plasteel{icon_state = "cafeteria"; dir = 2},/area/awaymission/academy/academyaft)
"iE" = (/obj/item/weapon/paper,/turf/simulated/floor/wood,/area/awaymission/academy/academyaft)
@@ -483,6 +483,7 @@
"jo" = (/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/awaymission/academy/academyaft)
"jp" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plasteel/airless{tag = "icon-white (EAST)"; icon_state = "white"; dir = 4},/area/awaymission/academy/academyaft)
"jq" = (/obj/structure/grille,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/weapon/shard,/turf/simulated/floor/plating/airless,/area/awaymission/academy/academyaft)
"jr" = (/mob/living/simple_animal/hostile/mimic/crate,/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/awaymission/academy/classrooms)
"js" = (/obj/structure/window/reinforced,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 6},/area/awaymission/academy/academyaft)
"jt" = (/obj/structure/cult/pylon,/turf/simulated/floor/plasteel{icon_state = "yellow"; dir = 10},/area/awaymission/academy/academyaft)
"ju" = (/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/awaymission/academy/academyaft)
@@ -503,7 +504,7 @@
"jJ" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 5; icon_state = "yellow"},/area/awaymission/academy/academyaft)
"jK" = (/obj/machinery/light,/turf/simulated/floor/plasteel{dir = 9; icon_state = "yellow"},/area/awaymission/academy/academyaft)
"jL" = (/turf/simulated/floor/plasteel{dir = 5; icon_state = "yellow"},/area/awaymission/academy/academyaft)
"jM" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"jM" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
"jN" = (/obj/machinery/door/airlock/hatch,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"jO" = (/obj/machinery/door/airlock/hatch,/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"jP" = (/turf/simulated/wall/r_wall,/area/awaymission/academy/academygate)
@@ -541,6 +542,67 @@
"kv" = (/mob/living/simple_animal/hostile/mimic/crate,/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/awaymission/academy/classrooms)
"kw" = (/mob/living/simple_animal/hostile/mimic/crate,/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
"kx" = (/mob/living/simple_animal/hostile/statue,/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft)
"ky" = (/mob/living/simple_animal/hostile/creature,/turf/simulated/floor/plasteel{icon_state = "white"},/area/awaymission/academy/classrooms)
"kz" = (/obj/structure/table/reinforced,/obj/item/stack/sheet/mineral/gold{amount = 5},/turf/simulated/floor/plasteel{dir = 4; icon_state = "warning"},/area/awaymission/academy/classrooms)
"kA" = (/obj/structure/bookcase,/obj/item/weapon/spellbook/oneuse/summonitem,/turf/simulated/floor/wood,/area/awaymission/academy/classrooms)
"kB" = (/mob/living/simple_animal/hostile/carp/megacarp{name = "Elmo"},/turf/simulated/mineral/random/high_chance,/area/awaymission/academy)
"kC" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/rack,/obj/item/stack/sheet/metal{amount = 50},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"kD" = (/obj/effect/landmark{name = "awaystart"},/turf/simulated/floor/engine,/area/awaymission/academy/academyaft)
"kE" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel,/area/awaymission/academy/classrooms)
"kF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/classrooms)
"kG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{dir = 4; icon_state = "yellow"},/area/awaymission/academy/classrooms)
"kH" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/carpet,/area/awaymission/academy/classrooms)
"kI" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/classrooms)
"kJ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/carpet,/area/awaymission/academy/classrooms)
"kK" = (/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/classrooms)
"kL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"kM" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/wall,/area/awaymission/academy/classrooms)
"kN" = (/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"kO" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"kP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "escape"; dir = 6},/area/awaymission/academy/classrooms)
"kQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{dir = 4; icon_state = "chapel"},/area/awaymission/academy/classrooms)
"kR" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "chapel"},/area/awaymission/academy/classrooms)
"kS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/classrooms)
"kT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/awaymission/academy/academyaft)
"kU" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/academyaft)
"kV" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "grimy"},/area/awaymission/academy/academyaft)
"kW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"kX" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft)
"kY" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"kZ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"la" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"lb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"lc" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/maintenance_hatch,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"ld" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "green"; dir = 8},/area/awaymission/academy/academyaft)
"le" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft)
"lf" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/awaymission/academy/academyaft)
"lg" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"lh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"li" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"lj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/manifold4w/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"lk" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/item/weapon/caution,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{tag = "icon-green (EAST)"; icon_state = "green"; dir = 4},/area/awaymission/academy/academyaft)
"ll" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"lm" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"ln" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4; level = 2},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"lo" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"lp" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"lq" = (/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"lr" = (/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 8},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/awaymission/academy/academyaft)
"ls" = (/obj/machinery/atmospherics/unary/tank/air{dir = 8},/turf/simulated/floor/plating,/area/awaymission/academy/academyaft)
"lt" = (/obj/machinery/atmospherics/pipe/simple/hidden,/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/space)
"lu" = (/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/space)
"lv" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 5; icon_state = "intact"},/turf/simulated/floor/plasteel{icon_state = "hydrofloor"},/area/space)
"lw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"lx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/awaymission/academy/academyaft)
"ly" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel{icon_state = "yellow"},/area/awaymission/academy/academyaft)
"lz" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"lA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/turf/simulated/floor/carpet,/area/awaymission/academy/academyaft)
"lB" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall/r_wall,/area/awaymission/academy/academyaft)
"lC" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grass,/area/awaymission/academy/academygate)
"lD" = (/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/grass,/area/awaymission/academy/academygate)
"lE" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/academygate)
"lF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/carpet,/area/awaymission/academy/academygate)
"lG" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor/plating,/area/awaymission/academy/academygate)
(1,1,1) = {"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
@@ -572,81 +634,81 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaeaxahasaJaKaFaLasapaxaeacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaMahahasasasasasasapahakacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaNahahahahaOahalanavahafacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababahahahahahahapahahahababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPababababaQababaRababababaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaTaFaFahaFaFapaFaFasabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaFaFaFahaFaUavaFaFaFabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPacaFahahahaVapahahahaWacaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaXahahaYaZbabbahahbcabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPabbdahbebfbgbhbiahahbjabaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaaacaFahahahahbkblahahbmacaaaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaPaPabaFbnaFaFahapaFaFbnboabaPaPabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaPaaaaabasasasasbpbqasasasasabaaaaaPaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaaaPaaaaabbrbrbrbrahapbrbrbrbrabaaaaaPaaaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaabsbtbubvbvbwbtbsbsbsbsbsbsbsbsbsbsabbrbxbybrahapbrbxbybrababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaabsbsdvbAbBbBbCdvbDbEbFbGbGbGbGbGbGbHasbIbJbKbrahapbrbJbKbLasbMbNbObPbQbRbSbTababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbUdvbBbBbBbBbVdvbEbWbXbYbZbZcabZbWasbrcbccbrahapbrbrbrbrabcdcecdasascfbTcgchabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscidvbBcjbBbBdvdvbEbWbZbZbZbXbZbZbWasbrbrbrbrahapahahahahckclcmcnascocfbTbScpabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscqbVbBbBbBbBdvcrbEcsbZbZbZbZbZbZcsasbrctctbrahapcuahcuahabcdcecdcvcwcxbTbTcyabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsczdvbBbBbBbBdvdvbEcAcBbZbZbZbZbZcCasbrcDcDbrahcEanananancFbOcGclcHascfbTbScpabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscIdvbBbBcJbBdvbVbEcAcKcKcKcKcKcKcCasbrcLbrbrahapbrbrbrbrabcdclcdclcdcfcgbTchabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscMdvcNbBbBcOdvbVbEcPcQcQcQcQcQcQcRascSbxbybrahapbrbxbybLascTcdclcUcVcWbTbTababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscXcYcZcZcZcZdadvbEdbdcdcdcdcdcdcddasbrbJbKbrahapbrbJbKbrasasasasasasasasasabbsbsbsbsbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdededebVbVdvcMdvbEdcdcdfdcdfdcdfdcasbrbrbrbrahapbrbrbrbrasdhdidjdkdidididjdidlbEdmdmdnbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdodpdqbVdvdvcMdrbEdcdcdsdcdsdcdsdcasaFaFaFaFahapaFaFaFaFasdtdudvdvdudvdvdvdvdwbEdmdmdmdmbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdxdydzcYcYcYdAdvbEdcdcdcdcdfdcdfdcasaFdBdBaFahapaFdBdBaFasdtdvdvdvdvdvdvdCdDdwdEdmdmdmdFbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdGdpdHbVdvdvcMdvbEdcdcdcdcdsdcdsdcasaFdBdBaFahapaFdBdBaFasdtdudvdvdudIdvdJdKdwbEdmdmdmdmbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdedededvbVdvcMdvbEdcdcdcdcdcdcdcdcasaFdBdBaFahapaFdBdBaFasdtdvdvdvdvdvdvdLdMdNdOdPdQdmdRbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbsbsbsbEbEbEdSdTbEbEbEdUdUbEbEbEbEbEasasasasasahapasasasasasdtdudvdvdvdVdvdvdWdwbEdXdYdmdRbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdZdZbseaebecedeeefegeheieieieieiejeiegeieieieiekeleieieieibEemenenenenendvdveoepbEdXdYdmeqbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsererbseseteuedeeeieieieieieieieieveieieieieieieieveieieieibEbEbEbEbEbEbEewewbEbEbEbEexbEbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeyezbBbBeAdveBdvdveeeiekekekekekekekelekekekekekekekelekekekeibEeCeCeCeDeEeCeCeCeCeFeGeGeHeGbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIbsbBbBereJeJeJeKeeeiekeLeMekeLeMekeNeMekeLeMekeLeMeleLeMekeObEeCeCeCePeCeCeCeCeCeFeGeGeHeQbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIbsbBbBereReReReSeeeiekeTeUekeTeUekeVeUekeTeUekeTeUeleTeUekeieWeCeCeCeXeCeDeCeCeCeFeGeGeHeYbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZezbBbBeAdvfadvdveeeiekekekekekekekelekekekfbfcfcfcfdfcfcfcfefffgfgfgfgfgfhfgfgfgfifjfjfkflbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsererbsfmetfnedeeeieieieieieieieieveieieieveieieieieieieieibEeCfofpfqeCeXeCeCeCeFeGeGeGfrbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdZdZbsfsftfuedfvfwfefefefefxeieifyfefefefzekeieiekekeieieibEeCeCeCeCfAeCeCeCeCeFeGeGeGbsbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbsbsbsbsbsbEdSdTbEbEbEbEbEererererbEbEfBfCfDfBfBfDfDfBbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbsbsaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbBbBbBfEfFfGfHfIfIfJbEfKdcdcdcdcdcbEfLfCfDfLfLfDfDfMbEfNfOfPbzbzkvfQfRfSfTdvdvfUbsbsaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsfVfWbBfXfYdvdvdvfZgabEdcgbdcgcgcdcgdgegffDfLfLfDfDfLbEggghgigjggcAdvgkdvdvdvdvbsbsaPaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaabsglbBbBgmfYdvgndvdvgobEdcdfdcdcdcdcgpfLfDfDfLfLfDfDfLbEgggqggggggcAfQfRdvdvfUbsbsaPaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaabsgrgrgrfXfYdvdudvkwgsbEgtdsdcgcgudcgpfLfDfDfLfLfDfDgvbEgwgqggggggcAdvgxdvgybsbsaPaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaabsgzgzgzfXfYdvgAdvgngobEdcgbdcdcdcdcgBgegCgDfLfLfDfDfLbEgggqdggEgGcAgHfRfUbsbsaPaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaabsbBgIbBgmfYkwdudvdugobEdcdfdcgJgKdcbEfLfDfCfLfLfDfDfLbEgggqgLgLgLcAdvgMbsbsaPaaaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaabsgNbBbBfXfYdvgndvgngobEdcdsdcdcdcdcgOfDfDgPgegegCgCgCgQgRgSgGgGgTcAgUbsbsaPaaaaaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbBbBgIgVgWgXgYgXgYdmbEdcdcdcdcdcdcbEfLfDfCfLfLfDfDfLbEgggggLgLgLcAbsbsaPaaaaaaaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZgZgZgZgZgZgZgZgZgZgZfBfBfBfBfBfBfBfBfBhafBfBhbfBfBfBfBfBfBfBfBfBgZgZgZgZgZgZgZgZgZgZgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchdhehehfhghhhigZhjgZhkhlhlhmhlhlhnfDfDfCfDfDfDfDfDhkhlhlhmhlhlhogZhjgZhphqhrhshthuhchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchvhwhehxhlhyhzhAhBhAhChDhDhDhDhDhEgCgChFhGgCgCgCgChChDhDhDhDhDhHhAhIhAhghJhphlhchchKhcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchLhchchMhphphNgZhOgZhkhPhQhRhShTfBhUhUhUfCfDhUhUhUfBhVhWhXhYhZhngZhOgZiaibhphphchchchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchvhwheicidhliegZgZgZfBfBfBfBfBfBfBhUifhUfCfDhUifhUfBfBfBfBfBfBfBgZgZgZighphphphchchKhcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchLhchcihhphpiegZaagZiiiiiiijiiikfBhUifhUfCfDhUifhUfBiiiiijiiiiiigZaagZilhphlhphchchchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhcimhwhehJhphpingZaagZiiiiiiiiiiiiiohUifhUfCfDhUifhUioiiiiiiiiiiiigZaagZipiqhphphchchKhcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchchchchphlhpirgZaagZisiiiiitfBfBfBiuifhUfCfDhUifivfBfBfBiwiiiiixgZaagZiyhphphphchchchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZhphlidhphphlhNgZaagZiiiiiiiiioizfBhUifhUfCfDhUifhUfBiAioiiiiiiiigZaagZiBhlhphphphlhpgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZhphphlhlhpiCgZaagZisiiiiiifBfBfBhUifhUfCfDhUifhUfBfBfBiiiiiiixgZaagZhlhlhphphlhpgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZhphlhphphlgZaPgZiiiiiiiiioiDfBiEifhUfCfDhUifhUfBiAioiiiiiiiigZaPgZhlhphphpiFgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZgZgZiGgZgZaagZisiiiiitfBfBfBhUifhUfCfDhUifhUfBfBfBiwiiiiixgZaagZgZiGgZgZgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZiHiIiJiJgZaPgZiiiiiiiiioiKfBhUhUiLgffDhUhUhUfBiAioiiiiiiiigZaPgZiJiJiIiMgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaagZiJiJiJiJgZaPgZgZgZfBfBfBfBfBfBfBhafBfBhbfBfBfBfBfBfBfBgZgZgZaPgZiJiJiJiJgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaagZiNiNiNiNgZaaaaaagZiOiPiQgeiRgCgChFgCgCgCgCgCgCgeiSiTiUgZaaaaaagZiNiNiNiNgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaaaaaaSaSaaaaaaaaaaaaaaaaaagZiViWiWiXgZaaaaaaiYhDiZjafLfCfDfDfDfDfDfDfDfDfDfLjbjcjdjeaaaaaagZiViWiWiXgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZjfjgjafLjhfBfBjifBfBjifBfBjjfLjbjkjlgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYhDjmjafLfCfDjnhlkxhlhljofDfDfLjbjpjdjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgFjsjafLfCfDjtjujujujujvfDfDfLjbjwjxgZjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZjzjafLfCjAfDfDfDfDfDfDjAfDfLjbjzgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZjBfLjCetjDfDfDfDfDjEetjDfLjBgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZfLjFjGgCgDfDfDfDfDjHfDfLgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZfLfLfLfLfCfDfDfDfLfLfLfLgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZfLjIjJfLfCfDfDfDfLjKjLfLgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZjMgZgZgZjNgZgZjOgZgZgZjMgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjPjQjRjSjSjTjQjPjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajUjSjRjSjSjTjSjUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajUjSjRjSjSjTjSjUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajUjVjWjVjVjXjVjUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjPjTjYjZjZjZkajPjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjPjTjTkbjTjTkckdkejPjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjTjTkfkgkckckckhkijTjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaababahahahahaVahapahahahababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPababababaQaZabaRababababaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaTaFaFahbgaFapaFaFasabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaFaFaFahbgaUavaFaFaFabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPacaFahahahbpapahahahaWacaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaXahahaYeBbabbahahbcabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPabbdahbebfeEbhbiahahbjabaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaaacaFahahahaVbkblahahbmacaaaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPabaPaPabaFhxhyhyhzapaFaFbnboabaPaPabaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaPaaaaabasasasashAbqasasasasabaaaaaPaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaPaPaaaPaaaaabbrbrbrbraVapbrbriBbrabaaaaaPaaaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaabsbtbubvbvbwbtbsbsbsbsbsbsbsbsbsbsabbrbxbybraVapbrbxbybrababababababababababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaabsbsdvbAbBbBbCdvbDbEbFbGbGbGbGbGbGbHasbIbJbKbraVapbrbJbKbLasbMbNbObPbQbRbTbTababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbUdvbBbBbBbBbVdvbEbWbXbYbZbZcabZbWasbrcbccbraVapbrbrbrbrabcdcecdasascfbTcgchabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscidvbBcjbBbBdvdvbEbWbZbZbZbXbZbZbWasbrbrbrbraVapahahahahckclcmcnascocfbTbTcpabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscqbVbBbBbBbBdvcrbEcsbZbZbZbZbZbZcsasbrctctbraVapcuahcuahabcdcecdcvcwcxbTbTcyabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsczdvbBbBbBbBdvkwbEcAcBbZbZbZbZbZcCasbrcDcDbraVcEanananancFbOcGclcHascfbTbScpabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscIdvbBbBcJbBdvjrbEcAcKcKcKcKcKcKcCasbrcLbrbraVapbrbrbrbrabcdclcdclcdcfcgbTchabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscMdvcNbBbBcOdvjrbEcPcQcQcQcQcQcQcRascSbxbybraVapbrbxbybLascTcdclcUcVcWbTbTababaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabscXcYcZcZcZcZdadvbEdbdcdcdcdcdcdcddasbrbJbKbraVapbrbJbKbrasasasasasasasasasabbsbsbsbsbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdededebVbVdvcMdvbEdcdcdfdcdfdcdfdcasbrbrbrbraVapbrbrbrbrasdhdidjdkdidididjdidlbEdmdmdnbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdodpdqbVdvdvcMdrbEdcdcdsdcdsdcdsdcasaFaFaFaFaVapaFaFaFaFasdtdudvjMdudvdvdvdvdwbEdmdmdmdmbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdxdydzcYcYcYdAdvbEdcdcdcdcdfdcdfdcasaFdBdBaFaVapaFdBdBaFasdtdvdvdvdvdvdvdCdDdwdEdmkydmdFbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdGdpdHbVdvdvcMdvbEdcdcdcdcdsdcdsdcasaFdBdBaFaVapaFdBdBaFasdtdudvdvdudIdvdJdKdwbEdmdmdmdmbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdedededvbVdvcMdvbEdcdcdcdcdcdcdcdcasaFdBdBaFaVapaFdBdBaFasdtdvdvdvdvdvdvdLdMdNdOdPdQdmdRbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbsbsbsbEbEbEdSdTbEbEbEdUdUbEbEbEbEbEasasasasasaVapasasasasasdtdudvdvdvdVdvdvdWdwbEdXdYdmdRbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdZdZbseaebecedeeefegeheieieihBeiejeiegeieieieihCeleieieieibEemenenenenendvdveoepbEdXdYdmeqbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsererbseseteuedeeeieieieieieihEeieveieieieieieihEeveieieieibEbEbEbEbEbEbEewewbEbEbEbEexbEbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeyezbBhHhGkEhIkEkEkGkFkHkHkHkHkHkIkHkJkHkHkHkHkHkHkKkJkHkHkHkFkMkLkLkLkOkNkPeCeCeCeFeGeGeHeGbsbsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIbsbBbBereJeJeJeKeeeiekeLeMekeLeMekeNeMekeLeMekeLkQeleLeMekeObEeCeCeCePeCeCeCeCeCeFeGeGeHeQbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeIbsbBbBereReReReSeeeiekeTeUekeTeUekeVeUekeTeUekeTkReleTeUekeieWeCeCeCeXeCeDeCeCeCeFeGeGeHeYbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaeZezbBbBeAdvfadvdveeeiekekekekekekekelekekekfbfcfckSfdfcfcfcfefffgfgfgfgfgfhfgfgfgfifjfjfkflbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsererbsfmetfnedeeeieieieieieieieieveieieieveieihEeieieieieibEeCfofpfqeCeXeCeCeCeFeGeGeGfrbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsdZdZbsfsftfuedfvfwfefefefefxeieifyfefefefzekeihEekekeieieibEeCeCeCeCfAeCeCeCeCeFeGeGeGbsbsaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbsbsbsbsbsbEdSdTbEbEbEbEbEererererbEbEfBfCfDfBkTfDfDfBbEbEbEbEbEbEbEbEbEbEbEbEbEbEbEbsbsaPaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbBbBbBfEfFfGfHfIfIfJbEfKdcdcdcdcdcbEfLfCfDfLkUfDfDfMbEfNfOfPbzbzkvfQfRfSfTdvdvfUbsbsaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsfVfWbBfXfYdvdvdvfZgabEdcgbdcgcgcdcgdgegffDfLkUfDfDfLbEggghgigjggcAdvgkdvdvdvdvbsbsaPaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaabsglbBbBgmfYdvgndvdvgobEdcdfdcdcdcdcgpfLfDfDfLkUfDfDfLbEgggqggggggcAfQkzdvdvfUbsbsaPaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaabsgrgrgrfXfYdvdudvdvgsbEgtdsdckAgudcgpfLfDfDfLkUfDfDgvbEgwgqggggggcAdvgxdvgybsbsaPaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSkBaSaSaSaaaaaaaaaaaaaaaaaabsgzgzgzfXfYdvgAdvgngobEdcgbdcdcdcdcgBgegCgDfLkUfDfDfLbEgggqdggEgGcAgHfRfUbsbsaPaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaabsbBgIbBgmfYdvdudvdugobEdcdfdcgJgKdcbEfLfDfCfLkUfDfDfLbEgggqgLgLgLcAdvgMbsbsaPaaaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaabsgNbBbBfXfYdvgndvgngobEdcdsdcdcdcdcgOfDfDgPgekVgCgCgCgQgRgSgGgGgTcAgUbsbsaPaaaaaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabsbBbBgIgVgWgXgYgXgYdmbEdcdcdcdcdcdcbEfLfDfCfLkUfDfDfLbEgggggLgLgLcAbsbsaPaaaaaaaaaaaaaPaaaPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZgZgZgZgZgZgZgZgZgZgZfBfBfBfBfBfBfBfBfBhafBkThbfBfBfBfBfBfBfBfBfBgZgZgZgZgZgZgZgZgZgZgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchdhehehfhghhhigZhjgZhkhlhlhmhlhlhnfDfDfCfDkWfDfDfDhkhlhlhmhlhlhogZhjgZhphqhrhshthuhchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchvhwhekYkXlakZlclblcldlelelelelelflglglilhljlglglgldlelelelelelklclllclnlmlplohchchKhcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchLhchchMhphphNgZhOgZhkhPhQhRhShTfBhUhUhUfCkWhUhUhUfBhVhWhXhYhZhngZhOgZiaibhplqhchchchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchvhwheicidhliegZgZgZfBfBfBfBfBfBfBhUifhUfCkWhUifhUfBfBfBfBfBfBfBgZgZgZighphplrlshchKhcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchLhchcihhphpiegZaagZiiiiiiijiiikfBhUifhUfCkWhUifhUfBiiiiijiiiiiigZaagZilhplulthchchchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhcimhwhehJhphpingZaagZiiiiiiiiiiiiiohUifhUfCkWhUifhUioiiiiiiiiiiiigZaagZipiqlulvlshchKhcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZhchchchchphlhpirgZaagZisiiiiitfBfBfBiuifhUfCkWhUifivfBfBfBiwiiiiixgZaagZiyhpluluhchchchcgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZhphlidhphphlhNgZaagZiiiiiiiiioizfBhUifhUfCkWhUifhUfBiAioiiiiiiiigZaagZkChlluluhphlhpgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZhphphlhlhpiCgZaagZisiiiiiifBfBfBhUifhUfCkWhUifhUfBfBfBiiiiiiixgZaagZhlhlhphphlhpgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZhphlhphphlgZaPgZiiiiiiiiioiDfBiEifhUfCkWhUifhUfBiAioiiiiiiiigZaPgZhlhphphpiFgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZgZgZiGgZgZaagZisiiiiitfBfBfBhUifhUfCkWhUifhUfBfBfBiwiiiiixgZaagZgZiGgZgZgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZiHiIiJiJgZaPgZiiiiiiiiioiKfBhUhUiLgfkWhUhUhUfBiAioiiiiiiiigZaPgZiJiJiIiMgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaagZiJiJiJiJgZaPgZgZgZfBfBfBfBfBfBfBhafBkThbfBfBfBfBfBfBfBgZgZgZaPgZiJkDiJiJgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaagZiNiNiNiNgZaaaaaagZiOiPiQgeiRgCgChFgClwgCgCgCgCgeiSiTiUgZaaaaaagZiNiNiNiNgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaaaaaaaSaSaaaaaaaaaaaaaaaaaagZiViWiWiXgZaaaaaaiYhDiZjafLfCfDfDfDfDkWfDfDfDfDfLjbjcjdjeaaaaaagZiViWiWiXgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZjfjgjafLjhfBfBjifBkTjifBfBjjfLjbjkjlgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiYhDjmjafLfCfDjnhlkxlxhljofDfDfLjbjpjdjqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSaSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgFjsjafLfCfDjtjujulyjujvfDfDfLjbjwjxgZjyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZjzjafLfCjAfDfDfDkWfDfDjAfDfLjbjzgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZjBfLjCetjDfDfDkWfDjEetjDfLjBgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZfLjFjGgCgDfDkWfDfDjHfDfLgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZfLfLfLfLfCfDkWfDfLfLfLfLgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZfLjIjJfLfClzlAfDfLjKjLfLgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagZgZgZgZgZjNgZlBjOgZgZgZgZgZaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjPjQjRjSlCjTjQjPjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajUjSjRjSlCjTjSjUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajUjSjRjSlCjTjSjUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajUjVjWjVlDjXjVjUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjPjTjYjZlEjZkajPjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjPjTjTkbjTlFkckdkejPjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjTjTkfkgkclGkckhkijTjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjTkckckjkkklkckckcjTjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjTkckckmknkokckckcjTjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaajPjTjTkckpkqkrkckcjTjTjPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+1 -1
View File
@@ -46,7 +46,7 @@
"aT" = (/obj/structure/dresser,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
"aU" = (/obj/structure/ladder/dive_point/anchor,/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
"aV" = (/obj/structure/barricade/wooden,/turf/unsimulated/beach/water/deep/wood_floor,/area/awaymission/undersea)
"aW" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
"aW" = (/obj/structure/grille/broken,/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
"aY" = (/obj/structure/closet/crate{icon_state = "crateopen"; opened = 1},/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/obj/item/weapon/coin/gold,/turf/unsimulated/beach/water/deep/sand_floor,/area/awaymission/undersea)
"aZ" = (/turf/unsimulated/beach/sand{density = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow"; name = "rough sand"},/area/awaymission/beach)
"ba" = (/obj/structure/flora/rock,/turf/unsimulated/beach/sand{density = 1; icon = 'icons/turf/snow.dmi'; icon_state = "gravsnow"; name = "rough sand"},/area/awaymission/beach)
File diff suppressed because one or more lines are too long
+12 -12
View File
@@ -629,7 +629,7 @@
"ame" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"amf" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"amg" = (/obj/structure/closet/secure_closet/security,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/item/device/spacepod_equipment/weaponry/laser,/obj/machinery/power/apc{dir = 4; name = "east bump"; pixel_x = 24},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/security/podbay)
"amh" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/lattice,/turf/space,/area/space)
"amh" = (/obj/structure/grille/broken,/obj/structure/lattice,/turf/space,/area/space)
"ami" = (/obj/structure/stool/bed/chair{dir = 4},/obj/item/clothing/mask/breath,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"amj" = (/obj/item/clothing/head/collectable/xenom,/obj/item/clothing/head/chicken,/obj/item/weapon/aiModule/syndicate,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
"amk" = (/obj/item/stack/spacecash/c1000,/obj/item/stack/spacecash/c500,/turf/simulated/shuttle/floor4/vox,/area/shuttle/vox)
@@ -792,7 +792,7 @@
"apl" = (/obj/structure/table/reinforced,/obj/item/weapon/folder/red{pixel_y = 3},/turf/simulated/floor/plasteel,/area/security/main)
"apm" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Security Officer"},/turf/simulated/floor/plasteel{icon_state = "red"; dir = 8},/area/security/main)
"apn" = (/turf/simulated/floor/plasteel{icon_state = "red"; dir = 4},/area/security/main)
"apo" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"apo" = (/obj/structure/grille/broken,/turf/space,/area/space)
"app" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
"apq" = (/turf/simulated/floor/plating/airless,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/auxstarboard)
"apr" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/power/solar{id = "portsolar"; name = "Port Solar Array"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/solar/auxstarboard)
@@ -1254,7 +1254,7 @@
"ayf" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"ayg" = (/obj/effect/decal/cleanable/cobweb2,/obj/machinery/atmospherics/unary/portables_connector{layer = 2},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"ayh" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "security_airlock"; pixel_x = -25; req_access_txt = "13"; tag_airpump = "security_pump"; tag_chamber_sensor = "security_sensor"; tag_exterior_door = "security_outer"; tag_interior_door = "security_inner"},/turf/simulated/floor/plating,/area/maintenance/fsmaint)
"ayi" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"ayi" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
"ayj" = (/obj/effect/landmark{name = "Syndicate-Commando-Bomb"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_elite)
"ayk" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
"ayl" = (/obj/effect/decal/remains/human,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate_sit)
@@ -2344,7 +2344,7 @@
"aTd" = (/turf/simulated/floor/plasteel{icon_state = "freezerfloor"},/area/crew_quarters/fitness)
"aTe" = (/obj/machinery/computer/mob_battle_terminal/blue,/turf/simulated/floor/plasteel{icon_state = "neutral"; dir = 4},/area/crew_quarters/fitness)
"aTf" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/crew_quarters/fitness)
"aTg" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aTg" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aTh" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aTi" = (/obj/machinery/power/terminal,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/maintenance/electrical)
"aTj" = (/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating,/area/maintenance/electrical)
@@ -2484,7 +2484,7 @@
"aVN" = (/obj/machinery/atmospherics/binary/valve,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aVO" = (/obj/effect/decal/cleanable/blood/oil/streak,/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aVP" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aVQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/window/basic{dir = 4},/obj/structure/window/basic,/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2)
"aVQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/grille/broken,/obj/structure/window/basic{dir = 4},/obj/structure/window/basic,/turf/simulated/floor/plating{icon_state = "panelscorched"},/area/maintenance/fsmaint2)
"aVR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "maint1"; name = "Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aVS" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "maint1"; name = "Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/maintenance/fsmaint2)
"aVT" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor/plasteel{icon_state = "dark"},/area/chapel/main)
@@ -3485,7 +3485,7 @@
"bpc" = (/obj/structure/closet/wardrobe/mixed,/obj/item/device/radio/intercom{dir = 0; name = "station intercom (General)"; pixel_x = -28},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"bpd" = (/obj/effect/landmark{name = "lightsout"},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"bpe" = (/obj/structure/sign/poster/legit{pixel_x = 32},/turf/simulated/floor/plasteel,/area/crew_quarters/locker)
"bpf" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/port)
"bpf" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/maintenance/port)
"bpg" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/structure/table,/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/storage/toolbox/emergency,/turf/simulated/floor/plating,/area/storage/emergency2)
"bph" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/storage/emergency2)
"bpi" = (/obj/machinery/portable_atmospherics/canister/air,/obj/effect/decal/warning_stripes/white/hollow,/turf/simulated/floor/plating,/area/storage/emergency2)
@@ -4121,7 +4121,7 @@
"bBo" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/plasteel,/area/quartermaster/office)
"bBp" = (/obj/structure/table,/obj/machinery/light{dir = 4},/obj/machinery/recharger,/turf/simulated/floor/plasteel{icon_state = "arrival"; dir = 4},/area/quartermaster/office)
"bBq" = (/obj/machinery/atm{pixel_x = -32},/turf/simulated/floor/plasteel{dir = 8; icon_state = "browncorner"},/area/hallway/primary/central/west)
"bBr" = (/obj/item/weapon/hand_labeler,/obj/item/device/assembly/timer,/obj/structure/table,/turf/simulated/floor/wood,/area/bridge/meeting_room)
"bBr" = (/obj/item/device/assembly/timer,/obj/structure/table,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/wood,/area/bridge/meeting_room)
"bBs" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/wood,/area/bridge/meeting_room)
"bBt" = (/obj/structure/stool/bed/chair/comfy/black{dir = 4},/turf/simulated/floor/carpet,/area/bridge/meeting_room)
"bBu" = (/obj/structure/table/woodentable,/obj/item/device/radio/intercom/command,/turf/simulated/floor/carpet,/area/bridge/meeting_room)
@@ -4803,7 +4803,7 @@
"bOu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plasteel,/area/hallway/primary/central/sw)
"bOv" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/obj/item/device/radio/intercom{dir = 4; name = "station intercom (General)"; pixel_x = 28},/turf/simulated/floor/plasteel{dir = 2; icon_state = "redcorner"},/area/hallway/primary/central/sw)
"bOw" = (/obj/machinery/computer/secure_data,/obj/machinery/flasher_button{id = "hopflash"; pixel_x = 6; pixel_y = 36},/obj/machinery/door_control{id = "hopqueue"; name = "Queue Privacy Shutters Control"; pixel_x = -4; pixel_y = 25; req_access_txt = "28"},/obj/machinery/door_control{id = "hop"; name = "Privacy Shutters Control"; pixel_x = 6; pixel_y = 25; req_access_txt = "28"},/obj/machinery/light_switch{pixel_x = -4; pixel_y = 36},/turf/simulated/floor/plasteel{dir = 9; icon_state = "blue"},/area/crew_quarters/heads)
"bOx" = (/obj/structure/table,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/item/stack/packageWrap,/obj/item/weapon/hand_labeler,/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bOx" = (/obj/structure/table,/obj/machinery/newscaster/security_unit{pixel_x = 0; pixel_y = 32},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/computer/skills{req_access_txt = "57"},/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bOy" = (/obj/machinery/disposal,/obj/structure/disposalpipe/trunk,/obj/machinery/recharger/wallcharger{pixel_x = 0; pixel_y = 30},/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bOz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/photocopier,/obj/machinery/power/apc{dir = 1; name = "north bump"; pixel_x = 0; pixel_y = 24},/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
"bOA" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plasteel,/area/crew_quarters/heads)
@@ -6108,7 +6108,7 @@
"cnz" = (/turf/simulated/floor/plasteel{dir = 2; icon_state = "yellowcorner"},/area/hallway/primary/aft)
"cnA" = (/obj/machinery/door/airlock/maintenance{name = "Custodial Maintenance"; req_access_txt = "26"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cnB" = (/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/machinery/power/apc{dir = 8; name = "west bump"; pixel_x = -24; shock_proof = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cnC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cnC" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cnD" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/maintenance{name = "Paramedic Maintenance"; req_access_txt = "66"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cnE" = (/obj/machinery/door/firedoor,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "scansep"; name = "Scanning Room Separation Shutters"; opacity = 0},/turf/simulated/floor/plasteel{icon_state = "white"},/area/medical/sleeper)
"cnF" = (/obj/structure/sign/nosmoking_2,/turf/simulated/wall,/area/medical/sleeper)
@@ -6291,7 +6291,7 @@
"cra" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint)
"crb" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"crc" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/effect/decal/cleanable/fungus,/turf/simulated/wall,/area/maintenance/asmaint)
"crd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"crd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"cre" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"crf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"crg" = (/obj/machinery/navbeacon{codes_txt = "delivery"; dir = 4; location = "Medbay"},/obj/structure/plasticflaps{opacity = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plasteel{icon_state = "bot"},/area/maintenance/asmaint)
@@ -6509,7 +6509,7 @@
"cvk" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"cvl" = (/obj/structure/closet/firecloset,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"cvm" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"cvn" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating,/area/maintenance/apmaint)
"cvn" = (/obj/structure/grille/broken,/turf/simulated/floor/plating,/area/maintenance/apmaint)
"cvo" = (/turf/simulated/wall,/area/maintenance/consarea)
"cvp" = (/turf/simulated/wall/r_wall,/area/maintenance/apmaint)
"cvq" = (/turf/simulated/wall/r_wall,/area/storage/tech)
@@ -8513,7 +8513,7 @@
"dhM" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/obj/machinery/disposal,/obj/structure/sign/deathsposal{pixel_y = 32},/obj/structure/disposalpipe/trunk,/turf/simulated/floor/plating,/area/maintenance/turbine)
"dhN" = (/obj/machinery/power/smes{capacity = 9e+006; charge = 10000},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel{icon_state = "floorgrime"},/area/maintenance/turbine)
"dhO" = (/obj/effect/landmark{name = "xeno_spawn"; pixel_x = -1},/turf/simulated/floor/plating,/area/maintenance/asmaint)
"dhP" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"dhP" = (/obj/structure/grille/broken,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"dhQ" = (/obj/structure/grille,/turf/simulated/floor/plating,/area/maintenance/asmaint)
"dhR" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/wall,/area/maintenance/asmaint2)
"dhS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/maintenance/asmaint2)
+1 -1
View File
@@ -28,7 +28,7 @@
"bY" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space)
"bZ" = (/obj/machinery/power/solar,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plasteel/airless{icon_state = "solarpanel"},/area/space)
"ca" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space)
"cb" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space)
"cb" = (/obj/structure/lattice,/obj/structure/grille/broken,/turf/space,/area/space)
"cc" = (/obj/machinery/camera{c_tag = "Telecomms North Solars"; dir = 8; network = list("Telecomms")},/turf/space,/area/space)
"cd" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space)
"ce" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/space)
+2 -2
View File
@@ -842,7 +842,7 @@
"qj" = (/obj/structure/transit_tube{tag = "icon-W-NE"; icon_state = "W-NE"},/obj/effect/decal/warning_stripes/yellow,/turf/simulated/floor/plasteel/airless,/area/mine/dangerous/explored)
"qk" = (/obj/structure/transit_tube/station,/obj/effect/decal/warning_stripes/yellow/hollow,/turf/simulated/floor/plasteel/airless,/area/mine/dangerous/explored)
"ql" = (/obj/machinery/door/airlock/external{name = "External Airlock"; req_access_txt = "0"},/turf/simulated/floor/plasteel/airless{dir = 5; icon_state = "asteroidfloor"; tag = "icon-asteroidfloor"},/area/mine/abandoned)
"qm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"qm" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille/broken,/obj/item/weapon/shard{icon_state = "small"},/obj/item/stack/rods,/turf/simulated/floor/plating/airless,/area/mine/abandoned)
"qn" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 1},/turf/space,/area/mine/dangerous/explored)
"qo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/mine/dangerous/explored)
"qp" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/dangerous/explored)
@@ -859,7 +859,7 @@
"qA" = (/turf/simulated/floor/plasteel/airless{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
"qB" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{tag = "icon-asteroidwarning"; icon_state = "asteroidwarning"; dir = 2},/area/mine/abandoned)
"qC" = (/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/dangerous/unexplored)
"qD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/abandoned)
"qD" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/grille/broken,/obj/item/stack/rods,/obj/item/weapon/shard,/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/abandoned)
"qE" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/dangerous/explored)
"qF" = (/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/turf/simulated/floor/plating/airless{icon_state = "asteroidplating"; tag = ""},/area/mine/dangerous/explored)
"qG" = (/turf/simulated/floor/plasteel{icon_plating = "asteroid"; icon_state = "asteroid"; name = "Asteroid"},/area/mine/dangerous/explored)
+3 -3
View File
@@ -211,7 +211,7 @@
"ec" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/simulated/floor/plasteel,/area/derelict/bridge)
"ed" = (/obj/item/stack/rods,/turf/space,/area/space)
"ee" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"ef" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"ef" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"eg" = (/obj/item/clothing/suit/space/syndicate/black/engie,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"eh" = (/obj/structure/shuttle/engine/propulsion{dir = 4; icon_state = "propulsion_l"; tag = "icon-propulsion_l (WEST)"},/turf/space,/area/space)
"ei" = (/obj/item/weapon/shard,/turf/simulated/floor/plasteel/airless{icon_state = "damaged5"},/area/derelict/singularity_engine)
@@ -297,7 +297,7 @@
"fK" = (/obj/machinery/door/window{dir = 2},/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"fL" = (/turf/simulated/floor/plasteel/airless{icon_state = "floorscorched1"},/area/space)
"fM" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plasteel/airless{icon_state = "damaged2"},/area/derelict/singularity_engine)
"fN" = (/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fN" = (/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/derelict/singularity_engine)
"fO" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plasteel/airless{icon_state = "damaged3"},/area/derelict/singularity_engine)
"fP" = (/turf/simulated/floor/plating/airless,/area/derelict/hallway/primary)
"fQ" = (/obj/item/weapon/crowbar,/turf/simulated/floor/plasteel/airless,/area/derelict/hallway/primary)
@@ -333,7 +333,7 @@
"gu" = (/turf/simulated/wall,/area/derelict/medical)
"gv" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gw" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gx" = (/obj/item/weapon/shard,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gx" = (/obj/item/weapon/shard,/obj/structure/grille/broken,/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gy" = (/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gz" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/simulated/floor/plating/airless,/area/derelict/medical)
"gA" = (/obj/machinery/door/airlock/external{name = "External Engineering"},/turf/simulated/floor/plating/airless,/area/space)
+7
View File
@@ -0,0 +1,7 @@
/*ALL DEFINES RELATED TO CONSTRUCTION, CONSTRUCTING THINGS, OR CONSTRUCTED OBJECTS GO HERE*/
//Defines for construction states
//plastic flaps construction states
#define PLASTIC_FLAPS_NORMAL 0
#define PLASTIC_FLAPS_DETACHED 1
+18 -7
View File
@@ -3,15 +3,18 @@
//PUBLIC - call these wherever you want
/mob/proc/throw_alert(category, type, severity, obj/new_master)
/mob/proc/throw_alert(category, type, severity, obj/new_master, override = FALSE)
/* Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already
/*
Proc to create or update an alert. Returns the alert if the alert is new or updated, 0 if it was thrown already
category is a text string. Each mob may only have one alert per category; the previous one will be replaced
path is a type path of the actual alert type to throw
severity is an optional number that will be placed at the end of the icon_state for this alert
For example, high pressure's icon_state is "highpressure" and can be serverity 1 or 2 to get "highpressure1" or "highpressure2"
new_master is optional and sets the alert's icon state to "template" in the ui_style icons with the master as an overlay.
Clicks are forwarded to master */
Clicks are forwarded to master
Override makes it so the alert is not replaced until cleared by a clear_alert with clear_override, and it's used for hallucinations.
*/
if(!category)
return
@@ -19,6 +22,8 @@
var/obj/screen/alert/alert
if(alerts[category])
alert = alerts[category]
if(alert.override_alerts)
return 0
if(new_master && new_master != alert.master)
WARNING("[src] threw alert [category] with new_master [new_master] while already having that alert with master [alert.master]")
clear_alert(category)
@@ -33,7 +38,10 @@
else //no need to update
return 0
else
alert = new type
alert = new type()
alert.override_alerts = override
if(override)
alert.timeout = null
if(new_master)
var/old_layer = new_master.layer
@@ -63,10 +71,12 @@
return alert
// Proc to clear an existing alert.
/mob/proc/clear_alert(category)
/mob/proc/clear_alert(category, clear_override = FALSE)
var/obj/screen/alert/alert = alerts[category]
if(!alert)
return 0
if(alert.override_alerts && !clear_override)
return 0
alerts -= category
if(client && hud_used)
@@ -83,6 +93,7 @@
var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds
var/severity = 0
var/alerttooltipstyle = ""
var/override_alerts = FALSE //If it is overriding other alerts of the same type
/obj/screen/alert/MouseEntered(location,control,params)
@@ -197,12 +208,12 @@ The box in your backpack has an oxygen tank and gas mask in it."
name = "High Pressure"
desc = "The air around you is hazardously thick. A fire suit would protect you."
icon_state = "highpressure"
/obj/screen/alert/lightexposure
name = "Light Exposure"
desc = "You're exposed to light."
icon_state = "lightexposure"
/obj/screen/alert/nolight
name = "No Light"
desc = "You're not exposed to any light."
+1 -1
View File
@@ -1173,7 +1173,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine
/datum/supply_packs/materials/plastic30
name = "30 Plastic Sheets Crate"
contains = list(/obj/item/stack/sheet/mineral/plastic)
contains = list(/obj/item/stack/sheet/plastic)
amount = 30
cost = 25
containername = "plastic sheets crate"
+4 -2
View File
@@ -81,8 +81,10 @@
for(var/obj/O in T.contents)
if(istype(O, /obj/structure/window))
src.window += 1
else if(istype(O, /obj/structure/grille) && (!O:destroyed))
src.grille += 1
else if(istype(O, /obj/structure/grille))
var/obj/structure/grille/GR = O
if(!GR.broken)
grille += 1
else if(istype(O, /obj/machinery/door))
src.door += 1
else if(istype(O, /obj/machinery))
+7
View File
@@ -59,6 +59,7 @@
dat += "Please choose the chant to be imbued into the fabric of reality.<BR>"
dat += "<HR>"
dat += "<A href='?src=[UID()];rune=newtome'>N'ath reth sh'yro eth d'raggathnor!</A> - Summons an arcane tome, used to scribe runes and communicate with other cultists.<BR>"
dat += "<A href='?src=[UID()];rune=metal'>Bar'tea eas!</A> - Provides 5 runed metal.<BR>"
dat += "<A href='?src=[UID()];rune=teleport'>Sas'so c'arta forbici!</A> - Allows you to move to a selected teleportation rune.<BR>"
dat += "<A href='?src=[UID()];rune=emp'>Ta'gh fara'qha fel d'amar det!</A> - Allows you to destroy technology in a short range.<BR>"
dat += "<A href='?src=[UID()];rune=runestun'>Fuu ma'jin!</A> - Allows you to stun a person by attacking them with the talisman.<BR>"
@@ -79,6 +80,12 @@
if("newtome")
var/obj/item/weapon/tome/T = new(usr)
usr.put_in_hands(T)
if("metal")
if(istype(src, /obj/item/weapon/paper/talisman/supply/weak))
usr.visible_message("<span class='cultitalic'>Lesser supply talismans lack the strength to materialize runed metal!</span>")
return
var/obj/item/stack/sheet/runed_metal/R = new(usr,5)
usr.put_in_hands(R)
if("teleport")
var/obj/item/weapon/paper/talisman/teleport/T = new(usr)
usr.put_in_hands(T)
+13 -13
View File
@@ -28,18 +28,18 @@
ME = new /obj/item/mecha_parts/mecha_equipment/gravcatapult
ME.attach(src)
/obj/mecha/combat/phazon/Bump(var/atom/obstacle)
if(phasing && get_charge() >= phasing_energy_drain)
spawn()
if(can_move)
can_move = 0
flick("phazon-phase", src)
forceMove(get_step(src, dir))
use_power(phasing_energy_drain)
sleep(step_in * 3)
can_move = 1
else
. = ..()
/obj/mecha/combat/phazon/mechstep(direction)
. = ..()
if(!. && phasing && get_charge() >= phasing_energy_drain)
if(can_move)
can_move = 0
flick("phazon-phase", src)
forceMove(get_step(src, direction))
use_power(phasing_energy_drain)
playsound(src,stepsound,40,1)
sleep(step_in * 3)
can_move = 1
return 1
/obj/mecha/combat/phazon/click_action(atom/target,mob/user)
if(phasing)
@@ -62,7 +62,7 @@
if("Torch")
damtype = "fire"
occupant_message("A torch tip extends from your exosuit's hand, glowing red.")
if("Toxic injector")
if("Toxic Injector")
damtype = "tox"
occupant_message("A bone-chillingly thick plasteel needle protracts from the exosuit's palm.")
playsound(src, 'sound/mecha/mechmove01.ogg', 50, 1)
+1 -1
View File
@@ -334,7 +334,7 @@
else if(istype(obstacle, /obj/structure/grille/))
var/obj/structure/grille/G = obstacle
G.health = (0.25*initial(G.health))
G.destroyed = 1
G.broken = 1
G.icon_state = "[initial(G.icon_state)]-b"
G.density = 0
new /obj/item/stack/rods(get_turf(G.loc))
+3
View File
@@ -6,6 +6,7 @@
icon = 'icons/obj/weapons.dmi'
icon_state = "uglyminearmed"
var/triggered = 0
var/faction = "syndicate"
/obj/effect/mine/proc/mineEffect(mob/living/victim)
to_chat(victim, "<span class='danger'>*click*</span>")
@@ -15,6 +16,8 @@
return
if(isanimal(AM))
var/mob/living/simple_animal/SA = AM
if(faction && (faction in SA.faction))
return
if(!SA.flying)
triggermine(SA)
else
@@ -35,6 +35,7 @@
return 0
on = !on
playsound(user, 'sound/weapons/empty.ogg', 100, 1)
update_brightness(user)
for(var/X in actions)
var/datum/action/A = X
+12 -39
View File
@@ -1,3 +1,7 @@
var/global/list/datum/stack_recipe/rod_recipes = list ( \
new/datum/stack_recipe("grille", /obj/structure/grille, 2, time = 10, one_per_turf = 1, on_floor = 1), \
)
/obj/item/stack/rods
name = "metal rod"
desc = "Some rods. Can be used for building, or something."
@@ -11,7 +15,7 @@
throw_speed = 3
throw_range = 7
materials = list(MAT_METAL=1000)
max_amount = 60
max_amount = 50
attack_verb = list("hit", "bludgeoned", "whacked")
hitsound = 'sound/weapons/grenadelaunch.ogg'
toolspeed = 1
@@ -20,9 +24,9 @@
/obj/item/stack/rods/cyborg
materials = list()
/obj/item/stack/rods/New(var/loc, var/amount=null)
/obj/item/stack/rods/New(loc, amount=null)
..()
recipes = rod_recipes
update_icon()
/obj/item/stack/rods/update_icon()
@@ -32,12 +36,12 @@
else
icon_state = "rods"
/obj/item/stack/rods/attackby(obj/item/W as obj, mob/user as mob, params)
/obj/item/stack/rods/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W
if(get_amount() < 2)
to_chat(user, "<span class='warning'>You need at least two rods to do this.</span>")
to_chat(user, "<span class='warning'>You need at least two rods to do this!</span>")
return
if(WT.remove_fuel(0,user))
@@ -47,9 +51,9 @@
// stack was moved into another one on the pile
new_item = locate() in user.loc
user.visible_message("<span class='warning'>[user.name] shaped [src] into metal with the weldingtool.</span>", \
"<span class='notice'>You shaped [src] into metal with the weldingtool.</span>", \
"<span class='warning'>You hear welding.</span>")
user.visible_message("[user.name] shape [src] into metal with the welding tool.", \
"<span class='notice'>You shape [src] into metal with the welding tool.</span>", \
"<span class='italics'>You hear welding.</span>")
var/replace = user.get_inactive_hand() == src
use(2)
@@ -59,34 +63,3 @@
user.put_in_hands(new_item)
return
..()
/obj/item/stack/rods/attack_self(mob/user as mob)
src.add_fingerprint(user)
if(!istype(user.loc,/turf)) return 0
if(locate(/obj/structure/grille, usr.loc))
for(var/obj/structure/grille/G in usr.loc)
if(G.destroyed)
G.health = 10
G.density = 1
G.destroyed = 0
G.icon_state = "grille"
use(1)
else
return 1
else
if(amount < 2)
to_chat(user, "\blue You need at least two rods to do this.")
return
to_chat(usr, "\blue Assembling grille...")
if(!do_after(usr, 10, target = user))
return
var /obj/structure/grille/F = new /obj/structure/grille/ ( usr.loc )
to_chat(usr, "\blue You assemble a grille")
F.add_fingerprint(usr)
use(2)
return
@@ -5,7 +5,6 @@ Mineral Sheets
- Diamond
- Uranium
- Plasma
- Plastic
- Gold
- Silver
- Bananium
@@ -77,23 +76,6 @@ var/global/list/datum/stack_recipe/plasma_recipes = list ( \
new/datum/stack_recipe("Xenomorph Statue", /obj/structure/statue/plasma/xeno, 5, one_per_turf = 1, on_floor = 1), \
)
var/global/list/datum/stack_recipe/plastic_recipes = list ( \
new/datum/stack_recipe("plastic crate", /obj/structure/closet/crate/plastic, 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("plastic ashtray", /obj/item/ashtray/plastic, 2, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("plastic fork", /obj/item/weapon/kitchen/utensil/pfork, 1, on_floor = 1), \
new/datum/stack_recipe("plastic spoon", /obj/item/weapon/kitchen/utensil/pspoon, 1, on_floor = 1), \
new/datum/stack_recipe("plastic knife", /obj/item/weapon/kitchen/knife/plastic, 1, on_floor = 1), \
new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1), \
new/datum/stack_recipe("bear mould", /obj/item/weapon/kitchen/mould/bear, 1, on_floor = 1), \
new/datum/stack_recipe("worm mould", /obj/item/weapon/kitchen/mould/worm, 1, on_floor = 1), \
new/datum/stack_recipe("bean mould", /obj/item/weapon/kitchen/mould/bean, 1, on_floor = 1), \
new/datum/stack_recipe("ball mould", /obj/item/weapon/kitchen/mould/ball, 1, on_floor = 1), \
new/datum/stack_recipe("cane mould", /obj/item/weapon/kitchen/mould/cane, 1, on_floor = 1), \
new/datum/stack_recipe("cash mould", /obj/item/weapon/kitchen/mould/cash, 1, on_floor = 1), \
new/datum/stack_recipe("coin mould", /obj/item/weapon/kitchen/mould/coin, 1, on_floor = 1), \
new/datum/stack_recipe("sucker mould", /obj/item/weapon/kitchen/mould/loli, 1, on_floor = 1), \
)
var/global/list/datum/stack_recipe/bananium_recipes = list ( \
new/datum/stack_recipe("bananium tile", /obj/item/stack/tile/mineral/bananium, 1, 4, 20), \
null, \
@@ -196,19 +178,6 @@ var/global/list/datum/stack_recipe/abductor_recipes = list ( \
atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, amount*10)
qdel(src)
/obj/item/stack/sheet/mineral/plastic
name = "Plastic"
icon_state = "sheet-plastic"
origin_tech = "materials=3"
/obj/item/stack/sheet/mineral/plastic/New()
..()
recipes = plastic_recipes
/obj/item/stack/sheet/mineral/plastic/cyborg
name = "plastic sheets"
icon_state = "sheet-plastic"
/obj/item/stack/sheet/mineral/gold
name = "gold"
icon_state = "sheet-gold"
@@ -4,7 +4,9 @@
* Plasteel
* Wood
* Cloth
* Plastic
* Cardboard
* Runed Metal (cult)
*/
/*
@@ -290,3 +292,39 @@ var/global/list/datum/stack_recipe/runed_metal_recipes = list ( \
throw_speed = 1
throw_range = 3
origin_tech = "materials=2;biotech=2"
var/global/list/datum/stack_recipe/plastic_recipes = list ( \
new/datum/stack_recipe("plastic flaps", /obj/structure/plasticflaps, 5, one_per_turf = 1, on_floor = 1, time = 40), \
new/datum/stack_recipe("plastic crate", /obj/structure/closet/crate/plastic, 10, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("plastic ashtray", /obj/item/ashtray/plastic, 2, one_per_turf = 1, on_floor = 1), \
new/datum/stack_recipe("plastic fork", /obj/item/weapon/kitchen/utensil/pfork, 1, on_floor = 1), \
new/datum/stack_recipe("plastic spoon", /obj/item/weapon/kitchen/utensil/pspoon, 1, on_floor = 1), \
new/datum/stack_recipe("plastic knife", /obj/item/weapon/kitchen/knife/plastic, 1, on_floor = 1), \
new/datum/stack_recipe("plastic bag", /obj/item/weapon/storage/bag/plasticbag, 3, on_floor = 1), \
new/datum/stack_recipe("bear mould", /obj/item/weapon/kitchen/mould/bear, 1, on_floor = 1), \
new/datum/stack_recipe("worm mould", /obj/item/weapon/kitchen/mould/worm, 1, on_floor = 1), \
new/datum/stack_recipe("bean mould", /obj/item/weapon/kitchen/mould/bean, 1, on_floor = 1), \
new/datum/stack_recipe("ball mould", /obj/item/weapon/kitchen/mould/ball, 1, on_floor = 1), \
new/datum/stack_recipe("cane mould", /obj/item/weapon/kitchen/mould/cane, 1, on_floor = 1), \
new/datum/stack_recipe("cash mould", /obj/item/weapon/kitchen/mould/cash, 1, on_floor = 1), \
new/datum/stack_recipe("coin mould", /obj/item/weapon/kitchen/mould/coin, 1, on_floor = 1), \
new/datum/stack_recipe("sucker mould", /obj/item/weapon/kitchen/mould/loli, 1, on_floor = 1), \
)
/obj/item/stack/sheet/plastic
name = "plastic"
desc = "Compress dinosaur over millions of years, then refine, split and mold, and voila! You have plastic."
singular_name = "plastic sheet"
icon_state = "sheet-plastic"
throwforce = 7
origin_tech = "materials=1;biotech=1"
/obj/item/stack/sheet/plastic/New()
recipes = plastic_recipes
. = ..()
/obj/item/stack/sheet/plastic/fifty
amount = 50
/obj/item/stack/sheet/plastic/five
amount = 5
+151
View File
@@ -0,0 +1,151 @@
/obj/item/weapon/twohanded/rcl
name = "rapid cable layer (RCL)"
desc = "A device used to rapidly deploy cables. It has screws on the side which can be removed to slide off the cables."
icon = 'icons/obj/tools.dmi'
icon_state = "rcl-0"
item_state = "rcl-0"
opacity = 0
force = 5 //Plastic is soft
throwforce = 5
throw_speed = 1
throw_range = 7
w_class = WEIGHT_CLASS_NORMAL
origin_tech = "engineering=4;materials=4"
var/max_amount = 90
var/active = 0
var/obj/structure/cable/last = null
var/obj/item/stack/cable_coil/loaded = null
/obj/item/weapon/twohanded/rcl/attackby(obj/item/weapon/W, mob/user)
if(istype(W, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = W
if(!loaded)
if(user.drop_item())
loaded = W
loaded.forceMove(src)
loaded.max_amount = max_amount //We store a lot.
else
to_chat(user, "<span class='warning'>[user.get_active_hand()] is stuck to your hand!</span>")
return
else
if(loaded.amount < max_amount)
var/amount = min(loaded.amount + C.amount, max_amount)
C.use(amount - loaded.amount)
loaded.amount = amount
else
return
update_icon()
to_chat(user, "<span class='notice'>You add the cables to the [src]. It now contains [loaded.amount].</span>")
else if(isscrewdriver(W))
if(!loaded)
return
to_chat(user, "<span class='notice'>You loosen the securing screws on the side, allowing you to lower the guiding edge and retrieve the wires.</span>")
while(loaded.amount > 30) //There are only two kinds of situations: "nodiff" (60,90), or "diff" (31-59, 61-89)
var/diff = loaded.amount % 30
if(diff)
loaded.use(diff)
new /obj/item/stack/cable_coil(user.loc, diff)
else
loaded.use(30)
new /obj/item/stack/cable_coil(user.loc, 30)
loaded.max_amount = initial(loaded.max_amount)
loaded.forceMove(user.loc)
user.put_in_hands(loaded)
loaded = null
update_icon()
else
..()
/obj/item/weapon/twohanded/rcl/examine(mob/user)
..()
if(loaded)
to_chat(user, "<span class='info'>It contains [loaded.amount]/[max_amount] cables.</span>")
/obj/item/weapon/twohanded/rcl/Destroy()
if(loaded)
qdel(loaded)
loaded = null
last = null
active = 0
return ..()
/obj/item/weapon/twohanded/rcl/update_icon()
if(!loaded)
icon_state = "rcl-0"
item_state = "rcl-0"
return
switch(loaded.amount)
if(61 to INFINITY)
icon_state = "rcl-30"
item_state = "rcl"
if(31 to 60)
icon_state = "rcl-20"
item_state = "rcl"
if(1 to 30)
icon_state = "rcl-10"
item_state = "rcl"
else
icon_state = "rcl-0"
item_state = "rcl-0"
/obj/item/weapon/twohanded/rcl/proc/is_empty(mob/user, loud = 1)
update_icon()
if(!loaded || !loaded.amount)
if(loud)
to_chat(user, "<span class='notice'>The last of the cables unreel from [src].</span>")
if(loaded)
qdel(loaded)
loaded = null
unwield(user)
active = wielded
return 1
return 0
/obj/item/weapon/twohanded/rcl/dropped(mob/wearer)
..()
active = 0
last = null
/obj/item/weapon/twohanded/rcl/attack_self(mob/user)
..()
active = wielded
if(!active)
last = null
else if(!last)
for(var/obj/structure/cable/C in get_turf(user))
if(C.d1 == 0 || C.d2 == 0)
last = C
break
/obj/item/weapon/twohanded/rcl/moved(mob/user, turf/old_loc, direct)
if(active)
trigger(user)
/obj/item/weapon/twohanded/rcl/proc/trigger(mob/user)
if(is_empty(user, 0))
to_chat(user, "<span class='warning'>\The [src] is empty!</span>")
return
if(last)
if(get_dist(last, user) == 1) //hacky, but it works
var/turf/T = get_turf(user)
if(!isturf(T) || T.intact || !T.can_have_cabling())
last = null
return
if(get_dir(last, user) == last.d2)
//Did we just walk backwards? Well, that's the one direction we CAN'T complete a stub.
last = null
return
loaded.cable_join(last, user)
if(is_empty(user))
return //If we've run out, display message and exit
else
last = null
last = loaded.place_turf(get_turf(loc), user, turn(user.dir, 180))
is_empty(user) //If we've run out, display message
/obj/item/weapon/twohanded/rcl/pre_loaded/New() //Comes preloaded with cable, for testing stuff
..()
loaded = new()
loaded.max_amount = max_amount
loaded.amount = max_amount
update_icon()
+167 -121
View File
@@ -7,11 +7,16 @@
anchored = 1
flags = CONDUCT
pressure_resistance = 5*ONE_ATMOSPHERE
layer = 2.9
var/health = 10
var/destroyed = 0
layer = BELOW_OBJ_LAYER
level = 3
var/health = 10
var/broken = 0
var/can_deconstruct = TRUE
var/rods_type = /obj/item/stack/rods
var/rods_amount = 2
var/rods_broken = 1
var/grille_type = null
var/broken_type = /obj/structure/grille/broken
/obj/structure/grille/fence/
var/width = 3
@@ -26,7 +31,6 @@
bound_width = world.icon_size
bound_height = width * world.icon_size
/obj/structure/grille/fence/east_west
//width=80
//height=42
@@ -38,19 +42,23 @@
icon='icons/fence-ns.dmi'
/obj/structure/grille/ex_act(severity)
qdel(src)
switch(severity)
if(1)
qdel(src)
else
take_damage(rand(5,10), BRUTE, 0)
/obj/structure/grille/blob_act()
qdel(src)
if(!broken)
obj_break()
/obj/structure/grille/Bumped(atom/user)
if(ismob(user)) shock(user, 70)
if(ismob(user))
shock(user, 70)
/obj/structure/grille/attack_hand(mob/living/user as mob)
/obj/structure/grille/attack_hand(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] kicks [src].</span>", \
"<span class='warning'>You kick [src].</span>", \
"You hear twisting metal.")
@@ -58,26 +66,23 @@
if(shock(user, 70))
return
if(HULK in user.mutations)
health -= 5
take_damage(5)
else
health -= 1
healthcheck()
take_damage(rand(1,2))
/obj/structure/grille/attack_alien(mob/living/user as mob)
if(istype(user, /mob/living/carbon/alien/larva)) return
/obj/structure/grille/attack_alien(mob/living/user)
if(istype(user, /mob/living/carbon/alien/larva))
return
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
user.visible_message("<span class='warning'>[user] mangles [src].</span>", \
"<span class='warning'>You mangle [src].</span>", \
"You hear twisting metal.")
if(!shock(user, 70))
health -= 5
healthcheck()
return
take_damage(5)
/obj/structure/grille/attack_slime(mob/living/user as mob)
/obj/structure/grille/attack_slime(mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
var/mob/living/carbon/slime/S = user
@@ -89,12 +94,11 @@
"<span class='warning'>You smash against [src].</span>", \
"You hear twisting metal.")
health -= rand(2,3)
healthcheck()
return
take_damage(rand(1,2))
/obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob)
if(M.melee_damage_upper == 0) return
/obj/structure/grille/attack_animal(mob/living/simple_animal/M)
if(M.melee_damage_upper == 0 || (M.melee_damage_type != BRUTE && M.melee_damage_type != BURN))
return
M.changeNext_move(CLICK_CD_MELEE)
M.do_attack_animation(src)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
@@ -102,18 +106,15 @@
"<span class='warning'>You smash against [src].</span>", \
"You hear twisting metal.")
health -= M.melee_damage_upper
healthcheck()
return
take_damage(rand(M.melee_damage_lower,M.melee_damage_upper), M.melee_damage_type)
/obj/structure/grille/mech_melee_attack(obj/mecha/M)
if(..())
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
health -= M.force * 0.5
healthcheck()
take_damage(M.force * 0.5, M.damtype)
/obj/structure/grille/CanPass(atom/movable/mover, turf/target, height=0)
if(height==0) return 1
if(height==0)
return 1
if(istype(mover) && mover.checkpass(PASSGRILLE))
return 1
else
@@ -128,118 +129,144 @@
var/atom/movable/mover = caller
. = . || mover.checkpass(PASSGRILLE)
/obj/structure/grille/bullet_act(var/obj/item/projectile/Proj)
if(!Proj)
return
..()
if((Proj.damage_type != STAMINA)) //Grilles can't be exhausted to death
src.health -= Proj.damage*0.3
healthcheck()
return
/obj/structure/grille/bullet_act(obj/item/projectile/Proj)
. = ..()
take_damage(Proj.damage*0.3, Proj.damage_type)
/obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
/obj/structure/grille/attackby(obj/item/weapon/W, mob/user, params)
user.changeNext_move(CLICK_CD_MELEE)
add_fingerprint(user)
if(iswirecutter(W))
if(!shock(user, 100))
playsound(loc, W.usesound, 100, 1)
if(!destroyed)
new /obj/item/stack/rods(loc, 2)
else
new /obj/item/stack/rods(loc)
qdel(src)
deconstruct()
else if((isscrewdriver(W)) && (istype(loc, /turf/simulated) || anchored))
if(!shock(user, 90))
playsound(loc, W.usesound, 100, 1)
anchored = !anchored
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] the grille.</span>", \
"<span class='notice'>You have [anchored ? "fastened the grille to" : "unfastened the grill from"] the floor.</span>")
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] [src].</span>", \
"<span class='notice'>You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.</span>")
return
else if(istype(W, /obj/item/stack/rods) && broken)
var/obj/item/stack/rods/R = W
if(!shock(user, 90))
user.visible_message("<span class='notice'>[user] rebuilds the broken grille.</span>", \
"<span class='notice'>You rebuild the broken grille.</span>")
new grille_type(loc)
R.use(1)
qdel(src)
return
//window placing begin
else if( istype(W,/obj/item/stack/sheet/rglass) || istype(W,/obj/item/stack/sheet/glass) || istype(W,/obj/item/stack/sheet/plasmaglass) || istype(W,/obj/item/stack/sheet/plasmarglass) )
var/dir_to_set = 1
if(loc == user.loc)
dir_to_set = user.dir
else
if( ( x == user.x ) || (y == user.y) ) //Only supposed to work for cardinal directions.
if( x == user.x )
if( y > user.y )
dir_to_set = 2
else
dir_to_set = 1
else if( y == user.y )
if( x > user.x )
dir_to_set = 8
else
dir_to_set = 4
else
to_chat(user, "<span class='notice'>You can't reach.</span>")
return //Only works for cardinal direcitons, diagonals aren't supposed to work like this.
for(var/obj/structure/window/WINDOW in loc)
if(WINDOW.dir == dir_to_set)
to_chat(user, "<span class='notice'>There is already a window facing this way there.</span>")
else if(istype(W,/obj/item/stack/sheet/rglass) || istype(W,/obj/item/stack/sheet/glass) || istype(W,/obj/item/stack/sheet/plasmaglass) || istype(W,/obj/item/stack/sheet/plasmarglass))
if(!broken)
var/obj/item/stack/ST = W
if (ST.get_amount() < 1)
to_chat(user, "<span class='warning'>You need at least one sheet of glass for that!</span>")
return
to_chat(user, "<span class='notice'>You start placing the window.</span>")
if(do_after(user, 20 * W.toolspeed, target = src))
if(!src) return //Grille destroyed while waiting
var/dir_to_set = NORTH
if(!anchored)
to_chat(user, "<span class='warning'>[src] needs to be fastened to the floor first!</span>")
return
if(loc == user.loc)
dir_to_set = user.dir
else
if((x == user.x) || (y == user.y)) //Only supposed to work for cardinal directions.
if(x == user.x)
if(y > user.y)
dir_to_set = SOUTH
else
dir_to_set = NORTH
else if(y == user.y)
if(x > user.x)
dir_to_set = WEST
else
dir_to_set = EAST
else
to_chat(user, "<span class='notice'>You can't reach.</span>")
return //Only works for cardinal direcitons, diagonals aren't supposed to work like this.
for(var/obj/structure/window/WINDOW in loc)
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
if(WINDOW.dir == dir_to_set)
to_chat(user, "<span class='notice'>There is already a window facing this way there.</span>")
return
var/obj/structure/window/WD
if(istype(W,/obj/item/stack/sheet/rglass))
WD = new/obj/structure/window/reinforced(loc) //reinforced window
else if(istype(W,/obj/item/stack/sheet/glass))
WD = new/obj/structure/window/basic(loc) //normal window
else if(istype(W,/obj/item/stack/sheet/plasmaglass))
WD = new/obj/structure/window/plasmabasic(loc) //basic plasma window
else
WD = new/obj/structure/window/plasmareinforced(loc) //reinforced plasma window
WD.dir = dir_to_set
WD.ini_dir = dir_to_set
WD.anchored = 0
WD.state = 0
var/obj/item/stack/ST = W
ST.use(1)
to_chat(user, "<span class='notice'>You place the [WD] on [src].</span>")
WD.update_icon()
return
to_chat(user, "<span class='notice'>You start placing the window...</span>")
if(do_after(user, 20 * W.toolspeed, target = src))
if(!loc || !anchored) //Grille destroyed or unanchored while waiting
return
for(var/obj/structure/window/WINDOW in loc)
if(WINDOW.dir == dir_to_set)//checking this for a 2nd time to check if a window was made while we were waiting.
to_chat(user, "<span class='notice'>There is already a window facing this way there.</span>")
return
var/obj/structure/window/WD
if(istype(W,/obj/item/stack/sheet/rglass))
WD = new/obj/structure/window/reinforced(loc) //reinforced window
else if(istype(W,/obj/item/stack/sheet/glass))
WD = new/obj/structure/window/basic(loc) //normal window
else if(istype(W,/obj/item/stack/sheet/plasmaglass))
WD = new/obj/structure/window/plasmabasic(loc) //basic plasma window
else
WD = new/obj/structure/window/plasmareinforced(loc) //reinforced plasma window
WD.setDir(dir_to_set)
WD.ini_dir = dir_to_set
WD.anchored = 0
WD.state = 0
ST.use(1)
to_chat(user, "<span class='notice'>You place the [WD] on [src].</span>")
WD.update_icon()
return
//window placing end
else if(istype(W, /obj/item/weapon/shard) || !shock(user, 70))
return attacked_by(W, user)
else if(istype(W, /obj/item/weapon/shard))
health -= W.force * 0.1
else if(!shock(user, 70))
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
switch(W.damtype)
if("fire")
health -= W.force
if("brute")
health -= W.force * 0.1
healthcheck()
..()
return
/obj/structure/grille/proc/attacked_by(obj/item/I, mob/living/user)
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
if(!(I.flags&NOBLUDGEON))
if(I.force)
visible_message("<span class='danger'>[user] has hit [src] with [I]!</span>")
take_damage(I.force * 0.3, I.damtype)
/obj/structure/grille/proc/deconstruct(disassembled = TRUE)
if(!loc) //if already qdel'd somehow, we do nothing
return
if(can_deconstruct)
var/obj/R = new rods_type(loc, rods_amount)
transfer_fingerprints_to(R)
qdel(src)
/obj/structure/grille/proc/healthcheck()
/obj/structure/grille/proc/obj_break()
if(!broken && can_deconstruct)
new broken_type(loc)
var/obj/R = new rods_type(loc, rods_broken)
transfer_fingerprints_to(R)
qdel(src)
/obj/structure/grille/proc/take_damage(damage, damage_type = BRUTE, sound_effect = 1)
switch(damage_type)
if(BURN)
if(sound_effect)
playsound(loc, 'sound/items/welder.ogg', 80, 1)
if(BRUTE)
if(sound_effect)
if(damage)
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
else
playsound(loc, 'sound/weapons/tap.ogg', 50, 1)
else
return
health -= damage
if(health <= 0)
if(!destroyed)
icon_state = "brokengrille"
density = 0
destroyed = 1
new /obj/item/stack/rods(loc)
if(!broken)
obj_break()
else
if(health <= -6)
new /obj/item/stack/rods(loc)
qdel(src)
return
return
deconstruct()
// shock user with probability prb (if all connections & power are working)
// returns 1 if shocked, 0 otherwise
/obj/structure/grille/proc/shock(mob/user as mob, prb)
if(!anchored || destroyed) // deanchored/destroyed grilles are never connected
/obj/structure/grille/proc/shock(mob/user, prb)
if(!anchored || broken) // unanchored/broken grilles are never connected
return 0
if(!prob(prb))
return 0
@@ -258,8 +285,27 @@
return 0
/obj/structure/grille/temperature_expose(datum/gas_mixture/air, exposed_temperature, exposed_volume)
if(!destroyed)
if(!broken)
if(exposed_temperature > T0C + 1500)
health -= 1
healthcheck()
take_damage(1)
..()
/obj/structure/grille/hitby(atom/movable/AM)
..()
var/tforce = 0
if(ismob(AM))
tforce = 5
else if(isobj(AM))
var/obj/item/I = AM
tforce = max(0, I.throwforce * 0.5)
take_damage(tforce)
/obj/structure/grille/broken // Pre-broken grilles for map placement
icon_state = "brokengrille"
density = 0
health = 0
broken = 1
rods_amount = 1
rods_broken = 0
grille_type = /obj/structure/grille
broken_type = null
+31 -17
View File
@@ -138,24 +138,20 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
return 1
if(..())
return 1
if(intact && istype(C, /obj/item/weapon/crowbar))
if(broken || burnt)
broken = 0
burnt = 0
to_chat(user, "<span class='danger'>You remove the broken plating.</span>")
else
if(istype(src, /turf/simulated/floor/wood))
to_chat(user, "<span class='danger'>You forcefully pry off the planks, destroying them in the process.</span>")
else if(!builtin_tile)
to_chat(user, "<span class='notice'>You are unable to pry up \the [src] with a crowbar.</span>")
return 1
else
to_chat(user, "<span class='danger'>You remove \the [builtin_tile.singular_name].</span>")
builtin_tile.loc = src
builtin_tile = null //deassociate tile, it no longer belongs to this turf
make_plating()
playsound(src, C.usesound, 80, 1)
if(intact && iscrowbar(C))
pry_tile(C, user)
return 1
if(intact && istype(C, /obj/item/stack/tile))
var/obj/item/stack/tile/T = C
if(T.turf_type == type)
return
var/obj/item/weapon/crowbar/CB = user.get_inactive_hand(/obj/item/weapon/crowbar)
if(!CB)
return
var/turf/simulated/floor/plating/P = pry_tile(CB, user, TRUE)
if(!istype(P))
return
P.attackby(T, user, params)
if(istype(C, /obj/item/pipe))
var/obj/item/pipe/P = C
if(P.pipe_type != -1) // ANY PIPE
@@ -181,6 +177,24 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3","
return 1
return 0
/turf/simulated/floor/proc/pry_tile(obj/item/C, mob/user, silent = FALSE)
playsound(src, C.usesound, 80, 1)
return remove_tile(user, silent)
/turf/simulated/floor/proc/remove_tile(mob/user, silent = FALSE, make_tile = TRUE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the broken plating.</span>")
else
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the floor tile.</span>")
if(builtin_tile && make_tile)
builtin_tile.forceMove(src)
builtin_tile = null
return make_plating()
/turf/simulated/floor/singularity_pull(S, current_size)
if(current_size == STAGE_THREE)
if(prob(30))
+27 -9
View File
@@ -11,15 +11,33 @@
/turf/simulated/floor/wood/attackby(obj/item/C, mob/user, params)
if(..())
return
if(istype(C, /obj/item/weapon/screwdriver))
if(broken || burnt)
return
to_chat(user, "<span class='danger'>You unscrew the planks.</span>")
new floor_tile(src)
make_plating()
playsound(src, C.usesound, 80, 1)
if(isscrewdriver(C))
pry_tile(C, user)
return
/turf/simulated/floor/wood/pry_tile(obj/item/C, mob/user, silent = FALSE)
var/is_screwdriver = isscrewdriver(C)
playsound(src, C.usesound, 80, 1)
return remove_tile(user, silent, make_tile = is_screwdriver)
/turf/simulated/floor/wood/remove_tile(mob/user, silent = FALSE, make_tile = TRUE)
if(broken || burnt)
broken = 0
burnt = 0
if(user && !silent)
to_chat(user, "<span class='danger'>You remove the broken planks.</span>")
else
if(make_tile)
if(user && !silent)
to_chat(user, "<span class='danger'>You unscrew the planks.</span>")
if(builtin_tile)
builtin_tile.forceMove(src)
builtin_tile = null
else
if(user && !silent)
to_chat(user, "<span class='danger'>You forcefully pry off the planks, destroying them in the process.</span>")
return make_plating()
/turf/simulated/floor/grass
name = "grass patch"
icon_state = "grass1"
@@ -45,7 +63,7 @@
to_chat(user, "<span class='notice'>You shovel the grass.</span>")
playsound(src, 'sound/effects/shovel_dig.ogg', 50, 1)
make_plating()
// NEEDS TO BE UPDATED
/turf/simulated/floor/basalt //By your powers combined, I am captain planet
name = "volcanic floor"
@@ -54,7 +72,7 @@
oxygen = 14
nitrogen = 23
temperature = 300
/turf/simulated/floor/basalt/attackby(obj/item/W, mob/user, params)
if(..())
return
@@ -313,4 +313,3 @@
else
smooth = SMOOTH_TRUE
icon_state = ""
+19 -9
View File
@@ -386,15 +386,25 @@
if(ticker)
cameranet.updateVisibility(src)
/turf/attackby(obj/item/C, mob/user, params)
if(can_lay_cable() && istype(C, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/coil = C
for(var/obj/structure/cable/LC in src)
if((LC.d1==0)||(LC.d2==0))
LC.attackby(C,user)
return
coil.place_turf(src, user)
return 1
/turf/attackby(obj/item/I, mob/user, params)
if(can_lay_cable())
if(istype(I, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/C = I
for(var/obj/structure/cable/LC in src)
if(LC.d1 == 0 || LC.d2==0)
LC.attackby(C,user)
return
C.place_turf(src, user)
return 1
else if(istype(I, /obj/item/weapon/twohanded/rcl))
var/obj/item/weapon/twohanded/rcl/R = I
if(R.loaded)
for(var/obj/structure/cable/LC in src)
if(LC.d1 == 0 || LC.d2==0)
LC.attackby(R, user)
return
R.loaded.place_turf(src, user)
R.is_empty(user)
return 0
+3 -3
View File
@@ -175,7 +175,7 @@ var/global/list/breach_burn_descriptors = list(
//Handles repairs (and also upgrades).
/obj/item/clothing/suit/space/attackby(obj/item/W as obj, mob/user as mob, params)
if(istype(W,/obj/item/stack/sheet/mineral/plastic) || istype(W,/obj/item/stack/sheet/metal))
if(istype(W,/obj/item/stack/sheet/plastic) || istype(W,/obj/item/stack/sheet/metal))
if(istype(src.loc,/mob/living))
to_chat(user, "\red How do you intend to patch a hardsuit while someone is wearing it?")
@@ -188,10 +188,10 @@ var/global/list/breach_burn_descriptors = list(
var/obj/item/stack/sheet/P = W
if(P.amount < 3)
P.use(P.amount)
repair_breaches(BURN, ( istype(P,/obj/item/stack/sheet/mineral/plastic) ? P.amount : (P.amount*2) ), user)
repair_breaches(BURN, ( istype(P,/obj/item/stack/sheet/plastic) ? P.amount : (P.amount*2) ), user)
else
P.use(3)
repair_breaches(BURN, ( istype(P,/obj/item/stack/sheet/mineral/plastic) ? 3 : 5), user)
repair_breaches(BURN, ( istype(P,/obj/item/stack/sheet/plastic) ? 3 : 5), user)
return
else if(istype(W, /obj/item/weapon/weldingtool))
@@ -135,12 +135,24 @@
desc = "A paramedic EVA helmet. Used in the recovery of bodies from space."
icon_state = "paramedic-eva-helmet"
item_state = "paramedic-eva-helmet"
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/helmet.dmi'
)
sprite_sheets_obj = list(
"Vox" = 'icons/obj/clothing/species/vox/hats.dmi'
)
/obj/item/clothing/suit/space/eva/paramedic
name = "Paramedic EVA suit"
icon_state = "paramedic-eva"
item_state = "paramedic-eva"
desc = "A paramedic EVA suit. Used in the recovery of bodies from space."
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/suit.dmi'
)
sprite_sheets_obj = list(
"Vox" = 'icons/obj/clothing/species/vox/suits.dmi'
)
/obj/item/clothing/suit/space/eva
name = "EVA suit"
@@ -149,12 +161,13 @@
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 20)
species_restricted = list("exclude", "Diona", "Wryn")
species_fit = list("Vox")
species_fit = list("Vox", "Vulpkanin")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/suit.dmi'
"Vox" = 'icons/mob/species/vox/suit.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi'
)
sprite_sheets_obj = list(
"Vox" = 'icons/obj/clothing/species/vox/suits.dmi',
"Vox" = 'icons/obj/clothing/species/vox/suits.dmi'
)
/obj/item/clothing/head/helmet/space/eva
@@ -166,9 +179,10 @@
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 20)
flash_protect = 0
species_restricted = list("exclude", "Diona", "Wryn")
species_fit = list("Vox")
species_fit = list("Vox", "Vulpkanin")
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/helmet.dmi'
"Vox" = 'icons/mob/species/vox/helmet.dmi',
"Vulpkanin" = 'icons/mob/species/vulpkanin/helmet.dmi'
)
sprite_sheets_obj = list(
"Vox" = 'icons/obj/clothing/species/vox/hats.dmi'
+1 -1
View File
@@ -286,7 +286,7 @@
time = 150
reqs = list(/obj/item/stack/rods = 3,
/obj/item/stack/cable_coil = 10,
/obj/item/stack/sheet/mineral/plastic = 3,
/obj/item/stack/sheet/plastic = 3,
/obj/item/stack/sheet/wood = 5)
tools = list(/obj/item/weapon/weldingtool,
/obj/item/weapon/screwdriver)
+62 -9
View File
@@ -17,7 +17,19 @@
if(turfs.len) //Pick a turf to spawn at if we can
var/turf/T = pick(turfs)
new/obj/effect/spacevine_controller(T) //spawn a controller at turf
var/obj/effect/spacevine_controller/SC = new /obj/effect/spacevine_controller(T, , rand(30,70),rand(5,2)) //spawn a controller at turf
// Make the event start fun - give the vine a random hostile mutation
if(SC.vines.len)
SV = SC.vines[1]
var/list/mutations = SC.mutations_list.Copy()
while(mutations.len)
var/datum/spacevine_mutation/SM = pick_n_take(mutations)
if(SM.quality == NEGATIVE && !SM.nofun)
SM.add_mutation_to_vinepiece(SV)
break
mutations.Cut()
mutations = null
/datum/spacevine_mutation
@@ -25,11 +37,22 @@
var/severity = 1
var/hue
var/quality
// For stuff that isn't fun as a random-event vine
var/nofun = FALSE
/datum/spacevine_mutation/proc/add_mutation_to_vinepiece(obj/effect/spacevine/holder)
holder.mutations |= src
holder.color = hue
/datum/spacevine_mutation/proc/remove_mutation_from_vinepiece(obj/effect/spacevine/holder)
holder.mutations -= src
var/datum/spacevine_mutation/oldmutation
if(holder.mutations.len)
oldmutation = pick(holder.mutations)
holder.color = oldmutation.hue
else
holder.color = ""
/datum/spacevine_mutation/proc/process_mutation(obj/effect/spacevine/holder)
return
@@ -136,6 +159,11 @@
/datum/spacevine_mutation/space_covering/on_grow(obj/effect/spacevine/holder)
process_mutation(holder)
/datum/spacevine_mutation/space_covering/on_spread(obj/effect/spacevine/holder, turf/target)
if(target.type == /turf/space && !locate(/obj/effect/spacevine) in target)
holder.master.spawn_spacevine_piece(target, holder)
. = TRUE
/datum/spacevine_mutation/space_covering/process_mutation(obj/effect/spacevine/holder)
var/turf/T = get_turf(holder)
if(is_type_in_typecache(T, coverable_turfs))
@@ -155,7 +183,12 @@
/datum/spacevine_mutation/bluespace/on_spread(obj/effect/spacevine/holder, turf/target)
if(holder.energy > 1 && !locate(/obj/effect/spacevine) in target)
// Lose bluespace upon piercing a single tile, and drop it from our own mutations too
// Representing a loss in "high potential"
// also conveniently prevents this from spreading too crazily
remove_mutation_from_vinepiece(holder)
holder.master.spawn_spacevine_piece(target, holder)
playsound(holder, 'sound/misc/interference.ogg', 50, 1)
. = TRUE
/datum/spacevine_mutation/light
@@ -190,6 +223,8 @@
hue = "#ff0000"
quality = NEGATIVE
severity = 2
// kaboom events aren't fun
nofun = TRUE
/datum/spacevine_mutation/explosive/on_explosion(explosion_severity, obj/effect/spacevine/holder)
if(explosion_severity < 3)
@@ -234,6 +269,15 @@
quality = NEGATIVE
/datum/spacevine_mutation/aggressive_spread/on_spread(obj/effect/spacevine/holder, turf/target)
if(istype(target, /turf/simulated/wall/r_wall))
// Too tough to pierce - should lead to interesting spread patterns
return
// Bust through windows or other stuff blocking the way
if(!target.Enter(holder))
for(var/atom/movable/AM in target)
if(istype(AM, /obj/effect/spacevine) || !AM.density)
continue
AM.ex_act(severity)
target.ex_act(severity) // vine immunity handled at /mob/ex_act
. = TRUE
@@ -348,7 +392,7 @@
name = "plasticine"
hue = "#222288"
mineral_results = list(
/obj/item/stack/sheet/mineral/plastic = 1
/obj/item/stack/sheet/plastic = 1
)
/datum/spacevine_mutation/mineral/wood
@@ -406,8 +450,8 @@
if(!master.vines.len)
var/obj/item/seeds/kudzu/KZ = new(loc)
KZ.mutations |= mutations
KZ.set_potency(master.mutativeness * 10)
KZ.set_production((master.spread_cap / initial(master.spread_cap)) * 5)
KZ.set_potency(10 ** sqrt(master.mutativeness))
KZ.set_production(10 - (master.spread_cap / 10))
qdel(master)
master = null
mutations.Cut()
@@ -499,11 +543,19 @@
spawn_spacevine_piece(loc, , muts)
processing_objects.Add(src)
init_subtypes(/datum/spacevine_mutation/, mutations_list)
if(potency != null)
mutativeness = potency / 10
if(potency != null && potency > 0)
// 1 mutativeness at 10 potency
// 4 mutativeness at 100 potency
mutativeness = log(10, potency) ** 2
if(production != null)
spread_cap /= production / 5
spread_multiplier *= production / 5
// 1 production is crazy powerful
var/spread_value = max(10 - production, 1)
// 40 at 6 production
// 90 at 1 production
spread_cap = spread_value * 10
// 6 vines/spread at 6 production
// ~2.5 vines/spread at 1 production
spread_multiplier /= spread_value / 5
..()
@@ -618,7 +670,8 @@
for(var/datum/spacevine_mutation/SM in mutations)
spread_success |= SM.on_spread(src, stepturf) // If this returns 1, spreading succeeded
if(!locate(/obj/effect/spacevine, stepturf))
if(stepturf.Enter(src))
// snowflake for space turf, but space turf is super common and a big deal
if(!istype(stepturf, /turf/space) && stepturf.Enter(src))
if(master)
master.spawn_spacevine_piece(stepturf, src)
spread_success = TRUE
File diff suppressed because it is too large Load Diff
@@ -179,7 +179,7 @@
con_type = "glass bottle"
max_define = MAX_GLASS
mat_ratio = RATIO_GLASS
else if(istype(S, /obj/item/stack/sheet/mineral/plastic))
else if(istype(S, /obj/item/stack/sheet/plastic))
con_type = "plastic bottle"
max_define = MAX_PLAST
mat_ratio = RATIO_PLAST
@@ -528,9 +528,9 @@
H.healths.icon_state = "health7"
else
switch(H.hal_screwyhud)
if(1) H.healths.icon_state = "health6"
if(2) H.healths.icon_state = "health7"
if(5) H.healths.icon_state = "health0"
if(SCREWYHUD_CRIT) H.healths.icon_state = "health6"
if(SCREWYHUD_DEAD) H.healths.icon_state = "health7"
if(SCREWYHUD_HEALTHY) H.healths.icon_state = "health0"
else
switch(100 - ((flags & NO_PAIN) ? 0 : H.traumatic_shock) - H.staminaloss)
if(100 to INFINITY) H.healths.icon_state = "health0"
@@ -13,7 +13,7 @@
amount = amount * species.stun_mod
..()
/mob/living/carbon/human/SetSleeping(amount, updating = 1)
/mob/living/carbon/human/SetSleeping(amount, updating = 1, no_alert = FALSE)
if(species)
amount = amount * species.stun_mod
..()
@@ -1202,7 +1202,7 @@ var/global/list/damage_icon_parts = list()
var/icon/tail_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[tail]_s")
if(species.bodyflags & HAS_SKIN_COLOR)
tail_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
if(tail_marking_icon)
if(tail_marking_icon && !tail_marking_style.tails_allowed)
tail_s.Blend(tail_marking_icon, ICON_OVERLAY)
if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... (having a non-tail body accessory like the snake body will override this)
// Gives the underlimbs layer SEW direction icons since it's overlayed by limbs and just about everything else anyway.
@@ -1270,7 +1270,7 @@ var/global/list/damage_icon_parts = list()
var/icon/tailw_s = new/icon("icon" = 'icons/effects/species.dmi', "icon_state" = "[tail]w_s")
if(species.bodyflags & HAS_SKIN_COLOR)
tailw_s.Blend(rgb(r_skin, g_skin, b_skin), ICON_ADD)
if(tail_marking_icon)
if(tail_marking_icon && !tail_marking_style.tails_allowed)
tailw_s.Blend(tail_marking_icon, ICON_OVERLAY)
if((!body_accessory || istype(body_accessory, /datum/body_accessory/tail)) && species.bodyflags & TAIL_OVERLAPPED) // If the player has a species whose tail is overlapped by limbs... (having a non-tail body accessory like the snake body will override this)
// Gives the underlimbs layer SEW direction icons since it's overlayed by limbs and just about everything else anyway.
+1 -1
View File
@@ -345,7 +345,7 @@
if(..())
handle_dreams()
adjustStaminaLoss(-10)
if(prob(10) && health && !hal_crit)
if(prob(10) && health && hal_screwyhud != SCREWYHUD_CRIT)
spawn(0)
emote("snore")
// Keep SSD people asleep
@@ -15,7 +15,7 @@
req_access = list(access_engine, access_robotics)
ventcrawler = 2
magpulse = 1
default_language = "Drone"
// We need to keep track of a few module items so we don't need to do list operations
@@ -23,7 +23,7 @@
var/obj/item/stack/sheet/metal/cyborg/stack_metal = null
var/obj/item/stack/sheet/wood/stack_wood = null
var/obj/item/stack/sheet/glass/cyborg/stack_glass = null
var/obj/item/stack/sheet/mineral/plastic/cyborg/stack_plastic = null
var/obj/item/stack/sheet/plastic/stack_plastic = null
var/obj/item/weapon/matter_decompiler/decompiler = null
//Used for self-mailing.
@@ -43,7 +43,7 @@
remove_language("Galactic Common")
add_language("Drone Talk", 1)
add_language("Drone", 1)
// Disable the microphone wire on Drones
if(radio)
radio.wires.CutWireIndex(WIRE_TRANSMIT)
@@ -70,7 +70,7 @@
stack_metal = locate(/obj/item/stack/sheet/metal/cyborg) in src.module
stack_wood = locate(/obj/item/stack/sheet/wood) in src.module
stack_glass = locate(/obj/item/stack/sheet/glass/cyborg) in src.module
stack_plastic = locate(/obj/item/stack/sheet/mineral/plastic/cyborg) in src.module
stack_plastic = locate(/obj/item/stack/sheet/plastic) in src.module
//Grab decompiler.
decompiler = locate(/obj/item/weapon/matter_decompiler) in src.module
@@ -46,7 +46,7 @@
// /obj/item/weapon/paper_bundle,
/obj/item/weapon/card/id
)
/obj/item/weapon/gripper/New()
..()
can_hold = typecacheof(can_hold)
@@ -374,7 +374,7 @@
stack = stack_wood
if("plastic")
if(!stack_plastic)
stack_plastic = new /obj/item/stack/sheet/mineral/plastic/cyborg(src.module)
stack_plastic = new /obj/item/stack/sheet/plastic(src.module)
stack_plastic.amount = 1
stack = stack_plastic
+6 -6
View File
@@ -354,19 +354,19 @@
// SLEEPING
/mob/living/Sleeping(amount, updating = 1)
SetSleeping(max(sleeping, amount), updating)
/mob/living/Sleeping(amount, updating = 1, no_alert = FALSE)
SetSleeping(max(sleeping, amount), updating, no_alert)
/mob/living/SetSleeping(amount, updating = 1)
/mob/living/SetSleeping(amount, updating = 1, no_alert = FALSE)
sleeping = max(amount, 0)
update_sleeping_effects()
update_sleeping_effects(no_alert)
if(updating)
update_stat()
update_canmove()
/mob/living/AdjustSleeping(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1)
/mob/living/AdjustSleeping(amount, bound_lower = 0, bound_upper = INFINITY, updating = 1, no_alert = FALSE)
var/new_value = directional_bounded_sum(sleeping, amount, bound_lower, bound_upper)
SetSleeping(new_value, updating)
SetSleeping(new_value, updating, no_alert)
// SLOWED
+3 -2
View File
@@ -30,9 +30,10 @@
else
clear_fullscreen("nearsighted")
/mob/living/update_sleeping_effects()
/mob/living/update_sleeping_effects(no_alert = FALSE)
if(sleeping)
throw_alert("asleep", /obj/screen/alert/asleep)
if(!no_alert)
throw_alert("asleep", /obj/screen/alert/asleep)
else
clear_alert("asleep")
+4
View File
@@ -199,6 +199,10 @@
var/atom/O = mob.loc
return O.relaymove(mob, direct)
if(istype(mob.get_active_hand(), /obj/item))
var/obj/item/I = mob.get_active_hand()
I.moved(mob, n, direct)
if(!mob.Process_Spacemove(direct))
return 0
+44 -67
View File
@@ -114,7 +114,7 @@ By design, d1 is the smallest direction and d2 is the highest
//
/obj/structure/cable/attackby(obj/item/W, mob/user)
var/turf/T = src.loc
var/turf/T = get_turf(src)
if(T.intact)
return
@@ -149,7 +149,7 @@ By design, d1 is the smallest direction and d2 is the highest
if(c.d1 == 12 || c.d2 == 12)
c.qdel()*/
///// Z-Level Stuff
investigate_log("was cut by [key_name(usr, usr.client)] in [user.loc.loc]([T.x], [T.y], [T.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[T.x];Y=[T.y];Z=[T.z]'>JMP</a>)","wires")
investigate_log("was cut by [key_name(usr, usr.client)] in [get_area(user)]([T.x], [T.y], [T.z] - [ADMIN_JMP(T)])","wires")
qdel(src) // qdel
return
@@ -162,6 +162,12 @@ By design, d1 is the smallest direction and d2 is the highest
return
coil.cable_join(src, user)
else if(istype(W, /obj/item/weapon/twohanded/rcl))
var/obj/item/weapon/twohanded/rcl/R = W
if(R.loaded)
R.loaded.cable_join(src, user)
R.is_empty(user)
else if(istype(W, /obj/item/device/multitool))
if(powernet && (powernet.avail > 0)) // is it powered?
@@ -197,12 +203,12 @@ By design, d1 is the smallest direction and d2 is the highest
qdel(src) // qdel
if(2.0)
if(prob(50))
new/obj/item/stack/cable_coil(src.loc, src.d1 ? 2 : 1, color)
new/obj/item/stack/cable_coil(get_turf(src), src.d1 ? 2 : 1, color)
qdel(src) // qdel
if(3.0)
if(prob(25))
new/obj/item/stack/cable_coil(src.loc, src.d1 ? 2 : 1, color)
new/obj/item/stack/cable_coil(get_turf(src), src.d1 ? 2 : 1, color)
qdel(src) // qdel
return
@@ -505,7 +511,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
// General procedures
///////////////////////////////////
//you can use wires to heal robotics
/obj/item/stack/cable_coil/attack(mob/M as mob, mob/user as mob)
/obj/item/stack/cable_coil/attack(mob/M, mob/user)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/obj/item/organ/external/S = H.organs_by_name[user.zone_sel.selecting]
@@ -613,11 +619,11 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
return C
// called when cable_coil is clicked on a turf/simulated/floor
/obj/item/stack/cable_coil/proc/place_turf(turf/T, mob/user)
/obj/item/stack/cable_coil/proc/place_turf(turf/T, mob/user, dirnew)
if(!isturf(user.loc))
return
if(!T.can_have_cabling())
if(!isturf(T) || T.intact || !T.can_have_cabling())
to_chat(user, "<span class='warning'>You can only lay cables on catwalks and plating!</span>")
return
@@ -629,44 +635,46 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
to_chat(user, "<span class='warning'>You can't lay cable at a place that far away!</span>")
return
else
var/dirn
var/dirn = null
if(!dirnew) //If we weren't given a direction, come up with one! (Called as null from catwalk.dm and floor.dm)
if(user.loc == T)
dirn = user.dir // if laying on the tile we're on, lay in the direction we're facing
dirn = user.dir //If laying on the tile we're on, lay in the direction we're facing
else
dirn = get_dir(T, user)
else
dirn = dirnew
for(var/obj/structure/cable/LC in T)
if(LC.d2 == dirn && LC.d1 == 0)
to_chat(user, "<span class='warning'>There's already a cable at that position!</span>")
return
for(var/obj/structure/cable/LC in T)
if(LC.d2 == dirn && LC.d1 == 0)
to_chat(user, "<span class='warning'>There's already a cable at that position!</span>")
return
var/obj/structure/cable/C = get_new_cable(T)
var/obj/structure/cable/C = get_new_cable(T)
//set up the new cable
C.d1 = 0 //it's a O-X node cable
C.d2 = dirn
C.add_fingerprint(user)
C.updateicon()
//set up the new cable
C.d1 = 0 //it's a O-X node cable
C.d2 = dirn
C.add_fingerprint(user)
C.updateicon()
//create a new powernet with the cable, if needed it will be merged later
var/datum/powernet/PN = new()
PN.add_cable(C)
//create a new powernet with the cable, if needed it will be merged later
var/datum/powernet/PN = new()
PN.add_cable(C)
C.mergeConnectedNetworks(C.d2) //merge the powernet with adjacents powernets
C.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets
C.mergeConnectedNetworks(C.d2) //merge the powernet with adjacents powernets
C.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets
if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions
C.mergeDiagonalsNetworks(C.d2)
if(C.d2 & (C.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions
C.mergeDiagonalsNetworks(C.d2)
use(1)
use(1)
if(C.shock(user, 50))
if(prob(50)) //fail
new /obj/item/stack/cable_coil(get_turf(C), 1, C.color)
qdel(C) // qdel
if(C.shock(user, 50))
if(prob(50)) //fail
new/obj/item/stack/cable_coil(C.loc, 1, C.color)
qdel(C) // qdel
return C
// called when cable_coil is click on an installed obj/cable
// or click on a turf that already contains a "node" cable
@@ -675,7 +683,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
if(!isturf(U))
return
var/turf/T = C.loc
var/turf/T = get_turf(C)
if(!isturf(T) || T.intact) // sanity checks, also stop use interacting with T-scanner revealed cable
return
@@ -700,38 +708,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
// cable is pointing at us, we're standing on an open tile
// so create a stub pointing at the clicked cable on our tile
var/fdirn = turn(dirn, 180) // the opposite direction
for(var/obj/structure/cable/LC in U) // check to make sure there's not a cable there already
if(LC.d1 == fdirn || LC.d2 == fdirn)
to_chat(user, "There's already a cable at that position.")
return
var/obj/structure/cable/NC = new(U)
NC.cableColor(color)
NC.d1 = 0
NC.d2 = fdirn
NC.add_fingerprint()
NC.updateicon()
//create a new powernet with the cable, if needed it will be merged later
var/datum/powernet/newPN = new()
newPN.add_cable(NC)
NC.mergeConnectedNetworks(NC.d2) //merge the powernet with adjacents powernets
NC.mergeConnectedNetworksOnTurf() //merge the powernet with on turf powernets
if(NC.d2 & (NC.d2 - 1))// if the cable is layed diagonally, check the others 2 possible directions
NC.mergeDiagonalsNetworks(NC.d2)
use(1)
if(NC.shock(user, 50))
if(prob(50)) //fail
new/obj/item/stack/cable_coil(NC.loc, 1, NC.color)
qdel(NC) // qdel
place_turf(T, user, turn(dirn, 180))
return
// exisiting cable doesn't point at our position, so see if it's a stub
@@ -777,7 +754,7 @@ var/global/list/datum/stack_recipe/cable_coil_recipes = list(
if(C.shock(user, 50))
if(prob(50)) //fail
new/obj/item/stack/cable_coil(C.loc, 2, C.color)
new/obj/item/stack/cable_coil(get_turf(C), 2, C.color)
qdel(C) // qdel
return
@@ -81,13 +81,14 @@
/obj/item/projectile/bullet/pellet
name = "pellet"
damage = 15
damage = 12.5
/obj/item/projectile/bullet/pellet/weak
damage = 6
/obj/item/projectile/bullet/pellet/weak/New()
range = rand(8)
range = rand(1, 8)
..()
/obj/item/projectile/bullet/pellet/weak/on_range()
var/datum/effect/system/spark_spread/sparks = new /datum/effect/system/spark_spread
@@ -99,7 +100,8 @@
damage = 3
/obj/item/projectile/bullet/pellet/overload/New()
range = rand(10)
range = rand(1, 10)
..()
/obj/item/projectile/bullet/pellet/overload/on_hit(atom/target, blocked = 0)
..()
@@ -101,7 +101,7 @@
result_amount = 1
/datum/chemical_reaction/plastication/on_reaction(datum/reagents/holder)
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/mineral/plastic
var/obj/item/stack/sheet/metal/M = new /obj/item/stack/sheet/plastic
M.amount = 10
M.forceMove(get_turf(holder.my_atom))
@@ -23,6 +23,9 @@
item_state = "cespace_suit"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank)
species_fit = null
sprite_sheets = null
sprite_sheets_obj = null
/obj/item/clothing/head/helmet/space/eva/anomaly
name = "Excavation hood"
@@ -30,3 +33,6 @@
icon_state = "cespace_helmet"
item_state = "cespace_helmet"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 100)
species_fit = null
sprite_sheets = null
sprite_sheets_obj = null
+53
View File
@@ -789,6 +789,54 @@
/mob/living/silicon/robot/drone,
/mob/living/simple_animal/bot/mulebot
)
var/state = PLASTIC_FLAPS_NORMAL
var/can_deconstruct = TRUE
/obj/structure/plasticflaps/examine(mob/user)
. = ..()
switch(state)
if(PLASTIC_FLAPS_NORMAL)
to_chat(user, "<span class='notice'>[src] are <b>screwed</b> to the floor.</span>")
if(PLASTIC_FLAPS_DETACHED)
to_chat(user, "<span class='notice'>[src] are no longer <i>screwed</i> to the floor, and the flaps can be <b>sliced</b> apart.</span>")
/obj/structure/plasticflaps/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
if(isscrewdriver(W))
if(state == PLASTIC_FLAPS_NORMAL)
playsound(loc, W.usesound, 100, 1)
user.visible_message("<span class='warning'>[user] unscrews [src] from the floor.</span>", "<span class='notice'>You start to unscrew [src] from the floor...</span>", "You hear rustling noises.")
if(do_after(user, 180*W.toolspeed, target = src))
if(state != PLASTIC_FLAPS_NORMAL)
return
state = PLASTIC_FLAPS_DETACHED
anchored = FALSE
to_chat(user, "<span class='notice'>You unscrew [src] from the floor.</span>")
else if(state == PLASTIC_FLAPS_DETACHED)
playsound(loc, W.usesound, 100, 1)
user.visible_message("<span class='warning'>[user] screws [src] to the floor.</span>", "<span class='notice'>You start to screw [src] to the floor...</span>", "You hear rustling noises.")
if(do_after(user, 40*W.toolspeed, target = src))
if(state != PLASTIC_FLAPS_DETACHED)
return
state = PLASTIC_FLAPS_NORMAL
anchored = TRUE
to_chat(user, "<span class='notice'>You screw [src] from the floor.</span>")
else if(iswelder(W))
if(state == PLASTIC_FLAPS_DETACHED)
var/obj/item/weapon/weldingtool/WT = W
if(!WT.remove_fuel(0, user))
return
playsound(loc, WT.usesound, 100, 1)
user.visible_message("<span class='warning'>[user] slices apart [src].</span>", "<span class='notice'>You start to slice apart [src].</span>", "You hear welding.")
if(do_after(user, 120*WT.toolspeed, target = src))
if(state != PLASTIC_FLAPS_DETACHED)
return
to_chat(user, "<span class='notice'>You slice apart [src].</span>")
var/obj/item/stack/sheet/plastic/five/P = new(loc)
P.add_fingerprint(user)
qdel(src)
else
. = ..()
/obj/structure/plasticflaps/CanPass(atom/A, turf/T)
if(istype(A) && A.checkpass(PASSGLASS))
@@ -844,6 +892,11 @@
if(prob(5))
qdel(src)
/obj/structure/plasticflaps/proc/deconstruct(disassembled = TRUE)
if(can_deconstruct)
new /obj/item/stack/sheet/plastic/five(loc)
qdel(src)
/obj/structure/plasticflaps/mining //A specific type for mining that doesn't allow airflow because of them damn crates
name = "\improper Airtight plastic flaps"
desc = "Heavy duty, airtight, plastic flaps."
+79
View File
@@ -55,7 +55,85 @@
-->
<div class="commit sansserif">
<h2 class="date">15 March 2017</h2>
<h3 class="author">uraniummeltdown updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Plastic flaps can be deconstructed with tools and constructed using 5 sheets of plastic.</li>
<li class="rscadd">You can now damage grilles by throwing things at them.</li>
<li class="rscadd">You can rebuild broken grilles by using a metal rod on them.</li>
<li class="tweak">Metal rods maximum amount reduced from 60 to 50.</li>
</ul>
<h2 class="date">14 March 2017</h2>
<h3 class="author">uraniummeltdown updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Strong supply talismans can now summon 5 sheets of runed metal.</li>
</ul>
<h2 class="date">13 March 2017</h2>
<h3 class="author">Kyep updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Syndicate mobs in the Wild West are no longer so stupid that they trip over, and die to, their own mines. This also means that they won't set their own buildings on fire anymore.</li>
<li class="bugfix">Phazons' phase ability now works again.</li>
<li class="bugfix">Phazons' toxin injector melee damage type (a weak melee attack) now works again.</li>
</ul>
<h3 class="author">uraniummeltdown updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Clicking on a tile with another tile and a crowbar or screwdriver in hand directly replaces the tile.</li>
</ul>
<h2 class="date">12 March 2017</h2>
<h3 class="author">Crazylemon64 updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Kudzu should now be less of (but still) a station-destroying force of nature.</li>
<li class="tweak">Bluespace kudzu now only pierces a single layer of walls before losing its "charge".</li>
<li class="tweak">Aggressive spread now does not bust rwalls, but does attack obstructing objects in its path.</li>
<li class="tweak">Kudzu now only spreads on space turfs when it has specific mutations to do so.</li>
<li class="tweak">Kudzu events should be more interesting on their own.</li>
</ul>
<h3 class="author">Jovaniph updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Adds Vulpkanin EVA suit sprite</li>
</ul>
<h3 class="author">Kyep updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Adjusted Wizard Academy to make it both more lethal, and more rewarding.</li>
</ul>
<h3 class="author">Markolie updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">The system for picking ghosts to inhabit cultist slaughter demons now shows a confirmation prompt like most other role checks.</li>
<li class="bugfix">Fixed an issue where you could join as a cultist slaughter demon despite having antagHUD enabled.</li>
<li class="bugfix">Fixed an issue where it was possible to weld statues without any fuel.</li>
<li class="tweak">It is no longer possible to spam the firelock force message.</li>
</ul>
<h3 class="author">Twinmold93 updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Employment record laptop to Head of Personnel's Office. Moves package wrap that was there to meeting room to be paired with the hand labeler there.</li>
</ul>
<h2 class="date">11 March 2017</h2>
<h3 class="author">Developed by XDTM, ported by davipatury updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Hallucinations have been modified to increase the creepiness factor and reduce the boring factor.</li>
<li class="rscadd">Added some new hallucinations.</li>
<li class="bugfix">Fixed a bug where the singularity hallucination was stunning for longer than intended and leaving the fake HUD crit icon permanently.</li>
</ul>
<h3 class="author">Flatty Patty updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">all the tools have icons again</li>
</ul>
<h3 class="author">FlattyPatty updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Improved Nanotrasen click manufacturing procedures now allow the flashlights to make that classic clicking sound you know and love.</li>
</ul>
<h3 class="author">Fox McCloud updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Buckshot now does a max of 70 damage, down from 90</li>
</ul>
<h3 class="author">KasparoVy updated:</h3>
<ul class="changes bgimages16">
<li class="bugfix">Fixes a bug with certain tail markings rendering when they shouldn't.</li>
</ul>
<h3 class="author">Markolie updated:</h3>
<ul class="changes bgimages16">
<li class="tweak">Firelocks forced by AI's, cyborgs at range or admin ghosts will now autoclose if there's still an atmospherics alarm present.</li>
@@ -65,6 +143,7 @@
<h3 class="author">davipatury updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Ported Modular Computers from /tg/.</li>
<li class="rscadd">Ported Rapid Cable Layer from /vg/.</li>
</ul>
<h3 class="author">uraniummeltdown updated:</h3>
<ul class="changes bgimages16">
+62
View File
@@ -4061,6 +4061,21 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
crystals (for construction).
- rscdel: Removes the pipe fitting on the table from atmospherics as it was broken.
2017-03-11:
Developed by XDTM, ported by davipatury:
- tweak: Hallucinations have been modified to increase the creepiness factor and
reduce the boring factor.
- rscadd: Added some new hallucinations.
- bugfix: Fixed a bug where the singularity hallucination was stunning for longer
than intended and leaving the fake HUD crit icon permanently.
Flatty Patty:
- bugfix: all the tools have icons again
FlattyPatty:
- tweak: Improved Nanotrasen click manufacturing procedures now allow the flashlights
to make that classic clicking sound you know and love.
Fox McCloud:
- tweak: Buckshot now does a max of 70 damage, down from 90
KasparoVy:
- bugfix: Fixes a bug with certain tail markings rendering when they shouldn't.
Markolie:
- tweak: Firelocks forced by AI's, cyborgs at range or admin ghosts will now autoclose
if there's still an atmospherics alarm present.
@@ -4070,7 +4085,54 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- tweak: Added a visible message to forcing airlocks with the Jaws of Life.
davipatury:
- rscadd: Ported Modular Computers from /tg/.
- rscadd: Ported Rapid Cable Layer from /vg/.
uraniummeltdown:
- rscadd: EVA has 2 more EVA Suits
- rscdel: Removed Vox-only EVA suits (the grey ones in EVA)
- tweak: Vox can now wear EVA suits
2017-03-12:
Crazylemon64:
- bugfix: Kudzu should now be less of (but still) a station-destroying force of
nature.
- tweak: Bluespace kudzu now only pierces a single layer of walls before losing
its "charge".
- tweak: Aggressive spread now does not bust rwalls, but does attack obstructing
objects in its path.
- tweak: Kudzu now only spreads on space turfs when it has specific mutations to
do so.
- tweak: Kudzu events should be more interesting on their own.
Jovaniph:
- rscadd: Adds Vulpkanin EVA suit sprite
Kyep:
- tweak: Adjusted Wizard Academy to make it both more lethal, and more rewarding.
Markolie:
- tweak: The system for picking ghosts to inhabit cultist slaughter demons now shows
a confirmation prompt like most other role checks.
- bugfix: Fixed an issue where you could join as a cultist slaughter demon despite
having antagHUD enabled.
- bugfix: Fixed an issue where it was possible to weld statues without any fuel.
- tweak: It is no longer possible to spam the firelock force message.
Twinmold93:
- rscadd: Employment record laptop to Head of Personnel's Office. Moves package
wrap that was there to meeting room to be paired with the hand labeler there.
2017-03-13:
Kyep:
- bugfix: Syndicate mobs in the Wild West are no longer so stupid that they trip
over, and die to, their own mines. This also means that they won't set their
own buildings on fire anymore.
- bugfix: Phazons' phase ability now works again.
- bugfix: Phazons' toxin injector melee damage type (a weak melee attack) now works
again.
uraniummeltdown:
- rscadd: Clicking on a tile with another tile and a crowbar or screwdriver in hand
directly replaces the tile.
2017-03-14:
uraniummeltdown:
- rscadd: Strong supply talismans can now summon 5 sheets of runed metal.
2017-03-15:
uraniummeltdown:
- rscadd: Plastic flaps can be deconstructed with tools and constructed using 5
sheets of plastic.
- rscadd: You can now damage grilles by throwing things at them.
- rscadd: You can rebuild broken grilles by using a metal rod on them.
- tweak: Metal rods maximum amount reduced from 60 to 50.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 252 KiB

After

Width:  |  Height:  |  Size: 253 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 182 KiB

After

Width:  |  Height:  |  Size: 184 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 179 KiB

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 14 KiB

+2
View File
@@ -21,6 +21,7 @@
#include "code\__DEFINES\bots.dm"
#include "code\__DEFINES\clothing.dm"
#include "code\__DEFINES\combat.dm"
#include "code\__DEFINES\construction.dm"
#include "code\__DEFINES\crafting.dm"
#include "code\__DEFINES\error_handler.dm"
#include "code\__DEFINES\flags.dm"
@@ -807,6 +808,7 @@
#include "code\game\objects\items\weapons\power_cells.dm"
#include "code\game\objects\items\weapons\powerfist.dm"
#include "code\game\objects\items\weapons\RCD.dm"
#include "code\game\objects\items\weapons\RCL.dm"
#include "code\game\objects\items\weapons\RSF.dm"
#include "code\game\objects\items\weapons\scissors.dm"
#include "code\game\objects\items\weapons\scrolls.dm"
Binary file not shown.