diff --git a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm index fca6de7ec3c..6f433624813 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41A.II.dmm @@ -926,7 +926,7 @@ "arP" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 1},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating,/area/maintenance/fore) "arQ" = (/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"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating,/area/maintenance/fore) "arR" = (/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{icon_state = "warnplate"; dir = 4},/area/maintenance/fore) -"arS" = (/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) +"arS" = (/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) "arT" = (/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{icon_state = "dark"},/area/security/brig) "arU" = (/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"},/obj/machinery/light/small,/turf/simulated/floor{dir = 10; icon_state = "whitered"},/area/security/brig) "arV" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/obj/machinery/iv_drip{density = 0},/turf/simulated/floor{icon_state = "whitered"},/area/security/brig) @@ -2008,9 +2008,9 @@ "aMF" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor,/area/engine/engineering) "aMG" = (/obj/structure/table,/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = 25; pixel_y = 0; req_access_txt = "11"},/obj/item/weapon/storage/toolbox/electrical{pixel_y = 5},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) "aMH" = (/obj/machinery/door_control{id = "Singularity"; name = "Shutters Control"; pixel_x = -25; pixel_y = 0; req_access_txt = "11"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/engine/engineering) -"aMI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) -"aMJ" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering - Particle Accelerator"; dir = 2; network = list("Singulo","SS13")},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) -"aMK" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/engine/engineering) +"aMI" = (/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/space) +"aMJ" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"aMK" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "aML" = (/turf/simulated/floor,/area/construction) "aMM" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/simulated/floor,/area/construction) "aMN" = (/turf/simulated/shuttle/wall{icon_state = "swall3"; dir = 2},/area/shuttle/supply) @@ -2085,7 +2085,7 @@ "aOe" = (/obj/structure/particle_accelerator/particle_emitter/right{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aOf" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) "aOg" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 9},/area/space) -"aOh" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/space) +"aOh" = (/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/plating/airless,/area/space) "aOi" = (/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/space) "aOj" = (/obj/item/weapon/crowbar,/turf/space,/area/space) "aOk" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/turf/simulated/floor,/area/construction) @@ -2152,9 +2152,9 @@ "aPt" = (/obj/structure/particle_accelerator/fuel_chamber{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aPu" = (/obj/structure/particle_accelerator/power_box{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aPv" = (/obj/structure/particle_accelerator/particle_emitter/center{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) -"aPw" = (/obj/item/weapon/wirecutters,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) -"aPx" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/space) -"aPy" = (/obj/machinery/the_singularitygen{anchored = 1},/turf/simulated/floor/plating/airless,/area/space) +"aPw" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"aPx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/space) +"aPy" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable,/turf/simulated/floor/plating/airless,/area/space) "aPz" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/space) "aPA" = (/obj/machinery/light_construct{dir = 8},/turf/simulated/floor/plating,/area/construction) "aPB" = (/obj/item/weapon/crowbar/red,/turf/simulated/floor/plating,/area/construction) @@ -2240,7 +2240,7 @@ "aRd" = (/obj/structure/particle_accelerator/particle_emitter/left{dir = 4},/turf/simulated/floor/plating,/area/engine/engineering) "aRe" = (/obj/item/weapon/weldingtool,/turf/space,/area/space) "aRf" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHWEST)"; icon_state = "warnplate"; dir = 10},/area/space) -"aRg" = (/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/space) +"aRg" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "aRh" = (/turf/simulated/floor/plating{tag = "icon-warnplate (SOUTHEAST)"; icon_state = "warnplate"; dir = 6},/area/space) "aRi" = (/obj/machinery/pipedispenser,/turf/simulated/floor/plating,/area/construction) "aRj" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating{tag = "icon-platingdmg1"; icon_state = "platingdmg1"},/area/maintenance/fpmaint2{name = "Port Maintenance"}) @@ -2376,7 +2376,7 @@ "aTJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable/yellow{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor,/area/engine/engineering) "aTK" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/disposalpipe/segment,/obj/structure/cable/yellow{d1 = 2; d2 = 8; icon_state = "2-8"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) "aTL" = (/obj/structure/table,/obj/item/weapon/book/manual/engineering_hacking{pixel_x = 4; pixel_y = 5},/obj/item/weapon/book/manual/engineering_construction{pixel_x = 0; pixel_y = 3},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/item/weapon/book/manual/engineering_singularity_safety{pixel_x = -4},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) -"aTM" = (/obj/structure/lattice,/obj/item/clothing/head/hardhat,/turf/space,/area/space) +"aTM" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/space) "aTN" = (/turf/simulated/shuttle/wall{tag = "icon-swall3"; icon_state = "swall3"; dir = 2},/area/shuttle/pod_1) "aTO" = (/obj/structure/stool/bed/chair{dir = 1},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 32; pixel_y = 0},/turf/simulated/shuttle/floor,/area/shuttle/pod_1) "aTP" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/construction) @@ -2514,7 +2514,7 @@ "aWr" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/engine/engineering) "aWs" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 5; icon_state = "warning"},/area/engine/engineering) "aWt" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating{dir = 8; icon_state = "warnplate"; tag = ""},/area/engine/engineering) -"aWu" = (/obj/machinery/camera/emp_proof{c_tag = "Aft Arm - Near"; dir = 4; network = list("Singulo")},/turf/space,/area/space) +"aWu" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "aWv" = (/obj/structure/lattice,/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "aWw" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window{dir = 2; name = "MiniSat Walkway Access"; req_access_txt = "0"},/turf/simulated/floor{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "aWx" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) @@ -2578,7 +2578,7 @@ "aXD" = (/turf/simulated/floor,/area/engine/engineering) "aXE" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = "90Curve"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/engine/engineering) "aXF" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) -"aXG" = (/obj/item/weapon/screwdriver,/obj/structure/lattice,/turf/space,/area/space) +"aXG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "aXH" = (/obj/structure/window/reinforced{dir = 4},/turf/space,/area/space) "aXI" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/construction/hallway{name = "\improper MiniSat Exterior"}) "aXJ" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 0},/obj/structure/window/reinforced{dir = 8},/turf/space,/area/space) @@ -3656,7 +3656,7 @@ "bsp" = (/turf/simulated/wall,/area/crew_quarters/bar) "bsq" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/starboard) "bsr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/maintenance/starboard) -"bss" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/doorint.dmi'; name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) +"bss" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering - Particle Accelerator"; dir = 2; network = list("Singulo","SS13")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTH)"; icon_state = "warnplate"; dir = 1},/area/engine/engineering) "bst" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/maintenance/starboard) "bsu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "cautioncorner"},/area/hallway/primary/starboard) "bsv" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/obj/structure/cable/yellow{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable/yellow{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{dir = 2; icon_state = "neutralcorner"},/area/hallway/primary/starboard) @@ -8276,6 +8276,7 @@ "ddh" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 10},/obj/item/device/radio/electropack,/turf/simulated/floor,/area/toxins/xenobiology{name = "\improper Secure Lab"}) "ddi" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/simulated/shuttle/floor,/area/shuttle/escape) "ddj" = (/obj/structure/table,/obj/item/weapon/cigbutt/cigarbutt,/turf/simulated/shuttle/floor,/area/shuttle/escape) +"ddk" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/engine/engineering) "ddl" = (/obj/machinery/computer/communications,/obj/machinery/status_display{pixel_y = -32},/turf/simulated/shuttle/floor,/area/shuttle/escape) "ddm" = (/obj/machinery/computer/atmos_alert,/turf/simulated/shuttle/floor,/area/shuttle/escape) "ddn" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/item/weapon/folder/blue,/turf/simulated/shuttle/floor,/area/shuttle/escape) @@ -8308,7 +8309,20 @@ "ddO" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating/airless,/area/space) "ddP" = (/obj/structure/disposalpipe/trunk{dir = 1},/obj/structure/disposaloutlet,/turf/simulated/floor/plating/airless,/area/space) "ddQ" = (/obj/docking_port/stationary{dheight = 9; dir = 2; dwidth = 5; height = 22; id = "syndicate_s"; name = "south of station"; width = 18},/turf/space,/area/space) - +"ddR" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) +"ddS" = (/obj/machinery/the_singularitygen{anchored = 1},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 1},/area/space) +"ddT" = (/obj/effect/spawner/window/reinforced{useFull = 1; tag = "fullReinWin"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) +"ddU" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/engine/engineering) +"ddV" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"ddW" = (/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/space) +"ddX" = (/obj/machinery/the_singularitygen/tesla{anchored = 1},/turf/simulated/floor/plating{icon_plating = "warnplate"; icon_state = "warnplate"},/area/space) +"ddY" = (/obj/machinery/camera/emp_proof{c_tag = "Aft Arm - Near"; dir = 4; network = list("Singulo")},/turf/simulated/floor/plating/airless,/area/space) +"ddZ" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor/plating/airless,/area/space) +"dea" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/turf/simulated/floor/plating/airless,/area/space) +"deb" = (/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"},/turf/simulated/floor/plating/airless,/area/space) +"dec" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating/airless,/area/space) +"ded" = (/obj/machinery/door/airlock{icon = 'icons/obj/doors/Doorint.dmi'; name = "Starboard Emergency Storage"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/starboard) + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8404,19 +8418,19 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqarAarAarAarAarAarAarAaCnarAabqabqabqabqapfaoXazSarIakzaaaaCoaCpaCqaCpaCoaCraCraCraCsaCsaCsaCsaCtaCsaCsaCuaCuaCuaCuaCvaCuaCwajgabqaBbaCxaCyaCzaCAaCBaBbaaaayMaCCaCCaCDayMaaaaaaaCEaCFaCGaCHakDaCFaCIaCHakDaCFaCJaCHakDaCKamzaCLakDamzaCMaCNamzamzaCOaCOaCPaCQaCRaCOaCOaCSakDakDakDakDakDatLaBIaCTaCUaCVavravravravravraCWaCXaCYazlazmavvavvavvaoGaCZasIarrasJasIaDaasJaxhaxhaxhaxhaxhaDbaDcaDdaDeaDfaDgaDfaDhaDiaDjaDiaDkaCjaDlaCjaDmaDiaDjaDiaCmaDnaDoabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBabqabqabqarAarAarAarAataarAarAarAaDparAarAarAarAabqaaaabqakzayBazSaqwapfaaaaASaDqaDraDqaASaCraDsaDtaCsaDuaDvaDwaDxaDyaCsaDzaDAaDBaDCaDDaCuaCwajgaaaaBbaDEaDFaDGaDHaDIaBbaaaazTaDJaCCaDKayMaDLaDLacAaDMaDNaDOakDaDPaDNaDOakDaDQaDNaDOakDaDRaDSaDTakDaDUaDVaDWaDXaDYaCOaDZaEaaEbaEcaEdaEeaCSaEfaEgaEgaEhaEgaEiaBIaEjaEkaElaBIaEmaEnaEmavvaEoaEpaEqaEraEsaEtaEuaEvaBWaEwaxhaxhaxhaxhaxhaxhaxhaExaExaEyaEzaEAaEBaECaEDaCgaCgaCgabqabqaEEaEFaDiaDiaDiaDiaDiaEGaEEaDiaEHaCgaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqarAarAarAarAarAarAarAabqarAabqabqarAarAabqabqapfapfauyazSapfapfaaaaCoaDqaDqaDqaEIaEJaEKaEKaELaEMaENaEOaEPaEQaERaESaETaEUaEVaEWaCuaCwajgaaaaBbaEXaEYaEZaFaaFbaBbaaaayMaFcaCCaCCaFdaFeaFfacAaFgaDNaFhakDaFgaDNaFiakDaFgaDNaFjakDaFkaFlaFmakDaFnaFoaFpaFqaFraCOaFsaFtaFuaFvaFwaFxaCSaFyaFzaFzaFzaFAaFBaBIaFCaFDaFEaBIaFFaFGaFGaFHaFIaFJaFKavvavvavvavvavvaoGaFLaxhaFMaFNaFOaFPaFQaFRaFSaFTaFTaFTaFTaFUaFVaFWaFXaFYaCgaFZabqabqaaaaaaaaaabqabqaaaaaaabqaaaarAaDiaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaarAarAarAarAarAabqabqabqarAarAarAabeaaaabqabqabqapfaGaaoXaoXaGbakzaaaaaaaASaDraDraDraASaCraGcaGdaGeaEMaEKaGfaGgaGhaCsaGiaGjaGkaGlaGmaCuaCwajgabqaBbaGnaGoaGpaGqaGraBbaaaayMaGsaGsaGsayMaDLaGtacAaGuaGvaGwamxaGuaGvaGwamxaGuaGvaGwamxaGxaGyaGzamxamxaCMaGAamxaGBaCOaGCaGDaGEaGFaGGaGHaCSaGIajgajgajgaGJajgaBIaGKaGLaBIaBIaGMaGNaGOaGPaGQaGRaGSazlaGTaGUawWavvaGVaGWaxhaGXaGYaGZaGZaHaaHbaDcaHcaHdaHeaHeaHeaHfaHgaHhaHiaHjaaaaaaabqaaaaaaaaaabqaaaaaaaaaabqaaaaaaabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqabqabqabqabqabqabqabqabqabqaHkaHlaHkabfaaaabqaaaabqapfaHmaHnanEazSapfapfaaaaCoaHoaHpaHqaCoaCraCraCraCsaHraEKaHsaGgaHtaCsaHuaHvaHwaHxaHyaCuaCwajgaaaaBbaHzaHAaHBaHCaBbaBbaaaaHDaHEaHEaHEaHFaHGaHHaHGaHIaHJaHIaHKaHIaHJaHIaHLaHIaHJaHMaHNaHOaHPaHQaHRaHSaHTaHUamxazeaCSaHVaHWaHXaHYaHZaIaaCSaIbaBIaIcaIdaIeaIfaIfaIgaIhaIiaIjaIkaIlaImaInaIoaIpayeaIqaIraIsaItavvaucaGWaxhaIuaIvaIwaIxaIyaIzaIAaIBaICaIDaIDaIDaIEaIFaHhaHiaHjaaaabqabqabqabqabqabqabqabqabqabqabqaaaabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaabqaaaaaaabqabqaaaaHkaIGaHkabqabqabqabqabqapfaIHapdapdaIIaIJapfaaaaIKaARaILaARaIMabqabqabqaCraINaIOaIPaIQaIRaCsaISaITaIUaIVaIWaCuaCwajgaaaabqaaaaIXaIYaIZaaaabqaaaaHGaDLaDLaDLaHGaHGaJaaJbaJcaJdaJeaJfaJgaJhaJhaJiaJhaJjaJgaJkaJlaJmaJnaJoaJpaJqaJramxazeaCSaCSaJsaJtaCSaJuaCSaCSaGIaBIaBIaBIaJvaJwaJxaJyaJzaJAaJBaJCaJDaJEaJFaJFaJGaJHavvavvavvavvavvaubaGWaxhaJIaJJaJKaJLaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaHhaHiaHjaHjabqaJWaaaaaaaaaaaaaJWaaaaaaaJWabqabqabqaCgaJXabqabqabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaabqaaaaaaaaaabqaaaaHkaHlaHkaHkaJYaJYaJYaHkaHkaHkaHkaHkaJZaKaapfaaaaaaaaaaaaaaaaaaaaaaaaabqaCraKbaKcaKdaKeaKfaCsaKgaKhaCuaCuaCuaCuaKiajgaKjaKkaKlaKmaKnaKoaKpaKqaKjaHGaKraKsaKsaKtaKuaKvaKwaKxaKyaKzaKAaKBaKCaKDaKEaKCaKFaKGaKHaKIaKJaKKaKLaKMaKNaKOamxazeaKPaCSaKQaKRaCSaKSaKTaKUaKVaBIaKWaKXaKYaKZaBIaLaaLbaLcaBIaLdaLeaLfaLgaLfaLhaLiaLjaLkaLlaLmavvasJaGWaxhaLnaLoaLpaLqaLraFRaLsaLtaJQaLuaCgaCgaLvaLwaCgaHjaHjaHjabqaaaaaaaaaaaaaaaaLxaaaaaaaaaabqabqabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaabqaHkaHkaLyaLzaLAaLBaLBaLCaLDaLEaLFaLGaHkaHkazSapfaaaaLHaLIaLIaLIaLIaLIaLJabqaCsaCsaCsaLKaLLaCsaCsaLMaLNaLOaLPaLQaLRaLSaLTaLUaLVaLWaLXaLYaLWaLZaMaaMbaHGaMcaMdaMeaMfaMfaMgaMfaMfaMfaMfaMfaMfaMfaMfaMgaMfaMhaMiaMjaMkaMkaMkaMlaMlaMlaMlaMlaMkaMmaMkaMnaMnaMnaMnaMoaMnaGIaBIaBIaBIaMpaMqaBIaMraBIaMsaBIaMtaMuaMvazlaMwaMxaMyazlaMzaMAaMBavvaMCaMDaxhaCgaCgaCgaCgaCgaFRaMEaMFaJQaMGaCgaMHaMIaEEaMJaEEaMKaHjabqaaaaaaabqabqabqabqabqaaaaaaabqabqarAaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqaaaaaaaaaaaaaaaaHkaMLaMLaMLaLBaLBaLBaLBaLBaLBaMLaMLaMMaHkazSakzaaaaMNaMOaMOaMOaMOaMOaMNabqabqaMPaMQaMRaMSaMTaMUaMVaMWaMXaMYaMZaNaaNbaNcaLRaNdaNeaNfaNgaNhaNiaNjaNkaNlaNmaNnaNoaNpaaaaaaaaaabqaaaaaaaaaabqaaaaaaaaaaNqaNraNsaNtaMkaNuaNvaNwaNxaNyaNzaNAaNBaNCaMkaNDaNEaNFaNGaNHaMnaNIaBIaNJaNKaJwaMqaBIaNLaBIaNMaBIaNNaNOaNPaNQaNQaNQaNQaNQaNQaNQaNQaNQaoGaNRaxhaNSaNTaNUaNVaCgaNWaIvaMFaNXaNYaNZaOaaObaOcaOdaOeaOfaHjabqaJWabqabqaOgaOhaOiabqaOjaaaabqaaaataaCgaDoabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaHkaOkaLBaLBaLBaLBaLBaLBaLBaLBaMLaMLaMLaOlaOmapfaaaaMNaOnaMOaMOaMOaMOaMNaOoaMPaMPaOpaOqaOraOraOsaOtaOuaOvaOwaOxapfaOyapfapfapfapfaOzaOAaOBaOCaODaOEaOAaOAaOAaOAaOFaaaaaaaOGaOGaOGaOGaOGaOGaOGaaaaaaaMfaOHaOIaOJaOKaOLaNAaOMaONaOOaOPaOQaORaOSaMkaOTaOUaOVaOWaOXaMnaOYaBIaBIaBIaOZaOZaBIaBIaBIaBIaBIaPaaPbaPcaNQaPdaPeaPfaPgaPhaPiaPjaNQaPkaGWaxhaNTaNTaPlaOdaPmaGYaPnaPoaPpaPqaCgaPraPsaPtaPuaPvaPwaHjabqaaaaaaabqaPxaPyaPzabqaaaaaaabqabqarAaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaabqaHkaPAaLBaLBaLBaLBaPBaLBaPCaLBaLBaMLaPDaHkaGbapfaaaaMNaMOaMOaMOaMOaMOaPEaPFaPGaPFaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaPRaPSaPTaPTaPUaPTaPVaOAaPWaPXaPYaPZaQaaQbaQcaQdaQeaQfaQgaQgaQhaQiaQjaQkaQlaQmaQmaQnaQoaQpaKGaNtaMkaQqaNAaQraNAaQsaNAaQtaNAaNAaMkaQuaQvaOVaQwaQxaMnaQyaQzaQAaQBaQCaQDaQEaQFaQGaQHaQIaQJaQKaQLaNQaQMaQNaQNaQNaQOaQPaQQaNQaQRaGWaxhaQSaQSaQTaOdaPmaJJaQUaQVaQWaQXaQYaQZaRaaRbaRcaRdaOfaHjabqaaaaReabqaRfaRgaRhabqabqaJWabqabqabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJYaLBaLBaLBaLBaLBaLBaLBaLBaLBaLBaRiaHkaHkaRjapfabqaMNaMOaMOaMOaMOaMOaRkaRlaRmaRlaRnaPIaRoaRoaRpaRoaOuaRqaRraRsapfapfapfapfapfapfazSaOAaRtaRuaRvaRwaRxaRxaRxaRyaOFaaaaOGaRzaRAaRAaRAaRAaRAaRBaOGaaaaMfaRCaMiaMjaMkaRDaREaRFaNAaRGaNAaRHaRIaNAaRJaRKaRLaRMaRNaROaMnaRPaRQaRRaRRaRRaRSaRTaRTaRUaRUaRVaRWaRXaRYaRZaSaaSbaSbaSbaScaSdaSeaNQaSfaGWaxhaQSaSgaShaSiaCgaSjaIvaSkaJQaSlaCgaSmaSnaSoaSoaSoaSpaHjabqaaaaaaabqabqabqabqabqaaaaaaabqaaaabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSqaSraSsaaaaJYaLBaLBaLBaLBaLyaLBaStaSuaSuaSvaSwaHkaqBazSapfabqaMNaMOaMOaMOaMOaSxaMNaOoaMPaMPaSyaPIaSzaSAaSBaSCaSDaSEaSFaSGaSHaSIaSJaSKaSLapfaSMaOAaSNaRuaSOaSPaSQaSQaSRaSSaOFaaaaSTaSUaRAaSVaSWaSXaRAaSYaSTaaaaMfaMhaMiaMjaMkaSZaTaaTbaTcaTdaTcaTeaTfaTgaMkaThaTiaTjaTkaTlaMnaTmaTnaToaTpaTqaTraTsaTtaTuaTvaTwaTxaTyaTzaTAaTBaTCaTDaTEaTFaTGaTHaNQasIaGWaxhaCgaCgaCgaCgaCgaFRaTIaTJaTKaTLaCgaCgaLvaLwaCgaHjaHjaHjaTMaaaaaaaaaabqaaaaaaaaaaaaaaaabqaaaabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGaTNaTOaTNacJaHkaLBaLBaLBaLBaLBaLBaLBaLBaLBaTPaTQaHkauAaTRapfaaaaMNaMOaMOaMOaMOaMOaTSaRlaTTaRlaRnaPIaRoaRoaRpaRoaOuaOvaTUaTVaTWaTXaTYaTZaUaapfaUbaUcaUdaRuaRuaUeaUfaRuaUgaUhaOFaaaaUiaUjaUkaUlaUmaUlaUkaUnaUoaaaaMfaMhaUpaUqaMkaUraUraUraUraUsaUraUraUtaUraMkaMnaUuaUvaUwaMnaMnaUxaTnaTpaTqaUyaUzaTnaToaTqaTqaTpaUAaUBaUCaUDaUEaSbaSbaUFaScaUGaUHaNQaUIaUJaxhaUKaULaUMaUNaUOaUPaIvaSkaJQaUQaJSaURaUSaUTaHhaHiaHjaHjabqaJWaaaaaaaJWaaaaaaaaaaaaaJWabqabqabqaCgaJXabqabqabqabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaaaaUUaUUaUUaUUaUVaUUaUUaUUaUUaUVaUUaUUaUUaUUaUVaUUaUUaUUaUUaaaarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdaTNaUWaTNafdaHkaPAaMLaLBaLBaLBaLBaLBaUXaLBaUYaUZaHkaVaaAWapfaaaaMNaMOaMOaMOaMOaMOaVbaVcaVdaVcaVeaPIaRoaVfaVgaVhaViaVjaOuaVkaVlaVmaVnaVoaVpapfaVqaOAaVraRuaRuaVsaVtaVuaUgaVvaOFaaaaOGaVwaVxaUkaVyaRAaVzaVAaOGaaaaMfaVBaOIaOJaVCaVDaVEaVEaVEaNCaVEaVEaVFaVGaMkaVHaVIaVJaVKaVLaVMaVKaVNaVOaVOaVPaVQaVRaVSaVTaVUaVVaVSaVWaVXaNQaVYaVZaWaaWbaWcaWdaWeaNQasJaWfaxhaWgaWhaWiaWjaWkaWlaWmaWnaWoaWpaWqaWqaWraWsaHhaWtaHjaWuabqabqabqabqabqabqabqabqabqabqabqaaaabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaWvaWwaWxaWxaWxaWyaWxaWxaWxaWxaWzaWxaWxaWxaWxaWAaWxaWxaWxaWBaWCarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqaWDaWEaWFaWGaWDaHkaLCaMLaWHaWIaWJaLBaLBaLBaLBaUYaWKaHkazSapdakzaaaaMNaOnaMOaMOaMOaMOaMNaOoaMPaMPaWLaPIaRoaRoaRpaRoaOuaVjaWMaWNaVlaWOaWPaWQaWRapfazMaOAaWSaWTaWTaWUaWVaRuaUgaWWaOFabqaOGaOGaOGaWXaWYaWZaOGaOGaOGabqaMfaOHaXaaMjaXbaXcaVEaVEaVEaXdaVEaVEaXeaNCaXbaQCaXfaXgaXhaToaXiaToaTnaTpaToaXjaToaXkaTpaTqaToaTqaTpaXlaXmaNQaXnaXoaXpaXqaXraPiaQQaNQaXsaGWaxhaXtaXuaXvaXwaXxaXyaXzaXAaXBaXCaXDaXDaXEaXFaHhaHiaHjaaaaaaabqaaaaaaaaaaaaabqaaaaaaaXGaaaaaaabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaXHaXIaXJaXKaXKaXLaXKaXKaXKaXKaXMaXKaXKaXKaXKaXLaXKaXKaXNaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaarAarAarAarAarAabqabqabqarAarAarAabeaaaabqabqabqapfaGaaoXaoXaGbakzaaaaaaaASaDraDraDraASaCraGcaGdaGeaEMaEKaGfaGgaGhaCsaGiaGjaGkaGlaGmaCuaCwajgabqaBbaGnaGoaGpaGqaGraBbaaaayMaGsaGsaGsayMaDLaGtacAaGuaGvaGwamxaGuaGvaGwamxaGuaGvaGwamxaGxaGyaGzamxamxaCMaGAamxaGBaCOaGCaGDaGEaGFaGGaGHaCSaGIajgajgajgaGJajgaBIaGKaGLaBIaBIaGMaGNaGOaGPaGQaGRaGSazlaGTaGUawWavvaGVaGWaxhaGXaGYaGZaGZaHaaHbaDcaHcaHdaHeaHeaHeaHfaHgaHhaHiaHjaMIaMKaMJaOhaMJaMJaOhaMJaMJaOhaMJaMJaPwarAaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqabqabqabqabqabqabqabqabqabqaHkaHlaHkabfaaaabqaaaabqapfaHmaHnanEazSapfapfaaaaCoaHoaHpaHqaCoaCraCraCraCsaHraEKaHsaGgaHtaCsaHuaHvaHwaHxaHyaCuaCwajgaaaaBbaHzaHAaHBaHCaBbaBbaaaaHDaHEaHEaHEaHFaHGaHHaHGaHIaHJaHIaHKaHIaHJaHIaHLaHIaHJaHMaHNaHOaHPaHQaHRaHSaHTaHUamxazeaCSaHVaHWaHXaHYaHZaIaaCSaIbaBIaIcaIdaIeaIfaIfaIgaIhaIiaIjaIkaIlaImaInaIoaIpayeaIqaIraIsaItavvaucaGWaxhaIuaIvaIwaIxaIyaIzaIAaIBaICaIDaIDaIDaIEaIFaHhaHiaHjarAaPxarAaPyarAarAaPyarAarAaPyarAarAaPxarAaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaabqaaaaaaabqabqaaaaHkaIGaHkabqabqabqabqabqapfaIHapdapdaIIaIJapfaaaaIKaARaILaARaIMabqabqabqaCraINaIOaIPaIQaIRaCsaISaITaIUaIVaIWaCuaCwajgaaaabqaaaaIXaIYaIZaaaabqaaaaHGaDLaDLaDLaHGaHGaJaaJbaJcaJdaJeaJfaJgaJhaJhaJiaJhaJjaJgaJkaJlaJmaJnaJoaJpaJqaJramxazeaCSaCSaJsaJtaCSaJuaCSaCSaGIaBIaBIaBIaJvaJwaJxaJyaJzaJAaJBaJCaJDaJEaJFaJFaJGaJHavvavvavvavvavvaubaGWaxhaJIaJJaJKaJLaJMaJNaJOaJPaJQaJRaJSaJTaJUaJVaHhaHiaHjaHjaPxaJWaaaaaaaaaaaaaJWaaaaaaaJWarAaPxabqaCgaJXabqabqabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaabqaaaaaaaaaabqaaaaHkaHlaHkaHkaJYaJYaJYaHkaHkaHkaHkaHkaJZaKaapfaaaaaaaaaaaaaaaaaaaaaaaaabqaCraKbaKcaKdaKeaKfaCsaKgaKhaCuaCuaCuaCuaKiajgaKjaKkaKlaKmaKnaKoaKpaKqaKjaHGaKraKsaKsaKtaKuaKvaKwaKxaKyaKzaKAaKBaKCaKDaKEaKCaKFaKGaKHaKIaKJaKKaKLaKMaKNaKOamxazeaKPaCSaKQaKRaCSaKSaKTaKUaKVaBIaKWaKXaKYaKZaBIaLaaLbaLcaBIaLdaLeaLfaLgaLfaLhaLiaLjaLkaLlaLmavvasJaGWaxhaLnaLoaLpaLqaLraFRaLsaLtaJQaLuaCgaCgaLvaLwaCgaHjaHjaHjaPxaaaaaaaaaaaaaaaaLxaaaaaaaaaaTMaRgabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaabqaHkaHkaLyaLzaLAaLBaLBaLCaLDaLEaLFaLGaHkaHkazSapfaaaaLHaLIaLIaLIaLIaLIaLJabqaCsaCsaCsaLKaLLaCsaCsaLMaLNaLOaLPaLQaLRaLSaLTaLUaLVaLWaLXaLYaLWaLZaMaaMbaHGaMcaMdaMeaMfaMfaMgaMfaMfaMfaMfaMfaMfaMfaMfaMgaMfaMhaMiaMjaMkaMkaMkaMlaMlaMlaMlaMlaMkaMmaMkaMnaMnaMnaMnaMoaMnaGIaBIaBIaBIaMpaMqaBIaMraBIaMsaBIaMtaMuaMvazlaMwaMxaMyazlaMzaMAaMBavvaMCaMDaxhaCgaCgaCgaCgaCgaFRaMEaMFaJQaMGaCgaMHaXGaWubssaWuddkaHjaPxaaaaaaabqabqabqabqabqaaaaaaarAaPxarAaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqaaaaaaaaaaaaaaaaHkaMLaMLaMLaLBaLBaLBaLBaLBaLBaMLaMLaMMaHkazSakzaaaaMNaMOaMOaMOaMOaMOaMNabqabqaMPaMQaMRaMSaMTaMUaMVaMWaMXaMYaMZaNaaNbaNcaLRaNdaNeaNfaNgaNhaNiaNjaNkaNlaNmaNnaNoaNpaaaaaaaaaabqaaaaaaaaaabqaaaaaaaaaaNqaNraNsaNtaMkaNuaNvaNwaNxaNyaNzaNAaNBaNCaMkaNDaNEaNFaNGaNHaMnaNIaBIaNJaNKaJwaMqaBIaNLaBIaNMaBIaNNaNOaNPaNQaNQaNQaNQaNQaNQaNQaNQaNQaoGaNRaxhaNSaNTaNUaNVaCgaNWaIvaMFaNXaNYaNZaOaaObaOcaOdaOeddRaHjaPxaJWabqabqaOgddSaOiabqaOjaaaarAaPxataaCgaDoabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaHkaOkaLBaLBaLBaLBaLBaLBaLBaLBaMLaMLaMLaOlaOmapfaaaaMNaOnaMOaMOaMOaMOaMNaOoaMPaMPaOpaOqaOraOraOsaOtaOuaOvaOwaOxapfaOyapfapfapfapfaOzaOAaOBaOCaODaOEaOAaOAaOAaOAaOFaaaaaaaOGaOGaOGaOGaOGaOGaOGaaaaaaaMfaOHaOIaOJaOKaOLaNAaOMaONaOOaOPaOQaORaOSaMkaOTaOUaOVaOWaOXaMnaOYaBIaBIaBIaOZaOZaBIaBIaBIaBIaBIaPaaPbaPcaNQaPdaPeaPfaPgaPhaPiaPjaNQaPkaGWaxhaNTaNTaPlaOdaPmaGYaPnaPoaPpaPqaCgaPraPsaPtaPuaPvddUddTddVaaaaaaabqddWcspaPzabqaaaaaaaTMaRgarAaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaabqaHkaPAaLBaLBaLBaLBaPBaLBaPCaLBaLBaMLaPDaHkaGbapfaaaaMNaMOaMOaMOaMOaMOaPEaPFaPGaPFaPHaPIaPJaPKaPLaPMaPNaPOaPPaPQaPRaPSaPTaPTaPUaPTaPVaOAaPWaPXaPYaPZaQaaQbaQcaQdaQeaQfaQgaQgaQhaQiaQjaQkaQlaQmaQmaQnaQoaQpaKGaNtaMkaQqaNAaQraNAaQsaNAaQtaNAaNAaMkaQuaQvaOVaQwaQxaMnaQyaQzaQAaQBaQCaQDaQEaQFaQGaQHaQIaQJaQKaQLaNQaQMaQNaQNaQNaQOaQPaQQaNQaQRaGWaxhaQSaQSaQTaOdaPmaJJaQUaQVaQWaQXaQYaQZaRaaRbaRcaRdaOfaHjaPxaaaaReabqaRfddXaRhabqabqaJWarAaPxabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaJYaLBaLBaLBaLBaLBaLBaLBaLBaLBaLBaRiaHkaHkaRjapfabqaMNaMOaMOaMOaMOaMOaRkaRlaRmaRlaRnaPIaRoaRoaRpaRoaOuaRqaRraRsapfapfapfapfapfapfazSaOAaRtaRuaRvaRwaRxaRxaRxaRyaOFaaaaOGaRzaRAaRAaRAaRAaRAaRBaOGaaaaMfaRCaMiaMjaMkaRDaREaRFaNAaRGaNAaRHaRIaNAaRJaRKaRLaRMaRNaROaMnaRPaRQaRRaRRaRRaRSaRTaRTaRUaRUaRVaRWaRXaRYaRZaSaaSbaSbaSbaScaSdaSeaNQaSfaGWaxhaQSaSgaShaSiaCgaSjaIvaSkaJQaSlaCgaSmaSnaSoaSoaSoaSpaHjaPxaaaaaaabqabqabqabqabqaaaaaaarAaPxabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaSqaSraSsaaaaJYaLBaLBaLBaLBaLyaLBaStaSuaSuaSvaSwaHkaqBazSapfabqaMNaMOaMOaMOaMOaSxaMNaOoaMPaMPaSyaPIaSzaSAaSBaSCaSDaSEaSFaSGaSHaSIaSJaSKaSLapfaSMaOAaSNaRuaSOaSPaSQaSQaSRaSSaOFaaaaSTaSUaRAaSVaSWaSXaRAaSYaSTaaaaMfaMhaMiaMjaMkaSZaTaaTbaTcaTdaTcaTeaTfaTgaMkaThaTiaTjaTkaTlaMnaTmaTnaToaTpaTqaTraTsaTtaTuaTvaTwaTxaTyaTzaTAaTBaTCaTDaTEaTFaTGaTHaNQasIaGWaxhaCgaCgaCgaCgaCgaFRaTIaTJaTKaTLaCgaCgaLvaLwaCgaHjaHjaHjaPxaaaaaaaaaabqaaaaaaaaaaaaaaaaTMaRgabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacGaTNaTOaTNacJaHkaLBaLBaLBaLBaLBaLBaLBaLBaLBaTPaTQaHkauAaTRapfaaaaMNaMOaMOaMOaMOaMOaTSaRlaTTaRlaRnaPIaRoaRoaRpaRoaOuaOvaTUaTVaTWaTXaTYaTZaUaapfaUbaUcaUdaRuaRuaUeaUfaRuaUgaUhaOFaaaaUiaUjaUkaUlaUmaUlaUkaUnaUoaaaaMfaMhaUpaUqaMkaUraUraUraUraUsaUraUraUtaUraMkaMnaUuaUvaUwaMnaMnaUxaTnaTpaTqaUyaUzaTnaToaTqaTqaTpaUAaUBaUCaUDaUEaSbaSbaUFaScaUGaUHaNQaUIaUJaxhaUKaULaUMaUNaUOaUPaIvaSkaJQaUQaJSaURaUSaUTaHhaHiaHjaHjaPxaJWaaaaaaaJWaaaaaaaaaaaaaJWarAaPxabqaCgaJXabqabqabqabqabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaaaaUUaUUaUUaUUaUVaUUaUUaUUaUUaUVaUUaUUaUUaUUaUVaUUaUUaUUaUUaaaarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafdaTNaUWaTNafdaHkaPAaMLaLBaLBaLBaLBaLBaUXaLBaUYaUZaHkaVaaAWapfaaaaMNaMOaMOaMOaMOaMOaVbaVcaVdaVcaVeaPIaRoaVfaVgaVhaViaVjaOuaVkaVlaVmaVnaVoaVpapfaVqaOAaVraRuaRuaVsaVtaVuaUgaVvaOFaaaaOGaVwaVxaUkaVyaRAaVzaVAaOGaaaaMfaVBaOIaOJaVCaVDaVEaVEaVEaNCaVEaVEaVFaVGaMkaVHaVIaVJaVKaVLaVMaVKaVNaVOaVOaVPaVQaVRaVSaVTaVUaVVaVSaVWaVXaNQaVYaVZaWaaWbaWcaWdaWeaNQasJaWfaxhaWgaWhaWiaWjaWkaWlaWmaWnaWoaWpaWqaWqaWraWsaHhaWtaHjddYaPxarAddZarAarAddZarAarAddZarAarAaPxabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaWvaWwaWxaWxaWxaWyaWxaWxaWxaWxaWzaWxaWxaWxaWxaWAaWxaWxaWxaWBaWCarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqaWDaWEaWFaWGaWDaHkaLCaMLaWHaWIaWJaLBaLBaLBaLBaUYaWKaHkazSapdakzaaaaMNaOnaMOaMOaMOaMOaMNaOoaMPaMPaWLaPIaRoaRoaRpaRoaOuaVjaWMaWNaVlaWOaWPaWQaWRapfazMaOAaWSaWTaWTaWUaWVaRuaUgaWWaOFabqaOGaOGaOGaWXaWYaWZaOGaOGaOGabqaMfaOHaXaaMjaXbaXcaVEaVEaVEaXdaVEaVEaXeaNCaXbaQCaXfaXgaXhaToaXiaToaTnaTpaToaXjaToaXkaTpaTqaToaTqaTpaXlaXmaNQaXnaXoaXpaXqaXraPiaQQaNQaXsaGWaxhaXtaXuaXvaXwaXxaXyaXzaXAaXBaXCaXDaXDaXEaXFaHhaHiaHjaMIdeaaMJdebaMJaMJdebaMJaMJdebaMJaMJdecabqaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaXHaXIaXJaXKaXKaXLaXKaXKaXKaXKaXMaXKaXKaXKaXKaXLaXKaXKaXNaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaWDaXPaXQaXRaXSaHkaXTaMLaXUaXVaXWaMLaMLaMLaXXaXYaXZaHkaYaaYbapfabqaYcaYdaMOaMOaMOaYeaYfabqabqaMPaWLaYgaPJaPKaYhaYiaYjaYkaYlaYmaYnaYnaYnaYnaYnapfaYoaYpaYqaYraYraYsaYtaYuaYvaYwaYxaaaaaaaaaaOGaOGaYyaOGaOGaaaaaaaaaaNqaNraYzaMjaYAaYBaYCaYDaYEaNCaNCaYFaYGaNCaYAaQCaYHaYIaYJaYKaYLaYKaYMaYNaYOaYPaYKaYKaYKaYKaYKaYKaYQaYRaYSaNQaNQaNQaNQaYTaNQaNQaNQaNQaoGaGWaxhaYUaYVaYVaUNaYWaYXaYYaYZaZaaZbaZcaZdaZeaZfaFXaZgaCgaaaabqabqaaaaaaaaaaaaabqaaaaaaabqabqarAaDiaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaXHaXIaXOaaaaaaaXLaaaaaaaaaaaaaXMaaaaaaaaaaaaaXLaaaaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaWDaWDaZiaZjaWDaWDaWDaZkaWDaWDaZlaZmaWDaWDaWDaZnaWDaWDaZoapfapfabqaZpaZqaZraZraZraZqaZsabqabqaZtaZuaPIaRoaRoaRpaRoaOuaZvaOuaZwaYnaZxaZyaZzaZAapfazSaOAaZBaZCaZDaZEaZFaZGaZHaZIaOFaZJaZKaZJaZLaZMaZNaZOaZLaZJaZKaZJaMfaZPaZQaZRaZSaMkaMkaMkaMkaZTaZUaZVaNCaZWaMkaQCaZXaTraZYaZZaZZaZZaZZaoGaoGaoGbaababbacbadbaebafaZZbagbagaoGbahazAazybaiazybajazybakazybalaxhbambambambambanbaobapbaqbarbasbataIvbaubavaCgaCgaCgabqabqbawbaxaDiaDiaDiaDiaDiaDibawaDibayaCgaCgaDoabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarBaXHaXIaXOaaaaaaaXLaXLaXLaXLaXLaXMaXLaXLaXLaXLaXLaaaaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqaaaaaabazbaAbaBbaCbaDbaEbaBbaFbaGbaHbaGbaIbaJbaGbaKbaLbaMbaNbaOapfaaaaaabaPbaQbaQbaQbaRaaaabqaZtbaSaWLaPIaRoaRobaTbaUaOubaVbaWbaXbaYbaZbbabbbbbcapfazSaOAaOAaOAaOBaOBbbdaOFbbebbfaOFbbgbbhbbiaZLbbjbbkbblaZLbbmbbnbbobbpbbqbbrbbsbbtbbubbvbbwaMkaMkaYAbbxaYAaMkaMkaXibbybbzaXibbAbbBbbCbbDbbEbbFaoGaoGaoGaoGbbGaoGaoGaoGaoGaoGaoGaGWasIasJbbHbbHbbHbbHbbHbbHbbHbambbIbbJbbKbambbLbbMbambbNbbOaFRaFRbbPbbQbbRaDfbbSaDfbbTaDibbUaDiaCiaCjbbVaCjaClaDibbUaDiaCmaDnaDoabqabqabfabfabeabqabeabfabfabeabeabfabfabfabeabqabqabqabqabqarBaWvbbWbbXbbXbbXbbXbbXbbYbbYbbYbbZbbYbbYbbYbbXbcabbXbbXbbXbcbaWCarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8429,7 +8443,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablOblPblQblRbkbblSblTblSblTblSblTblSbkbblUblVbccbgVblWbgXblXblYblZbmabmbbmcbgXbmdbmebmfbmgbmhbmibmjbmkbmlbmmbmnbmobmpbmqbmrbmsbmtbmubmvbmwbmxbmybmzbmAbiVbfIbkJbhqbmBbmCbmDbmEbhqbmFbmGbjeabqabqbmHbmIbmJbmKbmLbmMbmNbmObmPbmQbmRbmSbmTabqabqbhwbmUbmVbmWbmXbmYbmZbnabhwbhybnbbncbndbnebnfbnebngbnhbnibnebnebnebnjbnebnkbnlbnmbnnbnebnebnobnkbngbnjbnpbnqbnobnrbnsbntbnubnvbnwbnxbnybnzbnAbnBbnCbnDbnEbnFbnFbnGbnHbnIbnJaaaaaaaaaabqaaaaaaaaaaefaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqaefblDblEbnKblEbnLaXOaaaaaaaaaaXLbnMbnNbdJbnObnPbnQbnRbnSbnTbdIbdPaXLaXLaXLaXLbnUaWCarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaDaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabiqbkbbkbbipbkbblSblTblSbnVblSblTblSbkbblUblVbccbnWbnXbnYbnZboabobbocbobbiubiubodboebhcbfwbofbogbohboibojbokbolbfwbombonbojbkCboobfwbopboqborbosbotbiUbkIbfIbkJbhqboubovbowboxbhqboybozbjebkWboAbkWboBboCboDboEboDboFboDboEboDboGboHbkWboAbkWbhwboIboIboIboJboKboLboMbhwboNboOboPboQboRboSboRboTboRboUboRboRboRboVboRboWboXboYboZboRboRbpabpbbpcboVbpdboVbpebpfbpgbntbphbpibpibpjbpkbpibpibplbpmbpnbpobnFbnFbppblBblBbpqaaaaaaaaaabqaaaaaaaaaabqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqbpraaaaaaaaaabqbjRbjRbjObpsaXIaXOaaaaaaaaaaXLaXLblHbdIbdIbdIbptbdIbdIbdIbdIbpubcabpvaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaablObpwbpxblRbkbblSblTblSblTblSblTblSbkbblUblVbccbpybpzbpAbpBbpCbpDbpDbpEbpFbpBbpGbpHbpIbfwbpJbpKbpLbpMbpNbpObpPbfwbpQbpRbpSbpTbpUbfwbpVbpWbpXbpYbpZbfGbqabjnbqbbqcbqcbqcbqcbqcbhtbqdbqebhtbkWbqfbqgbqhboEboEboEboEbqiboEboEboEboEbqjbqkbqlbkWbqmbqnbqobqpbqqbqrbqrbqsbhwbqtbqubqvbqwbqxbqybqxbqzbqxbqAbqxbqxbqBbqxbqxbqCbqDbqxbqEbqBbqFbqGbqCbqHbqxbqIbqJbqKbqLbqMbqNbqObqPbqQbqRbpnbqSbqSbqTbqUbqVbqWbntbntbntafdbqXabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqaaabqYbqZbrabrbbrcbrdbrebrfaXIaXLaXLaXLaXLaXLbrgbrhbrgbrgbribrjbribrkbrkbrlbrmbrnaXMaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrobiobiobjZbrpbkbbrqbkbbrrbrsbkbbrtbkbbkibrubccbgVbrvbrwbrxbrybrzbrAbrBbrCbrxbrDbrEbrFbfwbrGbhabrHbrIbfwbfwbfwbfwbfwbhabrJbrKbfwbfwbiUbrLbrMbiUbiUbrNbehbfIbrObqcbrPbrQbrRbqcbrSbrTbrUbrVbrWbrXbrYbrZbsabsbbscbsdbsebscbscbsfbsabsgbshbsibkWbhwboIboIboIbsjboIboIboIbhwbskbfIbslbsmbsnbsobsnbsmbspbspbspbspbspbspaoGaoGbsqaoGaoGaoGbsrbssaoGaoGaoGbstaoGbsubsvbswbsxbsybszbsAbsBbqSbsCbsCbsDbqUbsEbjNbntbsFbsGbsHbsIbsJbsJbsKbsLabqaaaaaaabqaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaabqaaabqYbsMbsNaaaabqbsObsPbsQbsRbsSbsTbrgbsUbsVbsWbsXbsYbsZbrgbtabtbbtcbtdbtebtfbtfbtgaXMaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrobiobiobjZbrpbkbbrqbkbbrrbrsbkbbrtbkbbkibrubccbgVbrvbrwbrxbrybrzbrAbrBbrCbrxbrDbrEbrFbfwbrGbhabrHbrIbfwbfwbfwbfwbfwbhabrJbrKbfwbfwbiUbrLbrMbiUbiUbrNbehbfIbrObqcbrPbrQbrRbqcbrSbrTbrUbrVbrWbrXbrYbrZbsabsbbscbsdbsebscbscbsfbsabsgbshbsibkWbhwboIboIboIbsjboIboIboIbhwbskbfIbslbsmbsnbsobsnbsmbspbspbspbspbspbspaoGaoGbsqaoGaoGaoGbsrdedaoGaoGaoGbstaoGbsubsvbswbsxbsybszbsAbsBbqSbsCbsCbsDbqUbsEbjNbntbsFbsGbsHbsIbsJbsJbsKbsLabqaaaaaaabqaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaabqaaabqYbsMbsNaaaabqbsObsPbsQbsRbsSbsTbrgbsUbsVbsWbsXbsYbsZbrgbtabtbbtcbtdbtebtfbtfbtgaXMaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabrobiobthbiobiqbiobiobiqbiobipbtibtjaWDbtkbtlbtmbfGbtnbtobtpbtobtqbfGbtrbtsbttbtubtvbtwbtxbtybtzbtwbtAbtBbtwbtvbtvbtCbtvbtDbtEbtFbtGbtHbtvbtIbtJbtKbkJbtLbtMbtNbtObqcbjebjebjebjebkWbtPbtQbtRbtSbtTbtUboEbtVbtWbtXbtYbtSbtZbuabubbucbhwbudbuebufbugbuhboIbuibhwbujbfIbukbulbumbunbuobsmbupbuqburbusbutbuubuvbuwbuxaoGbuybuzbuAbuBbuCaoGaxcbuDaoGbuEbuFbuGbnEbuHbuHbuHbuIbuJbqSbqSbuKbuLbuMbuNbuObuPbuQbuRbuSbuTbuTbuUbuVbuWbuWbuWbuXbuWbuWbuWbuWbuWbuWbuXbuWbuWbuWbuWbuWbuWbuXbuWbuYbuZbuTbuTbuTbvabvbbvcbvdbvdbvebvfbvgbvhbvibvjbvkbvlbvmbvnbvobvpbvqbvrbvsbvtbvubvvbbXbbXbvwaWCarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqabqabqabqaaabccbdRbccbccbccbccbccbccbdRbccaaaaWDbvxbvybvzbfGbvAbvBbvCbvBbvDbfGbvEbvFbvGbvHbvHbvIbvJbvHbvHbvKbvLbvMbvNbvHbvHbvObvHbvHbvHbvPbvQbvRbvRbvSbvTbvUbvVbqcbvWbvXbvYbqcbvZbwabwbbwcbwdbtYbwebtTbwfbwgbwhbwibwjbwibwkbwlbwmbwnbwobwpbwqbhwbwrbwsbwtbwubwvbhwbhwbhwbhybwwbwxbsmbwybwzbwAbsmbwBbwCbwDbwEbwFbwGbwHbwIbwJbwKbwLbwMbwNbwObwPbwQbwRbwSaoGbsubwTbwUbntbwVbwWbwXbwYbwZbxabxbbxcbxdbqUbxebxfbxgbxhbxiaWCaaaaaabxjbsNabqaaaaaaabqaaaaaaaaaaaaaaaaaaabqaaaaaaaaaaaaaaaaaaabqaaabxkbxlbsLaaaabqaZhbxmbxnbxobxpbxqbxrbxsbxtbxubxvbxwbxxbxybxzbxAbxBbxCbxDbtfbxEbxFaXMaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqabqbccabqaaaabqaaabccbxGbccbxHbxIbfebxJbccbxGbccbccaWDbgVbxKbxLbfGbxMbvBbxNbvBbxObfGbxPbxQbxRbxSbxTbxUbxVbxWbxXbxYbxZbyabxTbxTbxTbybbxTbycbydbxVbyebxTbxTbyfbygbyhbvVbqcbyibyjbykbylbymbynbymbymbwdbyobypbyqbyqbyqbyrbysbytbyubyvbyqbyqbyqbywbyxbkWbhwbyybyzbyAbyBbyCbhwbyDbyEbyFbyGbwxbsnbyHbyIbyJbsmbyKbyLbyMbyNbspbspaoGaoGbyOaoGaoGaoGbyPbyQaoGaoGbyRbySaoGbyTbwTbyUbntbjNbjNbjNbjNbyVbjNbjNbyWbyXbyYbntbntbyZbzabzbbzcaaabqYbzdaaaabqaaaaaaabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqabqaaabxkbxlbsLabqbzebzfbzgbzhbzibzjbrgbzkbzlbzmbznbzobzpbrgbzqbzrbzsbrkbztbzubtfbtgaXMaaaaZhaXIaXOarBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 913ad6f54c1..92dd66e2e82 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -7547,7 +7547,7 @@ "cPg" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cPh" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cPi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/engine/engineering) -"cPj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cPj" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cPk" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "cPl" = (/obj/structure/particle_accelerator/end_cap,/turf/simulated/floor/plating,/area/engine/engineering) "cPm" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/engine/engineering) @@ -7581,7 +7581,7 @@ "cPO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/item/clothing/glasses/meson,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "cPP" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/stool,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "cPQ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 4; icon_state = "whitegreencorner"},/area/medical/virology) -"cPR" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cPR" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = -25; pixel_y = 0; req_access_txt = "10"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cPS" = (/obj/machinery/particle_accelerator/control_box,/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) "cPT" = (/obj/structure/particle_accelerator/fuel_chamber,/turf/simulated/floor/plating,/area/engine/engineering) "cPU" = (/obj/machinery/door_control{id = "Singularity"; name = "Singularity Blast Doors"; pixel_x = 25; pixel_y = 0; req_access_txt = "10"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/engine/engineering) @@ -7614,7 +7614,7 @@ "cQv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) "cQw" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) "cQx" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Singularity"; layer = 2.7; name = "Singularity Blast Doors"; opacity = 0},/turf/simulated/floor/plating,/area/engine/engineering) -"cQy" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/machinery/light_switch{pixel_x = -27},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cQy" = (/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/stack/cable_coil{pixel_x = 3; pixel_y = -7},/obj/item/weapon/crowbar,/obj/machinery/light_switch{pixel_x = -27},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cQz" = (/obj/structure/stool,/turf/simulated/floor,/area/engine/engineering) "cQA" = (/obj/structure/particle_accelerator/power_box,/turf/simulated/floor/plating,/area/engine/engineering) "cQB" = (/obj/item/weapon/screwdriver,/turf/simulated/floor,/area/engine/engineering) @@ -7647,7 +7647,7 @@ "cRc" = (/obj/structure/cable,/obj/machinery/power/rad_collector{anchored = 1},/obj/item/weapon/tank/plasma,/turf/simulated/floor/plating,/area/engine/engineering) "cRd" = (/obj/machinery/power/rad_collector{anchored = 1},/obj/structure/cable,/turf/simulated/floor/plating,/area/engine/engineering) "cRe" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/engine/engineering) -"cRf" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) +"cRf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/engine/engineering) "cRg" = (/obj/structure/particle_accelerator/particle_emitter/left,/turf/simulated/floor/plating,/area/engine/engineering) "cRh" = (/obj/structure/particle_accelerator/particle_emitter/center,/turf/simulated/floor/plating,/area/engine/engineering) "cRi" = (/obj/structure/particle_accelerator/particle_emitter/right,/turf/simulated/floor/plating,/area/engine/engineering) @@ -7670,8 +7670,8 @@ "cRz" = (/turf/simulated/floor/plating,/area/storage/secure) "cRA" = (/obj/structure/closet/crate,/obj/item/stack/sheet/metal{amount = 50},/obj/item/stack/rods{amount = 50},/obj/item/stack/sheet/glass{amount = 50},/obj/item/weapon/airlock_electronics,/obj/item/weapon/airlock_electronics,/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) "cRB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_west_pump"; tag_exterior_door = "engineering_west_outer"; frequency = 1379; id_tag = "engineering_west_airlock"; tag_interior_door = "engineering_west_inner"; pixel_x = 25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_west_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_west_sensor"; pixel_x = 25; pixel_y = 12},/turf/simulated/floor/plating,/area/engine/engineering) -"cRC" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) -"cRD" = (/obj/item/weapon/wirecutters,/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) +"cRC" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/engine/engineering) +"cRD" = (/obj/item/weapon/wirecutters,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "cRE" = (/turf/simulated/floor{dir = 6; icon_state = "warning"},/area/engine/engineering) "cRF" = (/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "engineering_east_pump"; tag_exterior_door = "engineering_east_outer"; frequency = 1379; id_tag = "engineering_east_airlock"; tag_interior_door = "engineering_east_inner"; pixel_x = -25; req_access_txt = "10;13"; tag_chamber_sensor = "engineering_east_sensor"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "engineering_east_sensor"; pixel_x = -25; pixel_y = 12},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "cRG" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 1; frequency = 1379; id_tag = "engineering_east_pump"},/turf/simulated/floor/plating,/area/engine/engineering) @@ -7685,9 +7685,9 @@ "cRO" = (/obj/machinery/shieldgen,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cRP" = (/obj/structure/closet/crate{name = "solar pack crate"},/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/solar_assembly,/obj/item/weapon/circuitboard/solar_control,/obj/item/weapon/tracker_electronics,/obj/item/weapon/paper/solar,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) "cRQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_west_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/turf/simulated/floor/plating,/area/engine/engineering) -"cRR" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cRR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "warning"},/area/engine/engineering) "cRS" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cRT" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cRT" = (/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/turf/simulated/floor/plating/airless,/area/space) "cRU" = (/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "engineering_east_outer"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/engine/engineering) "cRV" = (/obj/item/device/radio/intercom{dir = 8; name = "station intercom (General)"; pixel_x = -28},/obj/machinery/atmospherics/pipe/simple/visible/purple{dir = 5},/turf/simulated/floor,/area/atmos) "cRW" = (/obj/machinery/atmospherics/trinary/filter{density = 0; dir = 4; filter_type = 2; name = "Gas filter (N2 tank)"; on = 1},/turf/simulated/floor,/area/atmos) @@ -7701,12 +7701,12 @@ "cSe" = (/obj/machinery/the_singularitygen{anchored = 0},/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 4},/area/storage/secure) "cSf" = (/obj/machinery/power/port_gen/pacman,/turf/simulated/floor/plating{icon_state = "warnplate"; dir = 8},/area/storage/secure) "cSg" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cSh" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cSi" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-West"; dir = 2; network = list("Singularity","SS13"); pixel_x = 20; pixel_y = 0},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cSh" = (/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/space) +"cSi" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating,/area/engine/engineering) "cSj" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cSk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cSl" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-East"; dir = 2; network = list("Singularity","SS13")},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cSm" = (/obj/item/weapon/wrench,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cSl" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-West"; dir = 2; network = list("Singularity","SS13"); pixel_x = 20; pixel_y = 0},/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"cSm" = (/obj/item/weapon/extinguisher,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_west_airlock"; name = "exterior access button"; pixel_x = 20; pixel_y = 20; req_access_txt = "10;13"},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cSn" = (/obj/structure/grille,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cSo" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 5},/obj/machinery/light/small{dir = 8},/turf/simulated/floor/plating,/area/engine/engineering) "cSp" = (/obj/machinery/requests_console{announcementConsole = 1; department = "Chief Engineer's Desk"; departmentType = 7; name = "Chief Engineer Requests Console"; pixel_x = 0; pixel_y = 32},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/photocopier,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/engine/chiefs_office) @@ -7751,7 +7751,7 @@ "cTc" = (/obj/machinery/power/emitter,/turf/simulated/floor/plating,/area/storage/secure) "cTd" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cTe" = (/obj/item/device/multitool,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cTf" = (/obj/item/weapon/wirecutters,/obj/structure/lattice,/turf/space,/area/space) +"cTf" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor/plating/airless,/area/space) "cTg" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter,/turf/simulated/wall/r_wall,/area/atmos) "cTh" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_in_meter"; name = "Mixed Air Tank In"},/turf/simulated/wall/r_wall,/area/atmos) "cTi" = (/obj/machinery/atmospherics/pipe/simple/visible,/obj/structure/grille,/obj/machinery/meter{frequency = 1443; id = "mair_out_meter"; name = "Mixed Air Tank Out"},/turf/simulated/wall/r_wall,/area/atmos) @@ -7780,7 +7780,7 @@ "cTF" = (/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor/engine{name = "air floor"; nitrogen = 10580; oxygen = 2644},/area/atmos) "cTG" = (/obj/machinery/light{dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cTH" = (/obj/item/weapon/wrench,/turf/simulated/floor/plating/airless,/area/space) -"cTI" = (/obj/machinery/the_singularitygen{anchored = 1},/obj/effect/decal/warning_stripes/red/hollow,/turf/simulated/floor/plating/airless,/area/space) +"cTI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "cTJ" = (/obj/machinery/light{dir = 4; icon_state = "tube1"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/grille,/turf/simulated/floor/plating/airless,/area/engine/engineering) "cTK" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "n2 floor"; nitrogen = 100000; oxygen = 0},/area/atmos) "cTL" = (/obj/machinery/light/small,/turf/simulated/floor/engine{name = "o2 floor"; nitrogen = 0; oxygen = 100000},/area/atmos) @@ -7788,7 +7788,7 @@ "cTN" = (/obj/item/weapon/weldingtool,/turf/space,/area/space) "cTO" = (/obj/item/device/radio/intercom/syndicate{pixel_y = -28},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate) "cTP" = (/obj/item/device/radio,/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cTQ" = (/obj/structure/lattice,/obj/item/clothing/head/hardhat,/turf/space,/area/space) +"cTQ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "cTR" = (/obj/structure/sign/securearea,/turf/simulated/wall/r_wall,/area/engine/engineering) "cTS" = (/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk12"; icon_state = "catwalk12"},/area/space) "cTT" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{dir = 1; icon_state = "blue"},/area/engine/engineering) @@ -7797,7 +7797,7 @@ "cTW" = (/obj/structure/closet/syndicate/personal,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/shuttle/syndicate) "cTX" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cTY" = (/obj/machinery/power/emitter{anchored = 1; dir = 4; state = 2},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity West"; dir = 4; network = list("Singularity","SS13")},/turf/simulated/floor/plating/airless,/area/engine/engineering) -"cTZ" = (/obj/item/weapon/screwdriver,/obj/structure/lattice,/turf/space,/area/space) +"cTZ" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) "cUa" = (/obj/machinery/power/emitter{anchored = 1; dir = 8; state = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity East"; dir = 8; network = list("Singularity","SS13")},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cUb" = (/obj/structure/grille,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) "cUc" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/command{name = "MiniSat Access"; req_access_txt = "75"},/turf/simulated/floor,/area/engine/engineering) @@ -8266,6 +8266,13 @@ "dcX" = (/obj/machinery/atmospherics/pipe/simple/visible/green{dir = 4; level = 2},/turf/simulated/floor{dir = 6; icon_state = "caution"},/area/atmos) "dcY" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/obj/machinery/requests_console{department = "Mechanic"; departmentType = 2; name = "Mechanic's Workshop Requests Console"; pixel_y = 30},/turf/simulated/floor,/area/engine/mechanic_workshop) "dcZ" = (/obj/item/device/radio/intercom{pixel_y = 25},/turf/simulated/floor,/area/hallway/primary/starboard/west) +"dda" = (/obj/machinery/camera/emp_proof{c_tag = "Engineering Singularity North-East"; dir = 2; network = list("Singularity","SS13")},/obj/machinery/power/grounding_rod{anchored = 1},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"ddb" = (/obj/item/weapon/wrench,/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "engineering_east_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = 20; req_access_txt = "10;13"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"ddc" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/space) +"ddd" = (/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating/airless,/area/engine/engineering) +"dde" = (/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plating/airless,/area/engine/engineering) +"ddf" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"ddg" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor/plating/airless,/area/space) "ddh" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 6},/turf/simulated/floor/plating,/area/engine/engineering) "ddi" = (/obj/machinery/light/small{dir = 1},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "atmospherics_south_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "atmospherics_south_sensor"; pixel_x = -8; pixel_y = -30},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{frequency = 1379; id_tag = "atmospherics_south"; pixel_x = 0; pixel_y = -25; req_access_txt = null; tag_airpump = "atmospherics_south_pump"; tag_chamber_sensor = "atmospherics_south_sensor"; tag_exterior_door = "atmospherics_south_outer"; tag_interior_door = "atmospherics_south_inner"},/turf/simulated/floor/plating,/area/engine/engineering) "ddj" = (/obj/machinery/atmospherics/pipe/simple/hidden{dir = 4},/obj/machinery/door/airlock/external{aiControlDisabled = 1; frequency = 1379; hackProof = 1; icon_state = "door_locked"; id_tag = "atmospherics_south_inner"; locked = 1; name = "Atmospherics External Access"; req_access_txt = "13"},/turf/simulated/floor/plating,/area/engine/engineering) @@ -8687,6 +8694,22 @@ "dlj" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/se) "dlk" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/machinery/door_control{id = "paramedic"; name = "Garage Door Control"; pixel_x = -1; pixel_y = -24; req_access_txt = "66"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/hallway/primary/central/se) "dll" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/central/se) +"dlm" = (/obj/structure/lattice,/obj/item/weapon/wirecutters,/turf/space,/area/space) +"dln" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"dlo" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating/airless,/area/space) +"dlp" = (/obj/effect/decal/warning_stripes/north,/turf/simulated/floor/plating/airless,/area/space) +"dlq" = (/obj/effect/decal/warning_stripes/northwest,/turf/simulated/floor/plating/airless,/area/space) +"dlr" = (/obj/effect/decal/warning_stripes/northeast,/turf/simulated/floor/plating/airless,/area/space) +"dls" = (/obj/machinery/the_singularitygen{anchored = 1},/obj/effect/decal/warning_stripes/west,/turf/simulated/floor/plating/airless,/area/space) +"dlt" = (/obj/machinery/the_singularitygen/tesla{anchored = 1},/obj/effect/decal/warning_stripes/east,/turf/simulated/floor/plating/airless,/area/space) +"dlu" = (/obj/effect/decal/warning_stripes/south,/turf/simulated/floor/plating/airless,/area/space) +"dlv" = (/obj/effect/decal/warning_stripes/southwest,/turf/simulated/floor/plating/airless,/area/space) +"dlw" = (/obj/effect/decal/warning_stripes/southeast,/turf/simulated/floor/plating/airless,/area/space) +"dlx" = (/obj/machinery/power/tesla_coil{anchored = 1},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/turf/simulated/floor/plating/airless,/area/space) +"dly" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating/airless,/area/engine/engineering) +"dlz" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"dlA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) +"dlB" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating/airless,/area/space) (1,1,1) = {" bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik @@ -8876,24 +8899,24 @@ bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbi bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabcPEcLscLscOXaabaabcMucPHcPIcPacPacPJcMucPKcPLdcOcPNcPOcPPdcPcECcPRcPScPTcGOcPUcECdcQcPWcPXcPNcPNdcRcPZcECcQacLQcQbcQccDFcMNcDFcLScLTcQdcQecMScQfdcScIDcQhcDQcQicQjcQjcCKcHBcoDcNhcNgbVibVicEhbVibVibGycNibVibVicGwbVibVicNkcNjcNmcNlcNQcoAcoAcoAcoAbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikaabbikbikbikbikbikbikaabaabbwocNRcunbOMcyJcyJcyJbxXbwoaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikaabaabcPEcLscLscOXaabbikcMucQscPIcPacPacQtcMucQucQvcECcQwcQxcQxdcTcECcQycQzcQAcQBdcUcECcQxcQxcQxcQwcECcQCcQucECcNHcTacQDcQEcQFcQGcQHcQIcQJcQKcIAcQLcJCdcVcJEcNMcEVcQNcQOcQPcCKcHBcoAcoAcEhcdbcNScEhcNTbVibGycNVcNUcNXcNWcMocMocNYcGvbVicNZcoAcoAbikbikaabbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikaabbikbikbikbikbikbwobwobwobwobwocOObOMcyJcOQcOPbxXbwoaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabcPEcOXdeBcPEbikbikcMucQVcQWcPacPacQXcMucQYcQZdcWcRacRbcRccRdcRecRfcRgcRhcRicPucRecRbcRbcRbcRjdcWcRkcRlcECcNHcRmcMNcRncRocQJcRpcRqcRrcRscRtcRucRvdcXcKQcOLcDQcRxcQjcQjcCKcHBcoAbGycORcOTcOScNYcgmbVibGybGybGycGvcOUbGycGqcFicHrbVicEhbwobikbikbikaabbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikaabbikbikbikbikbikbwobxXbxXbxXcyKcOOcOVcyJcPAbxXbxXbwoaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjdbikbikbikbikbikbikbikbikbikbikbikbikbikbikcOgcOhcOhdeFcOhcOhcPFcMucRzcOZcPacPacRAcMucMHcRBcECcECcRecRecRecRecRCcPNcRDcPNcREcRecRecRecRecECcECcRFcRGcECcNHcLQcRHcRIcRocRJcRKcDFcDFcRLcJxcRJcJCcRMcJEcNMcCKcCKcCKcCKcCKcHBcoAcITbGycPCcPBbGycQkbVibVicQlbVicQmcdccyHcQnbVibVibVicEhbwobikbikbikaabbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikaabbikbikbikbikbwobwobwocQpcQocyKcOObOMbxXbxXbxXcYgbwobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcPGcQrcQqcQTcQqcRycQUcMucRNcROcPacPacRPcMucECcRQcECcRRcRScRScLOcLOcLOcLOcLOcLOcLOcLOcLOcRScRScRTcECcRUcECcECcNHcLQcRVcQFcRWcRXcRYcRZcSacRXcSacRXcSbcQJcSccNMcTbcTScTScTScTScUdcYhcYicYicYkcYjcYicYicYicYlcYncYmcQmcYobVicQmbVicYpbVicEhbwocxHcxHcxHbwocxHcxHcxHcxHbwocxHcxHcxHcxHbwobwobwobwobwobwobwobwobwobwoczMbwocyKbwocYqbxXcHycOObOMcyJcyJcLecyJbwoaabczrbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcPGcQrcQqcQTcQTdlcdlbcMucSdcSecPacPacSfcMucSgcShcSicSjbikbikaabbikbikbikbikbikbikbikaabbikbikcSkcSlcSmcSncECcSocMJcFUcSqcSrcSscStcSucSvcSwcDFcSxcSycSzcSAcNMcUkbikaabaabbikcYscYrdbwcYtcYwcYvcYycYxcYicqTbGybGycYzcdccYAcGvbGybGycYBcMncYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYDcYCcYCcYCcYCcmvcyJbFecnGbxXcYEczMbwobwobwocLebwocOObOMcyJcYFbxXbxXbwobikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcPGcQrcQqdldcQqdlfdlecMucRzcOZcPacPacSCcMucSDcSEcSEbikbikaabaabaabaabaabaabaabaabaabaabaabbikbikcSEcSEcSDcECcMHcLQcSAcSFcSGcSHcSIcSJcSAcSHcSAcJEcSAcJEcSAcNMcUkbikacGacGacGcYhcYGcYIcYHcYKcYJcYMcYLcYibGybGybVicQmcYNbVicGvcGqcFicYPcYOcYQcYQcYQcYQcYQcYQcYScYRcYQcYQcYQcYQcYQcYQcYUcYTcYWcYVcYYcYXcYZcYZcYZcYZcZbcZacZccYZcYZcYZcYZcZdbXScyJcOPbxXcZebwobikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdlgcOhcOhcOhcOhcOhdlhcMucSLcSMcPacPacSNcMucSOcSPcSEaabaabaabcSQbikbikbikbikcSQbikbikcSQaabaabaabcSEcSRcSScECcMHcECaabcSTaabcSUcSVcSWcSXcSYcSXcSZcSXcSZcUmcUqcUkbikacGaabbikcYhcZfcYIcZgcZicZhcZkcZjcYicZlbGybGycGvcZmbVicGvcGvcZncoAcoAcxHcxHcxHcxHbwocxHcxHcxHcxHbwocxHcxHcxHcxHbwocZobxXcyJcJMbxXcyJcyJcxHcxHckVcyJcZpbxXcZpcyJcZrcZqcoVbwobwobwobwobwobikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcMucTccSMcPacPacSCcMucTdcSEcTebikbikaabbikbikbikbikbikcTfbikbikbikaabbikbikcSEcSEcTdcECcMHcECcCKcTgcEVcTgcCKcTgcEVcTgcCKcThcEVcTicCKaabcUkbikacGaabaabcYhcZscZucZtcZvcZhcZxcZwcZycYPcZAcZzcGvcdcbGycZBcQmbVicoAbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbwocZCczfcyJcZDbxXcyJbikbikbikbikcyJbxXbxXcNRcqecqecqfcqgcqebikaabaabaabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcMucTjcOZcPacPacTkcMucTlcTmcSEbikbikaabbikbikaabaabaabaabaabbikbikaabbikbikcSEcTncTocECcTpcECcCKcTqcTrcTscCKcTtcTucTvcCKcTwcTxcTycCKaabcUkbikacGbikaabcZGcZFcZucZHcZJcZIcZLcZKcYicZMcQmbVicQmcZNbVicZOcQmcozcoAcoDcoDcoDazybikaabbikbikbikbikbikbikbikbikbikbwocZPcyJcyJcHxbxXcyJcyJcxHcxHcyJcyJbxXcZQczfcqecrecrfcrgcqebikbikaabaabbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaaccMucMucMucMucMucMucMucECcSDcSEbikbikaabcSQaabaabaacaacaacaabcTzbikaabbikbikcSEcSDcECcECcMHcECcCKcTAcTBcTAcCKcTCcTDcTCcCKcTEcTFcTEcCKaabcUkbikacGbikbikcYhcZRcZTcZScZucZUcZWcZVcYicZXcZZcZYdaacAhbGycGvcGvdabdaddacbGydaeazybikaabbikcxHcxHcxHbwobwobwobwobwobwodafcyKcyJdagbxXbxXcyJbxXbxXbxXbxXcYqbxXcPAcqecrZcsacsbcqeaabbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaacaabaacaacaabaabaabacGacGcECcECcTGcSEbikbikaabbikbikaabcTHcTIaacaabbikbikaabbikbikcSEcTJcECcECcMHcECcCKcTAcTKcTAcCKcTCcTLcTCcCKcTEcTMcTEcCKaabcUkbikacGbikbikcYhcYhcYhdahcYhdaidajdaicYicZXdakbGycGzdalcFicHrcGvdamcoAcoDcoDcoDdanaabaabbikcxHdaodapcyJbxXdaqdarcNRcyJdasbxXcyJdatbxXbxXdaubxXbwobwobwocxHcxHbwocqectrctscttcqeaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikaabaabbikbikaabaabacGcECcECcSDcSEbikbikaabbikcTNaabaacaacaacaabaabcSQaabbikbikcSEcSDcECcECcMHcECcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKaabcUkbikaqZbikbikbikbikbikdavcYhdawdaydaxcYibGydazbGybGydaAdaBcGqdaDdaCcoAbikbikbikbikbikaabbikcxHdaEdaFdaubxXcQobxXbxXdaucZobxXcyJcyJcyJcyJcyJbxXbwoaabbikbikbikaabcuzcuzcuAcuzcuzaabaabczraabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabcECcTncTocSEbikbikaabbikbikaabaabaabaabaabbikbikaabbikbikcSEcTlcTmcECcUscECcECcECcECcUvcTScTScTScTScTScTScTScTScTScTScUwbikacGaabaabaabaabaabdaGcYhdaidaHdaicYhcoAdaIcFicFidaJdaLdaKcoAcoAcoAbikbikbikbikbikaabbikcxHdaodaMcyJcNRbxXbxXdaNcyJdaObxXbxXbxXbxXbxXbxXbxXbwoaabbikbikbikaabbikcuzcvEcuzbikaabbikaabbikbikaabbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikaabcECcTdcSEcTPbikbikcTQbikbikbikaabbikbikbikbikbikaabbikbikcSEcSEcTdcECddhddjddicMHddkcUwbikbikbikbikbikbikbikbikbikbikbikbikacGaabaabaabaabaabdaGcYhdaPdaRdaQdaSaabcoAcoAcoDdaTcoDcoAcoAbikaabbikbikbikbikbikaabaabcxHcxHcxHbwobwobwobxXcyJbwodaUbwobwocNRbFeczfbzNczMbwoaabbikbikbikaabbikcuzcwMcuzbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabcECcTXcTYcSEaabaabaabcSQbikbikcSQbikbikbikbikcSQaabcTZaabcSEcUacUbcECddlcECcECcECcECcECcECacGacGacGaqZacGacGacGacGacGacGacGacGaahbikbikbikbikdaGcYhcYhdaVcYhcYhbikaabbikbikdaWbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbwodaFdaXbwocGxaabbwobwocxHcxHczMbwobikaabbikbikbikaabbikbikcxZbikbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcUfcUgcUhbikbikaabaabaabaabaabaabaabaabaabaabaabbikbikcUicUgcUjcECddmcTRddnddocTTcTUcTVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdcdazycYhdaYcYhdaZaabaabbikbikdctbikbikbikbikbikbikbikbikbikbikbikaabaabbikaahbikbikbwodbbdbabwodbcaabbikaabbikbikaabbikbikaabbikbikbikaabbikbikcznbikbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcNycECcKDcSkcUhbikbikaabbikbikbikbikbikbikbikaabbikbikcUicSjcKDcECcECddmcUcddpcUlddqcUecTVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikazydbddbedbdazyaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaabbikbikbikcxHdbfcxHcxHaabczrbikaabbikbikaabbikagQagQacGaqZaabaabaabaabcGEaabaabaabaabczragiagQagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikcECcECcSkcRScRScRScRScRScRScRScRScRScRScRScRScRScSjcECcECcECcECddrcECcECcECcECcUncECaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabazybikbikbikazyaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikcxHdbgcxHbikbikbikbikaabbikbikaabbikagQbikbikaabbikaabbikbikcHNbikbikaabbikaabbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikcECcECcECcECcECcECcECcECcECcECcECcECcECcECcECcECcECbikcECddtaHmcECbikbikbikcUocUxbikbikbikaabbikbikbikaabbikbikbikaabbikbikbikaabbikaabazyazyazyazyazybikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikcxHdbhcxHbikbikbikbikaabbikbikaabbikagQbikcIYcIYcIYcIYcIYaabcIZaabcIYcIYcIYcIYcIYbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik -bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcECaIpcECcECcECcECcUrdducUuddxcUucUtcUuddxcUucUucUuddxcUucUtcUuddxcUuddvcUpaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikcxHdbicxHbikbikbikbikbikbikbikaabbikagQaabcKccKdcKdcKdcKdcKecKfcKgcKhcKhcKhcKhcKiaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjdbikbikbikbikbikbikbikbikbikbikbikbikbikbikcOgcOhcOhdeFcOhcOhcPFcMucRzcOZcPacPacRAcMucMHcRBcECcECcRecRecRecRecRCcRRcRDcPNcREcRecRecRecRecECcECcRFcRGcECcNHcLQcRHcRIcRocRJcRKcDFcDFcRLcJxcRJcJCcRMcJEcNMcCKcCKcCKcCKcCKcHBcoAcITbGycPCcPBbGycQkbVibVicQlbVicQmcdccyHcQnbVibVibVicEhbwobikbikbikaabbikbikbikbikaabbikbikbikbikaabbikbikbikbikbikaabbikbikbikbikbwobwobwocQpcQocyKcOObOMbxXbxXbxXcYgbwobikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcPGcQrcQqcQTcQqcRycQUcMucRNcROcPacPacRPcMucECcRQcECcRTaaccShcRecRecRecRecSicRecRecRecRecShaaccRTcECcRUcECcECcNHcLQcRVcQFcRWcRXcRYcRZcSacRXcSacRXcSbcQJcSccNMcTbcTScTScTScTScUdcYhcYicYicYkcYjcYicYicYicYlcYncYmcQmcYobVicQmbVicYpbVicEhbwocxHcxHcxHbwocxHcxHcxHcxHbwocxHcxHcxHcxHbwobwobwobwobwobwobwobwobwobwoczMbwocyKbwocYqbxXcHycOObOMcyJcyJcLecyJbwoaabczrbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcPGcQrcQqcQTcQTdlcdlbcMucSdcSecPacPacSfcMucSgcSmcSlaaccTfcTIcTIcTIcTIcTIcTQcTIcTIcTIcTIcTIcTZaacddaddbcSncECcSocMJcFUcSqcSrcSscStcSucSvcSwcDFcSxcSycSzcSAcNMcUkbikaabaabbikcYscYrdbwcYtcYwcYvcYycYxcYicqTbGybGycYzcdccYAcGvbGybGycYBcMncYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYCcYDcYCcYCcYCcYCcmvcyJbFecnGbxXcYEczMbwobwobwocLebwocOObOMcyJcYFbxXbxXbwobikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcPGcQrcQqdldcQqdlfdlecMucRzcOZcPacPacSCcMucSDcSEcSEbikddcaacaacaacaacaacaacaacaacaacaacaacddcbikcSEcSEcSDcECcMHcLQcSAcSFcSGcSHcSIcSJcSAcSHcSAcJEcSAcJEcSAcNMcUkbikacGacGacGcYhcYGcYIcYHcYKcYJcYMcYLcYibGybGybVicQmcYNbVicGvcGqcFicYPcYOcYQcYQcYQcYQcYQcYQcYScYRcYQcYQcYQcYQcYQcYQcYUcYTcYWcYVcYYcYXcYZcYZcYZcYZcZbcZacZccYZcYZcYZcYZcZdbXScyJcOPbxXcZebwobikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdlgcOhcOhcOhcOhcOhdlhcMucSLcSMcPacPacSNcMucSOcSPdddaabddcaaccSQbikbikbikbikcSQbikbikcSQaacddcbikddecSRcSScECcMHcECaabcSTaabcSUcSVcSWcSXcSYcSXcSZcSXcSZcUmcUqcUkbikacGaabbikcYhcZfcYIcZgcZicZhcZkcZjcYicZlbGybGycGvcZmbVicGvcGvcZncoAcoAcxHcxHcxHcxHbwocxHcxHcxHcxHbwocxHcxHcxHcxHbwocZobxXcyJcJMbxXcyJcyJcxHcxHckVcyJcZpbxXcZpcyJcZrcZqcoVbwobwobwobwobwobikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcMucTccSMcPacPacSCcMucTdcSEcTebikddfddgbikbikbikbikbikdlmbikbikbikdlodlnbikcSEcSEcTdcECcMHcECcCKcTgcEVcTgcCKcTgcEVcTgcCKcThcEVcTicCKaabcUkbikacGaabaabcYhcZscZucZtcZvcZhcZxcZwcZycYPcZAcZzcGvcdcbGycZBcQmbVicoAbikbikbikbikbikaabbikbikbikbikbikbikbikbikbikbwocZCczfcyJcZDbxXcyJbikbikbikbikcyJbxXbxXcNRcqecqecqfcqgcqebikaabaabaabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcMucTjcOZcPacPacTkcMucTlcTmcSEbikddcaacbikbikaabaabaabaabaabbikbikaacddcbikcSEcTncTocECcTpcECcCKcTqcTrcTscCKcTtcTucTvcCKcTwcTxcTycCKaabcUkbikacGbikaabcZGcZFcZucZHcZJcZIcZLcZKcYicZMcQmbVicQmcZNbVicZOcQmcozcoAcoDcoDcoDazybikaabbikbikbikbikbikbikbikbikbikbwocZPcyJcyJcHxbxXcyJcyJcxHcxHcyJcyJbxXcZQczfcqecrecrfcrgcqebikbikaabaabbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaaccMucMucMucMucMucMucMucECcSDcSEbikddcaaccSQaabaabdlqdlpdlraabcTzbikaacddcbikcSEcSDcECcECcMHcECcCKcTAcTBcTAcCKcTCcTDcTCcCKcTEcTFcTEcCKaabcUkbikacGbikbikcYhcZRcZTcZScZucZUcZWcZVcYicZXcZZcZYdaacAhbGycGvcGvdabdaddacbGydaeazybikaabbikcxHcxHcxHbwobwobwobwobwobwodafcyKcyJdagbxXbxXcyJbxXbxXbxXbxXcYqbxXcPAcqecrZcsacsbcqeaabbikbikbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaacaabaacaacaabaabaabacGacGcECcECcTGcSEbikddfddgbikbikaabdlscTHdltaabbikbikdlodlnbikcSEcTJcECcECcMHcECcCKcTAcTKcTAcCKcTCcTLcTCcCKcTEcTMcTEcCKaabcUkbikacGbikbikcYhcYhcYhdahcYhdaidajdaicYicZXdakbGycGzdalcFicHrcGvdamcoAcoDcoDcoDdanaabaabbikcxHdaodapcyJbxXdaqdarcNRcyJdasbxXcyJdatbxXbxXdaubxXbwobwobwocxHcxHbwocqectrctscttcqeaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikaabaabbikbikaabaabacGcECcECcSDcSEbikddcaacbikcTNaabdlvdludlwaabaabcSQaacddcbikcSEcSDcECcECcMHcECcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKcCKaabcUkbikaqZbikbikbikbikbikdavcYhdawdaydaxcYibGydazbGybGydaAdaBcGqdaDdaCcoAbikbikbikbikbikaabbikcxHdaEdaFdaubxXcQobxXbxXdaucZobxXcyJcyJcyJcyJcyJbxXbwoaabbikbikbikaabcuzcuzcuAcuzcuzaabaabczraabaabcZEaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabcECcTncTocSEbikddcaacbikbikaabaabaabaabaabbikbikaacddcbikcSEcTlcTmcECcUscECcECcECcECcUvcTScTScTScTScTScTScTScTScTScTScUwbikacGaabaabaabaabaabdaGcYhdaidaHdaicYhcoAdaIcFicFidaJdaLdaKcoAcoAcoAbikbikbikbikbikaabbikcxHdaodaMcyJcNRbxXbxXdaNcyJdaObxXbxXbxXbxXbxXbxXbxXbwoaabbikbikbikaabbikcuzcvEcuzbikaabbikaabbikbikaabbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikaabcECcTdcSEcTPbikddfddgbikbikbikaabbikbikbikbikbikdlodlnbikcSEcSEcTdcECddhddjddicMHddkcUwbikbikbikbikbikbikbikbikbikbikbikbikacGaabaabaabaabaabdaGcYhdaPdaRdaQdaSaabcoAcoAcoDdaTcoDcoAcoAbikaabbikbikbikbikbikaabaabcxHcxHcxHbwobwobwobxXcyJbwodaUbwobwocNRbFeczfbzNczMbwoaabbikbikbikaabbikcuzcwMcuzbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabcECcTXcTYdddaabddcaaccSQbikbikcSQbikbikbikbikcSQaacddcbikddecUacUbcECddlcECcECcECcECcECcECacGacGacGaqZacGacGacGacGacGacGacGacGaahbikbikbikbikdaGcYhcYhdaVcYhcYhbikaabbikbikdaWbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbwodaFdaXbwocGxaabbwobwocxHcxHczMbwobikaabbikbikbikaabbikbikcxZbikbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaahbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcUfcUgcUhbikddcaacaacdlxaacaacdlxaacaacdlxaacaacddcbikcUicUgcUjcECddmcTRddnddocTTcTUcTVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdcdazycYhdaYcYhdaZaabaabbikbikdctbikbikbikbikbikbikbikbikbikbikbikaabaabbikaahbikbikbwodbbdbabwodbcaabbikaabbikbikaabbikbikaabbikbikbikaabbikbikcznbikbikaabbikaabbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcNycECcECdlybikdlzcTIcTIdlAcTIcTIdlAcTIcTIdlAcTIcTIdlBbikdlycECcECcECddmcUcddpcUlddqcUecTVbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikazydbddbedbdazyaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabaabbikbikbikcxHdbfcxHcxHaabczrbikaabbikbikaabbikagQagQacGaqZaabaabaabaabcGEaabaabaabaabczragiagQagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabcECcKDcSkcUhaabaabaabaabbikbikbikbikbikaabaabaabaabcUicSjcKDcECcECddrcECcECcECcECcUncECaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabazybikbikbikazyaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikcxHdbgcxHbikbikbikbikaabbikbikaabbikagQbikbikaabbikaabbikbikcHNbikbikaabbikaabbikbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabbikcECcECcSkcRScRScRScRScRScRScRScRScRScRScRScRScRScSjcECcECcECddtaHmcECbikbikbikcUocUxbikbikbikaabbikbikbikaabbikbikbikaabbikbikbikaabbikaabazyazyazyazyazybikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikcxHdbhcxHbikbikbikbikaabbikbikaabbikagQbikcIYcIYcIYcIYcIYaabcIZaabcIYcIYcIYcIYcIYbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik +bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcECcECcECcECcECcECcECcECcECcECcECcECcECcECcECcECbikcECcECaIpcECcECcECcECcUrdducUuddxcUucUtcUuddxcUucUucUuddxcUucUtcUuddxcUuddvcUpaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikcxHdbicxHbikbikbikbikbikbikbikaabbikagQaabcKccKdcKdcKdcKdcKecKfcKgcKhcKhcKhcKhcKiaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcMHcMHcUyaIraIrcUAaabaabbikbikbikaabbikbikbikaabbikbikbikaabbikbikbikcUDcULcUxaabaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabdbHdbjdbjbikbikbikbikbikbikbikaabbikagQaabcLrcLrcLrcLrcLrbikcIZbikcLrcLrcLrcLrcLraabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcTpcMHcUCcUBcUFcUEaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabczraabaabcUDcUzcUpbikbikaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikaabbikagQbikaabbikaabaabaabbikcIZbikaabbikaabbikaabbikagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik bikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikdjebikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikcECcUIcMHcUGaIraIrcUHaabaabaabbikbikbikbikbikbikbikbikbikbikbikbikaabbikbikbikcUDcULcUpbikaabaabbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikaabaabbikbikbikbikbikbikbikagQbikcIYcIYcIYcIYcIYaabcIZaabcIYcIYcIYcIYcIYaabagQbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbikbik diff --git a/code/__HELPERS/matrices.dm b/code/__HELPERS/matrices.dm index 31e6c444d1a..94668321c60 100644 --- a/code/__HELPERS/matrices.dm +++ b/code/__HELPERS/matrices.dm @@ -3,15 +3,24 @@ Turn(.) //BYOND handles cases such as -270, 360, 540 etc. DOES NOT HANDLE 180 TURNS WELL, THEY TWEEN AND LOOK LIKE SHIT -/atom/proc/SpinAnimation(speed = 10, loops = -1) - var/matrix/m120 = matrix(transform) - m120.Turn(120) - var/matrix/m240 = matrix(transform) - m240.Turn(240) - var/matrix/m360 = matrix(transform) - speed /= 3 //Gives us 3 equal time segments for our three turns. - //Why not one turn? Because byond will see that the start and finish are the same place and do nothing - //Why not two turns? Because byond will do a flip instead of a turn - animate(src, transform = m120, time = speed, loops) - animate(transform = m240, time = speed) - animate(transform = m360, time = speed) \ No newline at end of file +/atom/proc/SpinAnimation(speed = 10, loops = -1, clockwise = 1, segments = 3) + if(!segments) + return + var/segment = 360/segments + if(!clockwise) + segment = -segment + var/list/matrices = list() + for(var/i in 1 to segments-1) + var/matrix/M = matrix(transform) + M.Turn(segment*i) + matrices += M + var/matrix/last = matrix(transform) + matrices += last + + speed /= segments + + animate(src, transform = matrices[1], time = speed, loops) + for(var/i in 2 to segments) //2 because 1 is covered above + animate(transform = matrices[i], time = speed) + //doesn't have an object argument because this is "Stacking" with the animate call above + //3 billion% intentional diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm index 7a7213b12bf..e37ca4bfb52 100644 --- a/code/__HELPERS/unsorted.dm +++ b/code/__HELPERS/unsorted.dm @@ -1665,40 +1665,63 @@ var/mob/dview/dview_mob = new return 1 return 0 -//ORBITS -/atom/movable/var/atom/orbiting = null //This is just so you can stop an orbit. //orbit() can run without it (swap orbiting for A) //but then you can never stop it and that's just silly. +/atom/movable/var/atom/orbiting = null -/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = 1, angle_increment = 15) +//A: atom to orbit +//radius: range to orbit at, radius of the circle formed by orbiting +//clockwise: whether you orbit clockwise or anti clockwise +//rotation_speed: how fast to rotate +//rotation_segments: the resolution of the orbit circle, less = a more block circle, this can be used to produce hexagons (6 segments) triangles (3 segments), and so on, 36 is the best default. +//pre_rotation: Chooses to rotate src 90 degress towards the orbit dir (clockwise/anticlockwise), useful for things to go "head first" like ghosts +//lockinorbit: Forces src to always be on A's turf, otherwise the orbit cancels when src gets too far away (eg: ghosts) + +/atom/movable/proc/orbit(atom/A, radius = 10, clockwise = FALSE, rotation_speed = 20, rotation_segments = 36, pre_rotation = TRUE, lockinorbit = FALSE) if(!istype(A)) return + + if(orbiting) + stop_orbit() + orbiting = A - var/angle = 0 var/matrix/initial_transform = matrix(transform) - spawn - while(orbiting) - loc = orbiting.loc + var/lastloc = loc - angle += angle_increment + //Head first! + if(pre_rotation) + var/matrix/M = matrix(transform) + var/pre_rot = 90 + if(!clockwise) + pre_rot = -90 + M.Turn(pre_rot) + transform = M - var/matrix/shift = matrix(initial_transform) - shift.Translate(radius,0) - if(clockwise) - shift.Turn(angle) - else - shift.Turn(-angle) - animate(src,transform = shift,2) + var/matrix/shift = matrix(transform) + shift.Translate(0,radius) + transform = shift + + SpinAnimation(rotation_speed, -1, clockwise, rotation_segments) + + //we stack the orbits up client side, so we can assign this back to normal server side without it breaking the orbit + transform = initial_transform + while(orbiting && orbiting == A && A.loc) + var/targetloc = get_turf(A) + if(!lockinorbit && loc != lastloc && loc != targetloc) + break + loc = targetloc + lastloc = loc + sleep(0.6) + + if (orbiting == A) //make sure we haven't started orbiting something else. + orbiting = null + SpinAnimation(0,0) - sleep(0.6) //the effect breaks above 0.6 delay - animate(src,transform = initial_transform,2) /atom/movable/proc/stop_orbit() - if(orbiting) - loc = get_turf(orbiting) - orbiting = null + orbiting = null //Centers an image. //Requires: diff --git a/code/datums/spells/lightning.dm b/code/datums/spells/lightning.dm index af331645970..37804317b69 100644 --- a/code/datums/spells/lightning.dm +++ b/code/datums/spells/lightning.dm @@ -64,14 +64,14 @@ obj/effect/proc_holder/spell/targeted/lightning/proc/Reset(mob/user = usr) Reset(user) return - user.Beam(target,icon_state="lightning",icon='icons/effects/effects.dmi',time=5) + user.Beam(target,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) var/energy = min(world.time - start_time,100) Bolt(user,target,max(15,energy/2),5,user) //5 bounces for energy/2 burn Reset(user) /obj/effect/proc_holder/spell/targeted/lightning/proc/Bolt(mob/origin, mob/target, bolt_energy, bounces, mob/user = usr) - origin.Beam(target,icon_state="lightning",icon='icons/effects/effects.dmi',time=5) + origin.Beam(target,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) var/mob/living/carbon/current = target if(bounces < 1) current.electrocute_act(bolt_energy,"Lightning Bolt", def_zone = "chest") diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index a46f6bac8a5..ec96ec8be31 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -37,7 +37,6 @@ armor = list(melee = 30, bullet = 10, laser = 5,energy = 5, bomb = 0, bio = 0, rad = 0) cold_protection = HEAD min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT - siemens_coefficient = 0 /obj/item/clothing/head/culthood/alt @@ -57,7 +56,6 @@ allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0) flags_inv = HIDEJUMPSUIT - siemens_coefficient = 0 /obj/item/clothing/head/magus name = "magus helm" @@ -67,7 +65,6 @@ flags_inv = HIDEFACE flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR armor = list(melee = 30, bullet = 30, laser = 30,energy = 20, bomb = 0, bio = 0, rad = 0) - siemens_coefficient = 0 /obj/item/clothing/suit/magusred name = "magus robes" @@ -78,8 +75,6 @@ allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade) armor = list(melee = 50, bullet = 30, laser = 50,energy = 20, bomb = 25, bio = 10, rad = 0) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - siemens_coefficient = 0 - /obj/item/clothing/head/helmet/space/cult name = "cult helmet" @@ -87,7 +82,6 @@ icon_state = "cult_helmet" item_state = "cult_helmet" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 /obj/item/clothing/suit/space/cult name = "cult armour" @@ -97,5 +91,4 @@ w_class = 3 allowed = list(/obj/item/weapon/tome,/obj/item/weapon/melee/cultblade,/obj/item/weapon/tank) slowdown = 1 - armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0 + armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) \ No newline at end of file diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 67ea1916828..ba75e86b005 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -385,6 +385,21 @@ to destroy them and players will be able to make replacements. /obj/item/weapon/stock_parts/matter_bin = 1, /obj/item/weapon/stock_parts/manipulator = 1) +/obj/item/weapon/circuitboard/tesla_coil + name = "circuit board (Tesla Coil)" + build_path = /obj/machinery/power/tesla_coil + board_type = "machine" + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 1) + +/obj/item/weapon/circuitboard/grounding_rod + name = "circuit board (Grounding Rod)" + build_path = /obj/machinery/power/grounding_rod + board_type = "machine" + origin_tech = "programming=1" + req_components = list( + /obj/item/weapon/stock_parts/capacitor = 1) /obj/item/weapon/circuitboard/processor name = "circuit board (Food processor)" diff --git a/code/game/objects/items/weapons/legcuffs.dm b/code/game/objects/items/weapons/legcuffs.dm index d7c1e63c3ee..240decbfdcb 100644 --- a/code/game/objects/items/weapons/legcuffs.dm +++ b/code/game/objects/items/weapons/legcuffs.dm @@ -111,7 +111,6 @@ gender = NEUTER icon = 'icons/obj/weapons.dmi' icon_state = "bolas" - siemens_coefficient = 1 slot_flags = SLOT_BELT throwforce = 2 w_class = 2 diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 56aecc16a94..921fffcd441 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -16,6 +16,9 @@ var/Mtoollink = 0 // variable to decide if an object should show the multitool menu linking menu, not all objects use it + + var/being_shocked = 0 + // What reagents should be logged when transferred TO this object? // Reagent ID => friendly name var/list/reagents_to_log=list() @@ -258,3 +261,10 @@ a { /obj/proc/container_resist(var/mob/living) return + +/obj/proc/tesla_act(var/power) + being_shocked = 1 + var/power_bounced = power * 0.76923 + tesla_zap(src, 5, power_bounced) + spawn(10) + being_shocked = 0 diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index ec84df9474c..362d60e8dd9 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -316,7 +316,6 @@ BLIND // can't see anything desc = "Comfortable-looking shoes." gender = PLURAL //Carn: for grammarically correct text-parsing var/chained = 0 - siemens_coefficient = 0.9 body_parts_covered = FEET slot_flags = SLOT_FEET @@ -343,7 +342,6 @@ BLIND // can't see anything armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) slot_flags = SLOT_OCLOTHING var/blood_overlay_type = "suit" - siemens_coefficient = 0.9 //Spacesuit //Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together. @@ -361,7 +359,6 @@ BLIND // can't see anything min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - siemens_coefficient = 0.9 species_restricted = list("exclude","Diona","Vox","Wryn") flash_protect = 2 strip_delay = 50 @@ -387,7 +384,6 @@ BLIND // can't see anything max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT strip_delay = 80 put_on_delay = 80 - siemens_coefficient = 0.9 species_restricted = list("exclude","Diona","Vox","Wryn") //Under clothing diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index f6526efb1fa..3a3558d2065 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -16,7 +16,6 @@ name = "cyborg gloves" icon_state = "black" item_state = "r_hands" - siemens_coefficient = 1.0 /obj/item/clothing/gloves/combat desc = "These tactical gloves are somewhat fire and impact resistant." diff --git a/code/modules/clothing/head/hardhat.dm b/code/modules/clothing/head/hardhat.dm index 27afdc3ac0b..062ff9e978b 100644 --- a/code/modules/clothing/head/hardhat.dm +++ b/code/modules/clothing/head/hardhat.dm @@ -10,7 +10,6 @@ armor = list(melee = 30, bullet = 5, laser = 20,energy = 10, bomb = 20, bio = 10, rad = 20) flags_inv = 0 action_button_name = "Toggle Helmet Light" - siemens_coefficient = 0.9 attack_self(mob/user) if(!isturf(user.loc)) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 9ca423096de..062aa169075 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -11,7 +11,6 @@ heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT strip_delay = 60 - siemens_coefficient = 0.7 species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/helmet.dmi' @@ -65,7 +64,6 @@ flags = HEADCOVERSEYES | HEADCOVERSMOUTH | HEADBANGPROTECT armor = list(melee = 82, bullet = 15, laser = 5,energy = 5, bomb = 5, bio = 2, rad = 0) flags_inv = HIDEEARS - siemens_coefficient = 0.7 strip_delay = 80 /obj/item/clothing/head/helmet/swat @@ -80,7 +78,6 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - siemens_coefficient = 0.5 strip_delay = 80 species_fit = list("Vox") sprite_sheets = list( @@ -104,7 +101,6 @@ min_cold_protection_temperature = SPACE_HELM_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT - siemens_coefficient = 1 strip_delay = 80 /obj/item/clothing/head/helmet/roman @@ -129,7 +125,6 @@ flags = HEADCOVERSEYES | BLOCKHAIR item_state = "gladiator" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES - siemens_coefficient = 1 obj/item/clothing/head/helmet/redtaghelm name = "red laser tag helmet" diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 813402af163..8fe35a95901 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -6,7 +6,6 @@ icon_state = "chef" item_state = "chef" desc = "The commander in chef's head wear." - siemens_coefficient = 0.9 strip_delay = 10 put_on_delay = 10 @@ -16,7 +15,6 @@ icon_state = "captain" desc = "It's good being the king." item_state = "caphat" - siemens_coefficient = 0.9 armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) strip_delay = 60 @@ -31,7 +29,6 @@ name = "head of personnel's cap" icon_state = "hopcap" desc = "The symbol of true bureaucratic micromanagement." - siemens_coefficient = 0.9 armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) //Nanotrasen Representative @@ -47,7 +44,6 @@ desc = "It's hood that covers the head. It keeps you warm during the space winters." icon_state = "chaplain_hood" flags = HEADCOVERSEYES | BLOCKHAIR - siemens_coefficient = 0.9 //Chaplain /obj/item/clothing/head/nun_hood @@ -55,7 +51,6 @@ desc = "Maximum piety in this star system." icon_state = "nun_hood" flags = HEADCOVERSEYES | BLOCKHAIR - siemens_coefficient = 0.9 /obj/item/clothing/head/det_hat name = "hat" @@ -63,14 +58,12 @@ icon_state = "detective" allowed = list(/obj/item/weapon/reagent_containers/food/snacks/candy_corn, /obj/item/weapon/pen) armor = list(melee = 50, bullet = 5, laser = 25,energy = 10, bomb = 0, bio = 0, rad = 0) - siemens_coefficient = 0.9 //Mime /obj/item/clothing/head/beret name = "beret" desc = "A beret, an artists favorite headwear." icon_state = "beret" - siemens_coefficient = 0.9 //Security /obj/item/clothing/head/HoS diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 4481794c53c..c739e9bde9f 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -6,7 +6,6 @@ desc = "It's good to be emperor." item_state = "centhat" armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) - siemens_coefficient = 0.9 strip_delay = 80 /obj/item/clothing/head/hairflower @@ -31,7 +30,6 @@ desc = "It's an amish looking hat." icon_state = "tophat" item_state = "that" - siemens_coefficient = 0.9 /obj/item/clothing/head/redcoat name = "redcoat's hat" @@ -48,7 +46,6 @@ desc = "These were once used by Plague doctors. They're pretty much useless." icon_state = "plaguedoctor" permeability_coefficient = 0.01 - siemens_coefficient = 0.9 /obj/item/clothing/head/hasturhood name = "hastur's hood" @@ -60,7 +57,6 @@ name = "nurse's hat" desc = "It allows quick identification of trained medical personnel." icon_state = "nursehat" - siemens_coefficient = 0.9 /obj/item/clothing/head/syndicatefake name = "black and red space-helmet replica" @@ -69,7 +65,6 @@ desc = "A plastic replica of a syndicate agent's space helmet, you'll look just like a real murderous syndicate agent in this! This is a toy, it is not made for use in space!" flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE - siemens_coefficient = 2.0 /obj/item/clothing/head/cueball name = "cueball helmet" @@ -135,7 +130,6 @@ desc = "A working man's cap." icon_state = "flat_cap" item_state = "detective" - siemens_coefficient = 0.9 /obj/item/clothing/head/pirate name = "pirate hat" @@ -203,7 +197,6 @@ icon_state = "witch" item_state = "witch" flags = BLOCKHAIR - siemens_coefficient = 2.0 /obj/item/clothing/head/chicken name = "chicken suit head" @@ -211,7 +204,6 @@ icon_state = "chickenhead" item_state = "chickensuit" flags = BLOCKHAIR - siemens_coefficient = 2.0 /obj/item/clothing/head/corgi name = "corgi suit head" @@ -219,7 +211,6 @@ icon_state = "corgihead" item_state = "chickensuit" flags = BLOCKHAIR | NODROP - siemens_coefficient = 2.0 /obj/item/clothing/head/corgi/en name = "E-N suit head" @@ -231,7 +222,6 @@ icon_state = "bearpelt" item_state = "bearpelt" flags = BLOCKHAIR - siemens_coefficient = 2.0 /obj/item/clothing/head/xenos name = "xenos helmet" @@ -240,7 +230,6 @@ desc = "A helmet made out of chitinous alien hide." flags = BLOCKHAIR flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE - siemens_coefficient = 2.0 /obj/item/clothing/head/crown name = "bananium crown" diff --git a/code/modules/clothing/head/misc_special.dm b/code/modules/clothing/head/misc_special.dm index 430b1a54341..494a1a99171 100644 --- a/code/modules/clothing/head/misc_special.dm +++ b/code/modules/clothing/head/misc_special.dm @@ -24,7 +24,6 @@ armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags_inv = (HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE) action_button_name = "flip welding helmet" - siemens_coefficient = 0.9 species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/head.dmi' @@ -172,7 +171,6 @@ desc = "A pair of kitty ears. Meow!" icon_state = "kitty" var/icon/mob - siemens_coefficient = 1.5 /obj/item/clothing/head/kitty/update_icon(var/mob/living/carbon/human/user) if(!istype(user)) return diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index a478daad09e..45a4c9f4141 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -5,7 +5,6 @@ item_state = "helmet" item_color = "cargo" var/flipped = 0 - siemens_coefficient = 0.9 dropped() src.icon_state = "[item_color]soft" diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 4225bb8d3f0..3ef10615f94 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -24,7 +24,6 @@ flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 - siemens_coefficient = 3.0 /obj/item/clothing/mask/luchador/tecnicos name = "Tecnicos Mask" diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index c58448d3b6f..0bb25729f42 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -8,7 +8,6 @@ item_state = "gas_alt" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - siemens_coefficient = 0.9 species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi' @@ -68,7 +67,6 @@ item_state = "bane_mask" gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 - siemens_coefficient = 0.9 //Plague Dr suit can be found in clothing/suits/bio.dm @@ -84,14 +82,12 @@ name = "\improper SWAT mask" desc = "A close-fitting tactical mask that can be connected to an air supply." icon_state = "swat" - siemens_coefficient = 0.7 species_fit = list("Vox") /obj/item/clothing/mask/gas/syndicate name = "syndicate mask" desc = "A close-fitting tactical mask that can be connected to an air supply." icon_state = "swat" - siemens_coefficient = 0.7 strip_delay = 60 species_fit = list("Vox") @@ -165,7 +161,6 @@ name = "Death Commando Mask" icon_state = "death_commando_mask" item_state = "death_commando_mask" - siemens_coefficient = 0.2 species_fit = list("Vox") /obj/item/clothing/mask/gas/cyborg diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 63cc023af5d..f66a836beea 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -94,7 +94,6 @@ flags = MASKCOVERSMOUTH w_class = 2 gas_transfer_coefficient = 0.90 - siemens_coefficient = 0 /obj/item/clothing/mask/pig name = "pig mask" @@ -104,7 +103,6 @@ flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 - siemens_coefficient = 0.9 /obj/item/clothing/mask/horsehead @@ -115,7 +113,6 @@ flags = BLOCKHAIR flags_inv = HIDEFACE w_class = 2 - siemens_coefficient = 0.9 var/voicechange = 0 var/temporaryname = " the Horse" var/originalname = "" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index 418db118b82..46db0d5e139 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -9,7 +9,6 @@ flags = NOSLIP origin_tech = "syndicate=3" var/list/clothing_choices = list() - siemens_coefficient = 0.8 species_restricted = null silence_steps = 1 @@ -25,7 +24,6 @@ item_state = "jackboots" armor = list(melee = 50, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 10, rad = 0) species_restricted = null //Syndicate tech means even Tajarans can kick ass with these - siemens_coefficient = 0.6 strip_delay = 70 /obj/item/clothing/shoes/combat/swat //overpowered boots for death squads @@ -87,7 +85,6 @@ icon_state = "jackboots" item_state = "jackboots" item_color = "hosred" - siemens_coefficient = 0.7 strip_delay = 50 put_on_delay = 50 var/footstep = 1 @@ -117,7 +114,6 @@ icon_state = "cult" item_state = "cult" item_color = "cult" - siemens_coefficient = 0.7 cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT @@ -197,4 +193,4 @@ reqs = list(/obj/item/stack/tape_roll = 10) tools = list(/obj/item/weapon/wirecutters) - time = 40 + time = 40 diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index f44e426f368..e54327b0e50 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -86,7 +86,6 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) slowdown = 2 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.6 heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT species_restricted = list("Vox", "Vox Armalis") @@ -97,7 +96,6 @@ /obj/item/clothing/head/helmet/space/vox armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.6 flags = HEADCOVERSEYES|STOPSPRESSUREDMAGE species_restricted = list("Vox","Vox Armalis") sprite_sheets = list( diff --git a/code/modules/clothing/spacesuits/ert.dm b/code/modules/clothing/spacesuits/ert.dm index a1cc0086358..06d2b8a87ac 100644 --- a/code/modules/clothing/spacesuits/ert.dm +++ b/code/modules/clothing/spacesuits/ert.dm @@ -5,7 +5,6 @@ icon_state = "rig0-ert_commander" item_state = "helm-command" armor = list(melee = 50, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 100, rad = 60) - siemens_coefficient = 0.6 rig_restrict_helmet = 0 // ERT helmets can be taken on and off at will. var/obj/machinery/camera/camera strip_delay = 130 @@ -37,7 +36,6 @@ /obj/item/weapon/screwdriver, /obj/item/weapon/weldingtool, /obj/item/weapon/wirecutters, /obj/item/weapon/wrench, /obj/item/device/multitool, \ /obj/item/device/radio, /obj/item/device/analyzer, /obj/item/weapon/gun/energy/laser, /obj/item/weapon/gun/energy/pulse_rifle, \ /obj/item/weapon/gun/energy/advtaser, /obj/item/weapon/melee/baton, /obj/item/weapon/gun/energy/gun) - siemens_coefficient = 0.6 strip_delay = 130 //Commander diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 0dac0c6ef6d..dcd7114196a 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -27,7 +27,6 @@ allowed = list(/obj/item/weapon/tank, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /obj/item/weapon/gun/projectile, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs) slowdown = 1 armor = list(melee = 65, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50) - siemens_coefficient = 0.7 species_restricted = list("exclude", "Diona", "Wryn") species_fit = list("Vox") sprite_sheets = list( @@ -42,7 +41,6 @@ icon_state = "deathsquad" item_state = "deathsquad" armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) - siemens_coefficient = 0.2 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT unacidable = 1 vision_flags = SEE_MOBS @@ -67,7 +65,6 @@ desc = "An armored beret commonly used by special operations officers." icon_state = "beret_badge" armor = list(melee = 65, bullet = 55, laser = 35,energy = 20, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.9 /obj/item/clothing/suit/space/deathsquad/officer name = "officer jacket" @@ -104,7 +101,6 @@ item_state = "pirate" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) flags = HEADCOVERSEYES | BLOCKHAIR | STOPSPRESSUREDMAGE - siemens_coefficient = 0.9 strip_delay = 40 put_on_delay = 20 @@ -117,7 +113,6 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) slowdown = 0 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.9 strip_delay = 40 put_on_delay = 20 diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm index e86246c6930..1dfe1b68fc5 100644 --- a/code/modules/clothing/spacesuits/plasmamen.dm +++ b/code/modules/clothing/spacesuits/plasmamen.dm @@ -298,11 +298,9 @@ icon_state = "plasmaman_Nukeops" armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs) - siemens_coefficient = 0.6 /obj/item/clothing/head/helmet/space/eva/plasmaman/nuclear name = "blood red plasmaman helmet" icon_state = "plasmaman_Nukeops_helmet0" base_state = "plasmaman_Nukeops_helmet" armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) - siemens_coefficient = 0.6 diff --git a/code/modules/clothing/spacesuits/rig.dm b/code/modules/clothing/spacesuits/rig.dm index a1201b389cd..c96702b54b7 100644 --- a/code/modules/clothing/spacesuits/rig.dm +++ b/code/modules/clothing/spacesuits/rig.dm @@ -54,6 +54,7 @@ slowdown = 2 armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/t_scanner, /obj/item/weapon/rcd) + siemens_coefficient = 0 species_restricted = list("exclude","Diona","Wryn") sprite_sheets = list( @@ -372,7 +373,6 @@ item_color = "wiz" unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60) - siemens_coefficient = 0.7 heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT unacidable = 1 @@ -391,7 +391,6 @@ heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT unacidable = 1 - siemens_coefficient = 0.7 sprite_sheets = null //Medical Rig @@ -423,7 +422,6 @@ item_state = "sec_helm" item_color = "sec" armor = list(melee = 30, bullet = 15, laser = 30,energy = 10, bomb = 10, bio = 100, rad = 50) - siemens_coefficient = 0.7 /obj/item/clothing/suit/space/rig/security icon_state = "rig-sec" @@ -432,7 +430,6 @@ item_state = "sec_hardsuit" armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/weapon/melee/baton,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/restraints/handcuffs) - siemens_coefficient = 0.7 //Atmospherics Rig (BS12) diff --git a/code/modules/clothing/spacesuits/syndi.dm b/code/modules/clothing/spacesuits/syndi.dm index 1ff4aff4ef6..4017cb3f1f8 100644 --- a/code/modules/clothing/spacesuits/syndi.dm +++ b/code/modules/clothing/spacesuits/syndi.dm @@ -6,7 +6,6 @@ item_state = "syndicate" desc = "Has a tag: Totally not property of an enemy corporation, honest." armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.8 /obj/item/clothing/suit/space/syndicate name = "red space suit" @@ -17,7 +16,6 @@ allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank) slowdown = 1 armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.8 //Green syndicate space suit @@ -78,7 +76,6 @@ obj/item/clothing/head/helmet/space/syndicate/black/strike name = "Syndicate Strike Team commando helmet" desc = "A heavily armored black helmet that is only given to high-ranking Syndicate operatives." armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) //Matches DS gear. - siemens_coefficient = 0.2 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT unacidable = 1 @@ -91,7 +88,6 @@ obj/item/clothing/suit/space/syndicate/black/strike name = "Syndicate Strike Team commando space suit" desc = "A heavily armored, black space suit that is only given to high-ranking Syndicate operatives." armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) //Matches DS gear. - siemens_coefficient = 0.2 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT unacidable = 1 @@ -153,7 +149,6 @@ obj/item/clothing/head/helmet/space/syndicate/black/red/strike name = "Syndicate Strike Team leader helmet" desc = "A heavily armored, black and red space helmet that is only given to elite Syndicate operatives, it looks particularly menacing." armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) //Matches DS gear. - siemens_coefficient = 0.2 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT unacidable = 1 @@ -166,7 +161,6 @@ obj/item/clothing/suit/space/syndicate/black/red/strike name = "Syndicate Strike Team leader space suit" desc = "A heavily armored, black and red space suit that is only given to elite Syndicate operatives, it looks particularly menacing." armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100) //Matches DS gear. - siemens_coefficient = 0.2 max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT unacidable = 1 diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 6064837f7dc..ccce69fe661 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -6,7 +6,6 @@ min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT heat_protection = UPPER_TORSO|LOWER_TORSO max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT - siemens_coefficient = 0.6 strip_delay = 60 put_on_delay = 40 @@ -63,7 +62,6 @@ flags_inv = HIDEJUMPSUIT cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS - siemens_coefficient = 0.6 strip_delay = 80 /obj/item/clothing/suit/armor/hos/alt @@ -96,7 +94,6 @@ icon_state = "jensencoat" item_state = "jensencoat" flags_inv = 0 - siemens_coefficient = 0.6 /obj/item/clothing/suit/armor/vest/warden name = "Warden's armored jacket" @@ -132,7 +129,6 @@ slowdown = 1 armor = list(melee = 80, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0) flags_inv = HIDEJUMPSUIT - siemens_coefficient = 0.5 strip_delay = 80 put_on_delay = 60 @@ -143,7 +139,6 @@ item_state = "armor" blood_overlay_type = "armor" armor = list(melee = 25, bullet = 80, laser = 10, energy = 10, bomb = 40, bio = 0, rad = 0) - siemens_coefficient = 0.7 strip_delay = 70 put_on_delay = 50 @@ -155,7 +150,6 @@ blood_overlay_type = "armor" var/hit_reflect_chance = 40 armor = list(melee = 10, bullet = 10, laser = 80, energy = 50, bomb = 0, bio = 0, rad = 0) - siemens_coefficient = 0 /obj/item/clothing/suit/armor/laserproof/IsReflect(var/def_zone) if(!(def_zone in list("chest", "groin"))) //If not shot where ablative is covering you, you don't get the reflection bonus! @@ -225,7 +219,6 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS min_cold_protection_temperature = SPACE_SUIT_MIN_TEMP_PROTECT - siemens_coefficient = 0 /obj/item/clothing/suit/armor/heavy name = "heavy armor" @@ -239,7 +232,6 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS slowdown = 3 flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - siemens_coefficient = 0 /obj/item/clothing/suit/armor/tdome armor = list(melee = 65, bullet = 30, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) @@ -254,14 +246,12 @@ desc = "Armor worn by the red Thunderodome team" icon_state = "tdred" item_state = "tdred" - siemens_coefficient = 1 /obj/item/clothing/suit/armor/tdome/green name = "Green Thunderdome Armor" desc = "Armor worn by the green Thunderodome team" icon_state = "tdgreen" item_state = "tdgreen" - siemens_coefficient = 1 //Non-hardsuit ERT armor. /obj/item/clothing/suit/armor/vest/ert diff --git a/code/modules/clothing/suits/bio.dm b/code/modules/clothing/suits/bio.dm index 9c2702a26ed..3879cc5692c 100644 --- a/code/modules/clothing/suits/bio.dm +++ b/code/modules/clothing/suits/bio.dm @@ -7,7 +7,6 @@ flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR | THICKMATERIAL armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES - siemens_coefficient = 0.9 /obj/item/clothing/suit/bio_suit name = "bio suit" @@ -23,7 +22,6 @@ allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL - siemens_coefficient = 0.9 strip_delay = 70 put_on_delay = 70 diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 9ee07435000..52d3065241d 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -16,7 +16,6 @@ blood_overlay_type = "armor" body_parts_covered = UPPER_TORSO|LOWER_TORSO allowed = list (/obj/item/weapon/gun/energy/laser/bluetag) - siemens_coefficient = 3.0 /obj/item/clothing/suit/redtag name = "red laser tag armour" @@ -26,7 +25,6 @@ blood_overlay_type = "armor" body_parts_covered = UPPER_TORSO|LOWER_TORSO allowed = list (/obj/item/weapon/gun/energy/laser/redtag) - siemens_coefficient = 3.0 /* * Costume @@ -146,7 +144,6 @@ item_state = "chickensuit" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET flags_inv = HIDESHOES|HIDEJUMPSUIT - siemens_coefficient = 2.0 /obj/item/clothing/suit/corgisuit name = "Corgi Suit" @@ -155,7 +152,6 @@ item_state = "chickensuit" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET flags_inv = HIDESHOES|HIDEJUMPSUIT - siemens_coefficient = 2.0 flags = NODROP /obj/item/clothing/suit/corgisuit/en @@ -184,7 +180,6 @@ item_state = "monkeysuit" body_parts_covered = UPPER_TORSO|ARMS|LOWER_TORSO|LEGS|FEET|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT - siemens_coefficient = 2.0 /obj/item/clothing/suit/holidaypriest @@ -336,35 +331,30 @@ desc = "A rather skimpy pink swimsuit." icon_state = "stripper_p_under" item_color = "stripper_p" - siemens_coefficient = 1 /obj/item/clothing/under/stripper/stripper_green name = "green swimsuit" desc = "A rather skimpy green swimsuit." icon_state = "stripper_g_under" item_color = "stripper_g" - siemens_coefficient = 1 /obj/item/clothing/suit/stripper/stripper_pink name = "pink skimpy dress" desc = "A rather skimpy pink dress." icon_state = "stripper_p_over" item_state = "stripper_p" - siemens_coefficient = 1 /obj/item/clothing/suit/stripper/stripper_green name = "green skimpy dress" desc = "A rather skimpy green dress." icon_state = "stripper_g_over" item_state = "stripper_g" - siemens_coefficient = 1 /obj/item/clothing/under/stripper/mankini name = "the mankini" desc = "No honest man would wear this abomination" icon_state = "mankini" item_color = "mankini" - siemens_coefficient = 1 /obj/item/clothing/suit/jacket/miljacket name = "military jacket" @@ -381,45 +371,39 @@ body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|ARMS|HANDS flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT flags = ONESIZEFITSALL - siemens_coefficient = 2.0 + //swimsuit /obj/item/clothing/under/swimsuit/ - siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/black name = "black swimsuit" desc = "An oldfashioned black swimsuit." icon_state = "swim_black" item_color = "swim_black" - siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/blue name = "blue swimsuit" desc = "An oldfashioned blue swimsuit." icon_state = "swim_blue" item_color = "swim_blue" - siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/purple name = "purple swimsuit" desc = "An oldfashioned purple swimsuit." icon_state = "swim_purp" item_color = "swim_purp" - siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/green name = "green swimsuit" desc = "An oldfashioned green swimsuit." icon_state = "swim_green" item_color = "swim_green" - siemens_coefficient = 1 /obj/item/clothing/under/swimsuit/red name = "red swimsuit" desc = "An oldfashioned red swimsuit." icon_state = "swim_red" item_color = "swim_red" - siemens_coefficient = 1 /obj/item/clothing/suit/storage/mercy_hoodie name = "Mercy Robe" @@ -434,7 +418,6 @@ allowed = list(/obj/item/weapon/tank/emergency_oxygen,/obj/item/weapon/pen,/obj/item/device/flashlight/pen) armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL - siemens_coefficient = 0.9 /obj/item/clothing/head/mercy_hood name = "Mercy Hood" @@ -445,7 +428,6 @@ flags = HEADCOVERSEYES | HEADCOVERSMOUTH | BLOCKHAIR armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20) flags_inv = HIDEMASK|HIDEEARS|HIDEEYES - siemens_coefficient = 0.9 /obj/item/clothing/suit/jacket name = "bomber jacket" diff --git a/code/modules/clothing/suits/utility.dm b/code/modules/clothing/suits/utility.dm index 6c7d7b2a169..030d8f3773c 100644 --- a/code/modules/clothing/suits/utility.dm +++ b/code/modules/clothing/suits/utility.dm @@ -63,7 +63,6 @@ min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT heat_protection = HEAD max_heat_protection_temperature = HELMET_MAX_TEMP_PROTECT - siemens_coefficient = 0 strip_delay = 70 put_on_delay = 70 @@ -84,7 +83,6 @@ max_heat_protection_temperature = ARMOR_MAX_TEMP_PROTECT cold_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT - siemens_coefficient = 0 strip_delay = 70 put_on_delay = 70 diff --git a/code/modules/clothing/suits/wiz_robe.dm b/code/modules/clothing/suits/wiz_robe.dm index 70efe2691b4..8b204b399a6 100644 --- a/code/modules/clothing/suits/wiz_robe.dm +++ b/code/modules/clothing/suits/wiz_robe.dm @@ -7,7 +7,6 @@ armor = list(melee = 30, bullet = 20, laser = 20, energy = 20, bomb = 20, bio = 20, rad = 20) unacidable = 1 //Not given any special protective value since the magic robes are full-body protection --NEO - siemens_coefficient = 0.8 strip_delay = 50 put_on_delay = 50 @@ -15,14 +14,12 @@ name = "red wizard hat" desc = "Strange-looking, red, hat-wear that most certainly belongs to a real magic user." icon_state = "redwizard" - siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/clown name = "purple wizard hat" desc = "Strange-looking purple hat-wear that most certainly belongs to a real magic user." icon_state = "wizhatclown" item_state = "wizhatclown" // cheating - siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/fake name = "wizard hat" @@ -36,20 +33,17 @@ name = "Witch Hat" desc = "Strange-looking hat-wear, makes you want to cast fireballs." icon_state = "marisa" - siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/magus name = "Magus Helm" desc = "A mysterious helmet that hums with an unearthly power" icon_state = "magus" item_state = "magus" - siemens_coefficient = 0.8 /obj/item/clothing/head/wizard/amp name = "psychic amplifier" desc = "A crown-of-thorns psychic amplifier. Kind of looks like a tiara having sex with an industrial robot." icon_state = "amp" - siemens_coefficient = 0.8 /obj/item/clothing/suit/wizrobe name = "wizard robe" @@ -63,7 +57,6 @@ allowed = list(/obj/item/weapon/teleportation_scroll) flags_inv = HIDEJUMPSUIT unacidable = 1 - siemens_coefficient = 0.8 strip_delay = 50 put_on_delay = 50 @@ -113,8 +106,6 @@ armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) unacidable = 0 - siemens_coefficient = 1.0 - /obj/item/clothing/head/wizard/marisa/fake name = "Witch Hat" desc = "Strange-looking hat-wear, makes you want to cast fireballs." @@ -124,8 +115,6 @@ armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) unacidable = 0 - siemens_coefficient = 1.0 - /obj/item/clothing/suit/wizrobe/marisa/fake name = "Witch Robe" desc = "Magic is all about the spell power, ZE!" @@ -134,6 +123,4 @@ gas_transfer_coefficient = 1 permeability_coefficient = 1 armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) - unacidable = 0 - siemens_coefficient = 1.0 - + unacidable = 0 \ No newline at end of file diff --git a/code/modules/clothing/under/chameleon.dm b/code/modules/clothing/under/chameleon.dm index 14635fb2946..978ed6374a4 100644 --- a/code/modules/clothing/under/chameleon.dm +++ b/code/modules/clothing/under/chameleon.dm @@ -6,7 +6,6 @@ item_color = "black" desc = "It's a plain jumpsuit. It seems to have a small dial on the wrist." origin_tech = "syndicate=3" - siemens_coefficient = 0.8 var/list/clothing_choices = list() New() diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index a4b582fcd09..d40952e2030 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -17,7 +17,6 @@ item_color = "warden" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = ONESIZEFITSALL - siemens_coefficient = 0.9 strip_delay = 50 /obj/item/clothing/under/rank/security @@ -28,7 +27,6 @@ item_color = "secred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = ONESIZEFITSALL - siemens_coefficient = 0.9 strip_delay = 50 /obj/item/clothing/under/rank/dispatch @@ -39,7 +37,6 @@ item_color = "dispatch" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = ONESIZEFITSALL - siemens_coefficient = 0.9 /obj/item/clothing/under/rank/security2 name = "security officer's uniform" @@ -49,8 +46,6 @@ item_color = "redshirt2" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = ONESIZEFITSALL - siemens_coefficient = 0.9 - /obj/item/clothing/under/rank/security/corp icon_state = "sec_corporate" item_state = "sec_corporate" @@ -72,7 +67,6 @@ item_color = "detective" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = ONESIZEFITSALL - siemens_coefficient = 0.9 strip_delay = 50 species_fit = list("Vox") sprite_sheets = list( @@ -90,7 +84,6 @@ item_color = "hosred" armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) flags = ONESIZEFITSALL - siemens_coefficient = 0.8 strip_delay = 60 /obj/item/clothing/under/rank/head_of_security/corp @@ -105,7 +98,6 @@ icon_state = "jensen" item_state = "jensen" item_color = "jensen" - siemens_coefficient = 0.6 flags = ONESIZEFITSALL //Paradise Station diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 8e5eafdceb1..cfe317aaa3b 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -6,7 +6,6 @@ item_color = "syndicate" has_sensor = 0 armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) - siemens_coefficient = 0.9 /obj/item/clothing/under/syndicate/combat name = "combat turtleneck" @@ -16,7 +15,4 @@ desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." icon_state = "tactifool" item_state = "bl_suit" - item_color = "tactifool" - siemens_coefficient = 1 - - + item_color = "tactifool" \ No newline at end of file diff --git a/code/modules/customitems/item_defines.dm b/code/modules/customitems/item_defines.dm index 1d170d43ba8..1fc98d4bc60 100644 --- a/code/modules/customitems/item_defines.dm +++ b/code/modules/customitems/item_defines.dm @@ -191,7 +191,6 @@ has_sensor = 1 // Jumpsuit has no sensor by default displays_id = 0 // Purely astetic, the ID does not show up on the player sprite when equipped. Examining still reveals it. armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) // Standard Security jumpsuit stats - siemens_coefficient = 0 /obj/item/clothing/under/fluff/kharshai // Kharshai: Athena Castile name = "Castile formal outfit" diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 3179f32d3f7..0d4985009cb 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -114,12 +114,13 @@ mob/living return return -/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null,var/override = 0) +/mob/living/carbon/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null,var/override = 0, tesla_shock = 0) if(status_flags & GODMODE) //godmode return 0 if(NO_SHOCK in mutations) //shockproof return 0 + shock_damage *= siemens_coeff if(shock_damage<1 && !override) return 0 @@ -147,11 +148,13 @@ mob/living jitteriness += 1000 //High numbers for violent convulsions do_jitter_animation(jitteriness) stuttering += 2 - Stun(2) + if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) + Stun(2) spawn(20) - jitteriness -= 990 //Still jittery, but vastly less - Stun(3) - Weaken(3) + jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less + if(!tesla_shock || (tesla_shock && siemens_coeff > 0.5)) + Stun(3) + Weaken(3) if (shock_damage > 200) src.visible_message( "\red [src] was arc flashed by the [source]!", \ @@ -166,6 +169,7 @@ mob/living return shock_damage + /mob/living/carbon/proc/swap_hand() var/obj/item/item_in_hand = src.get_active_hand() if(item_in_hand) //this segment checks if the item in your hand is twohanded. diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 38c7bb154f9..01325c240eb 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -742,7 +742,7 @@ //Removed the horrible safety parameter. It was only being used by ninja code anyways. //Now checks siemens_coefficient of the affected area by default -/mob/living/carbon/human/electrocute_act(var/shock_damage, var/obj/source, var/base_siemens_coeff = 1.0, var/def_zone = null,var/override = 0) +/mob/living/carbon/human/electrocute_act(var/shock_damage, var/obj/source, var/base_siemens_coeff = 1.0, var/def_zone = null,var/override = 0, tesla_shock = 0) if(status_flags & GODMODE) //godmode return 0 @@ -755,7 +755,19 @@ var/obj/item/organ/external/affected_organ = get_organ(check_zone(def_zone)) var/siemens_coeff = base_siemens_coeff * get_siemens_coefficient_organ(affected_organ) - return ..(shock_damage, source, siemens_coeff, def_zone,override) + if(tesla_shock) + var/total_coeff = 1 + if(gloves) + var/obj/item/clothing/gloves/G = gloves + if(G.siemens_coefficient <= 0) + total_coeff -= 0.5 + if(wear_suit) + var/obj/item/clothing/suit/S = wear_suit + if(S.siemens_coefficient <= 0) + total_coeff -= 0.95 + siemens_coeff = total_coeff + + return ..(shock_damage, source, siemens_coeff, def_zone, override, tesla_shock) /mob/living/carbon/human/Topic(href, href_list) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 809183a7a30..a62229d9c5b 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -65,7 +65,7 @@ apply_damage(P.damage, P.damage_type, def_zone, armor) return P.on_hit(src, armor, def_zone) -/mob/living/proc/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null) +/mob/living/proc/electrocute_act(var/shock_damage, var/obj/source, var/siemens_coeff = 1.0, var/def_zone = null, tesla_shock = 0) return 0 //only carbon liveforms have this proc /mob/living/emp_act(severity) diff --git a/code/modules/ninja/suit/head.dm b/code/modules/ninja/suit/head.dm index c3e921a97d9..6ed302feaad 100644 --- a/code/modules/ninja/suit/head.dm +++ b/code/modules/ninja/suit/head.dm @@ -7,5 +7,4 @@ item_state = "s-ninja_hood" armor = list(melee = 60, bullet = 60, laser = 45, energy = 15, bomb = 30, bio = 30, rad = 25) unacidable = 1 - siemens_coefficient = 0.2 blockTracking = 1 \ No newline at end of file diff --git a/code/modules/ninja/suit/mask.dm b/code/modules/ninja/suit/mask.dm index af6727b2666..4db00b78091 100644 --- a/code/modules/ninja/suit/mask.dm +++ b/code/modules/ninja/suit/mask.dm @@ -11,5 +11,4 @@ Contents: desc = "A close-fitting mask that acts both as an air filter and a post-modern fashion statement." icon_state = "s-ninja(norm)" item_state = "s-ninja_mask" - unacidable = 1 - siemens_coefficient = 0.2 \ No newline at end of file + unacidable = 1 \ No newline at end of file diff --git a/code/modules/ninja/suit/shoes.dm b/code/modules/ninja/suit/shoes.dm index 2103b275059..c2fb287b9a8 100644 --- a/code/modules/ninja/suit/shoes.dm +++ b/code/modules/ninja/suit/shoes.dm @@ -6,7 +6,6 @@ permeability_coefficient = 0.01 flags = NOSLIP armor = list(melee = 60, bullet = 60, laser = 45,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.2 cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT heat_protection = FEET diff --git a/code/modules/ninja/suit/suit.dm b/code/modules/ninja/suit/suit.dm index be2ffc21e9f..bfcc4330dc2 100644 --- a/code/modules/ninja/suit/suit.dm +++ b/code/modules/ninja/suit/suit.dm @@ -16,7 +16,6 @@ Contents: slowdown = 0 unacidable = 1 armor = list(melee = 60, bullet = 60, laser = 45,energy = 15, bomb = 30, bio = 30, rad = 30) - siemens_coefficient = 0.2 var/suitActive = 0 var/suitBusy = 0 diff --git a/code/modules/power/singularity/generator.dm b/code/modules/power/singularity/generator.dm index 614755cb017..11ffbf5a3f6 100644 --- a/code/modules/power/singularity/generator.dm +++ b/code/modules/power/singularity/generator.dm @@ -8,14 +8,16 @@ density = 1 use_power = 0 var/energy = 0 + var/creation_type = /obj/singularity /obj/machinery/the_singularitygen/process() var/turf/T = get_turf(src) if(src.energy >= 200) - message_admins("A singularity has been created at [x], [y], [z] (JMP)") - investigate_log("A singularity has been created at [x], [y], [z]","singulo") + message_admins("A [creation_type] has been created at [x], [y], [z] (JMP)") + investigate_log("A [creation_type] has been created at [x], [y], [z]","singulo") - new /obj/singularity/(T, 50) + var/obj/singularity/S = new creation_type(T, 50) + transfer_fingerprints_to(S) if(src) qdel(src) /obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user, params) diff --git a/code/modules/power/tesla/coil.dm b/code/modules/power/tesla/coil.dm new file mode 100644 index 00000000000..c7509b94242 --- /dev/null +++ b/code/modules/power/tesla/coil.dm @@ -0,0 +1,78 @@ +/obj/machinery/power/tesla_coil + name = "tesla coil" + desc = "For the union!" + icon = 'icons/obj/tesla_engine/tesla_coil.dmi' + icon_state = "coil" + anchored = 0 + density = 1 + var/power_loss = 2 + var/input_power_multiplier = 1 + +/obj/machinery/power/tesla_coil/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/tesla_coil(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + RefreshParts() + +/obj/machinery/power/tesla_coil/RefreshParts() + var/power_multiplier = 0 + for(var/obj/item/weapon/stock_parts/capacitor/C in component_parts) + power_multiplier += C.rating + input_power_multiplier = power_multiplier + +/obj/machinery/power/tesla_coil/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "coil", "coil", W)) + return + + if(exchange_parts(user, W)) + return + + if(default_unfasten_wrench(user, W)) + if(!anchored) + disconnect_from_network() + else + connect_to_network() + return + + default_deconstruction_crowbar(W) + +/obj/machinery/power/tesla_coil/tesla_act(var/power) + being_shocked = 1 + var/power_produced = power / power_loss + add_avail(power_produced*input_power_multiplier) + flick("coilhit", src) + playsound(src.loc, 'sound/magic/LightningShock.ogg', 100, 1, extrarange = 5) + tesla_zap(src, 5, power_produced) + spawn(10) + being_shocked = 0 + +/obj/machinery/power/grounding_rod + name = "Grounding Rod" + desc = "Keep an area from being fried from Edison's Bane." + icon = 'icons/obj/tesla_engine/tesla_coil.dmi' + icon_state = "grounding_rod" + anchored = 0 + density = 1 + +/obj/machinery/power/grounding_rod/New() + ..() + component_parts = list() + component_parts += new /obj/item/weapon/circuitboard/grounding_rod(null) + component_parts += new /obj/item/weapon/stock_parts/capacitor(null) + RefreshParts() + +/obj/machinery/power/grounding_rod/attackby(obj/item/W, mob/user, params) + if(default_deconstruction_screwdriver(user, "grounding_rod", "grounding_rod", W)) + return + + if(exchange_parts(user, W)) + return + + if(default_unfasten_wrench(user, W)) + return + + default_deconstruction_crowbar(W) + +/obj/machinery/power/grounding_rod/tesla_act(var/power) + flick("coil_shock_1", src) \ No newline at end of file diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm new file mode 100644 index 00000000000..f1af4c5f66f --- /dev/null +++ b/code/modules/power/tesla/energy_ball.dm @@ -0,0 +1,209 @@ +#define TESLA_DEFAULT_POWER 3476520 +#define TESLA_MINI_POWER 1738260 + +var/list/blacklisted_tesla_types = list(/obj/machinery/atmospherics, + /obj/machinery/power/emitter, + /obj/machinery/field/generator, + /mob/living/simple_animal, + /obj/machinery/particle_accelerator/control_box, + /obj/structure/particle_accelerator/fuel_chamber, + /obj/structure/particle_accelerator/particle_emitter/center, + /obj/structure/particle_accelerator/particle_emitter/left, + /obj/structure/particle_accelerator/particle_emitter/right, + /obj/structure/particle_accelerator/power_box, + /obj/structure/particle_accelerator/end_cap, + /obj/machinery/field/containment, + /obj/structure/disposalpipe) + +/obj/singularity/energy_ball + name = "energy ball" + desc = "An energy ball." + icon = 'icons/obj/tesla_engine/energy_ball.dmi' + icon_state = "energy_ball" + pixel_x = -32 + pixel_y = -32 + current_size = STAGE_TWO + move_self = 1 + grav_pull = 0 + contained = 0 + density = 1 + var/list/orbiting_balls = list() + var/produced_power + var/is_orbiting + +/obj/singularity/energy_ball/Destroy() + for(var/obj/singularity/energy_ball/EB in orbiting_balls) + qdel(EB) + ..() + +/obj/singularity/energy_ball/process() + if(!is_orbiting) + handle_energy() + var/amount_to_move = 2 + orbiting_balls.len * 2 + var/what_does_the_scouter_say_about_the_balls_power_level = (TESLA_DEFAULT_POWER + (TESLA_MINI_POWER * orbiting_balls.len)) + move_the_basket_ball(amount_to_move) + pixel_x = 0 + pixel_y = 0 + playsound(src.loc, 'sound/magic/lightningbolt.ogg', 100, 1, extrarange = 5) + tesla_zap(src, 7, what_does_the_scouter_say_about_the_balls_power_level) + pixel_x = -32 + pixel_y = -32 + energy += rand(1,3) // ensure it generates energy without needing to be blasted by the PA too much due to its size, and that a tesla engine will always get bigger over time + else + energy = 0 // ensure we dont have miniballs of miniballs + return + +/obj/singularity/energy_ball/examine(mob/user) + ..() + if(orbiting_balls.len) + user << "The amount of orbiting mini-balls is [orbiting_balls.len]." + + +/obj/singularity/energy_ball/proc/move_the_basket_ball(var/move_amount) + for(var/i = 0, i < move_amount, i++) + var/move_dir = pick(alldirs) + var/turf/T = get_step(src,move_dir) + if(can_move(T)) + loc = get_step(src,move_dir) + +/obj/singularity/energy_ball/proc/handle_energy() + if(energy >= 300) + energy -= 300 + playsound(src.loc, 'sound/magic/lightning_chargeup.ogg', 100, 1, extrarange = 5) + spawn(100) + var/obj/singularity/energy_ball/EB = new(loc) + orbiting_balls.Add(EB) + EB.transform *= pick(0.3,0.4,0.5,0.6,0.7) + EB.is_orbiting = 1 + var/icon/I = icon(icon,icon_state,dir) + + var/orbitsize = (I.Width()+I.Height())*pick(0.5,0.6,0.7) + orbitsize -= (orbitsize/world.icon_size)*(world.icon_size*0.25) + spawn(1) + EB.orbit(src,orbitsize, pick(FALSE,TRUE), rand(10,25), pick(3,4,5,6,36)) + + + +/obj/singularity/energy_ball/Bump(atom/A) + dust_mobs(A) + +/obj/singularity/energy_ball/Bumped(atom/A) + dust_mobs(A) + +/obj/singularity/energy_ball/proc/dust_mobs(atom/A) + if(istype(A, /mob/living/carbon)) + var/mob/living/carbon/C = A + C.dust() + return + +/proc/get_closest_atom(type, list, source) + var/closest_atom + var/closest_distance + for(var/A in list) + if(!istype(A, type)) + continue + var/distance = get_dist(source, A) + if(!closest_distance) + closest_distance = distance + closest_atom = A + else + if(closest_distance > distance) + closest_distance = distance + closest_atom = A + return closest_atom + +/proc/tesla_zap(var/atom/source, zap_range = 3, power) + if(power < 500) + return + var/list/tesla_coils = list() + var/list/grounding_rods = list() + var/list/potential_machine_zaps = list() + var/list/potential_mob_zaps = list() + var/list/potential_structure_zaps = list() + var/closest_atom + for(var/atom/A in oview(source, zap_range)) + if(istype(A, /obj/machinery/power/tesla_coil)) + var/obj/machinery/power/tesla_coil/C = A + if(C.being_shocked) + continue + tesla_coils.Add(C) + continue + if(istype(A, /obj/machinery/power/grounding_rod)) + var/obj/machinery/power/grounding_rod/R = A + grounding_rods.Add(R) + continue + if(istype(A, /obj/machinery)) + var/obj/machinery/M = A + if(is_type_in_list(M, blacklisted_tesla_types)) + continue + if(M.being_shocked) + continue + potential_machine_zaps.Add(M) + continue + if(istype(A, /obj/structure)) + var/obj/structure/M = A + if(is_type_in_list(M, blacklisted_tesla_types)) + continue + if(M.being_shocked) + continue + potential_structure_zaps.Add(M) + continue + if(istype(A, /mob/living)) + var/mob/living/L = A + if(L.stat == DEAD) + continue + if(is_type_in_list(L, blacklisted_tesla_types)) + continue + potential_mob_zaps.Add(L) + continue + closest_atom = get_closest_atom(/obj/machinery/power/tesla_coil, tesla_coils, source) + if(closest_atom && istype(closest_atom, /obj/machinery/power/tesla_coil)) + var/obj/machinery/power/tesla_coil/C = closest_atom + source.Beam(C,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + C.tesla_act(power) + return + if(!closest_atom) + closest_atom = get_closest_atom(/obj/machinery/power/grounding_rod, grounding_rods, source) + if(closest_atom && istype(closest_atom, /obj/machinery/power/grounding_rod)) + var/obj/machinery/power/grounding_rod/R = closest_atom + source.Beam(R,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + R.tesla_act(power) + return + if(!closest_atom) + closest_atom = get_closest_atom(/mob/living, potential_mob_zaps, source) + if(closest_atom && istype(closest_atom, /mob/living)) + var/mob/living/L = closest_atom + var/shock_damage = Clamp(round(power/400), 10, 90) + rand(-5,5) + source.Beam(L,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + L.electrocute_act(shock_damage, source, 1, tesla_shock = 1) + if(istype(L, /mob/living/silicon)) + var/mob/living/silicon/S = L + S.emp_act(2) + tesla_zap(S, 7, power / 1.5) // metallic folks bounce it further + else + tesla_zap(L, 5, power / 1.5) + return + if(!closest_atom) + closest_atom = get_closest_atom(/obj/machinery, potential_machine_zaps, source) + if(closest_atom) + var/obj/machinery/M = closest_atom + source.Beam(M,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + M.tesla_act(power) + if(prob(85)) + M.emp_act(2) + else + if(prob(50)) + M.ex_act(3) + else + if(prob(90)) + M.ex_act(2) + else + M.ex_act(1) + return + if(!closest_atom) + closest_atom = get_closest_atom(/obj/structure, potential_structure_zaps, source) + if(closest_atom) + var/obj/structure/S = closest_atom + source.Beam(S,icon_state="lightning[rand(1,12)]",icon='icons/effects/effects.dmi',time=5) + S.tesla_act(power) + return diff --git a/code/modules/power/tesla/generator.dm b/code/modules/power/tesla/generator.dm new file mode 100644 index 00000000000..f511c650c8c --- /dev/null +++ b/code/modules/power/tesla/generator.dm @@ -0,0 +1,6 @@ +/obj/machinery/the_singularitygen/tesla + name = "energy ball generator" + desc = "Makes the wardenclyffe look like a child's plaything when shot with a particle accelerator." + icon = 'icons/obj/tesla_engine/tesla_generator.dmi' + icon_state = "TheSingGen" + creation_type = /obj/singularity/energy_ball \ No newline at end of file diff --git a/code/modules/research/designs/power_designs.dm b/code/modules/research/designs/power_designs.dm index 0bcbda4eac2..05364e3e40f 100644 --- a/code/modules/research/designs/power_designs.dm +++ b/code/modules/research/designs/power_designs.dm @@ -92,3 +92,23 @@ materials = list(MAT_GLASS = 1000, "sacid" = 20) build_path = /obj/item/weapon/circuitboard/pacman/super category = list("Engineering Machinery") + +/datum/design/tesla_coil + name = "Machine Design (Tesla Coil Board)" + desc = "The circuit board for a tesla coil." + id = "tesla_coil" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/tesla_coil + category = list("Engineering Machinery") + +/datum/design/grounding_rod + name = "Machine Design (Grounding Rod Board)" + desc = "The circuit board for a grounding rod." + id = "grounding_rod" + req_tech = list("programming" = 1) + build_type = IMPRINTER + materials = list(MAT_GLASS = 1000, "sacid" = 20) + build_path = /obj/item/weapon/circuitboard/grounding_rod + category = list("Engineering Machinery") \ No newline at end of file diff --git a/icons/effects/effects.dmi b/icons/effects/effects.dmi index 0557b16cdf3..8b9f2af61ae 100644 Binary files a/icons/effects/effects.dmi and b/icons/effects/effects.dmi differ diff --git a/icons/obj/tesla_engine/energy_ball.dmi b/icons/obj/tesla_engine/energy_ball.dmi new file mode 100644 index 00000000000..7f68e4b0071 Binary files /dev/null and b/icons/obj/tesla_engine/energy_ball.dmi differ diff --git a/icons/obj/tesla_engine/tesla_coil.dmi b/icons/obj/tesla_engine/tesla_coil.dmi new file mode 100644 index 00000000000..5c3646dde80 Binary files /dev/null and b/icons/obj/tesla_engine/tesla_coil.dmi differ diff --git a/icons/obj/tesla_engine/tesla_generator.dmi b/icons/obj/tesla_engine/tesla_generator.dmi new file mode 100644 index 00000000000..adf5fbaa8ec Binary files /dev/null and b/icons/obj/tesla_engine/tesla_generator.dmi differ diff --git a/paradise.dme b/paradise.dme index fbb8c687f46..c4f2edc5dee 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1611,6 +1611,9 @@ #include "code\modules\power\singularity\particle_accelerator\particle_emitter.dm" #include "code\modules\power\singularity\particle_accelerator\particle_power.dm" #include "code\modules\power\supermatter\supermatter.dm" +#include "code\modules\power\tesla\coil.dm" +#include "code\modules\power\tesla\energy_ball.dm" +#include "code\modules\power\tesla\generator.dm" #include "code\modules\procedural_mapping\mapGenerator.dm" #include "code\modules\procedural_mapping\mapGeneratorModule.dm" #include "code\modules\procedural_mapping\mapGeneratorReadme.dm" diff --git a/sound/magic/LightningShock.ogg b/sound/magic/LightningShock.ogg new file mode 100644 index 00000000000..341a2934d6b Binary files /dev/null and b/sound/magic/LightningShock.ogg differ diff --git a/sound/magic/lightning_chargeup.ogg b/sound/magic/lightning_chargeup.ogg new file mode 100644 index 00000000000..0af44495024 Binary files /dev/null and b/sound/magic/lightning_chargeup.ogg differ diff --git a/sound/magic/lightningbolt.ogg b/sound/magic/lightningbolt.ogg new file mode 100644 index 00000000000..e5f6a5731ad Binary files /dev/null and b/sound/magic/lightningbolt.ogg differ