diff --git a/_maps/map_files/MetaStation.v39K.dmm b/_maps/map_files/MetaStation.v39K.dmm index 842f6c0278a..19460c3ab6b 100644 --- a/_maps/map_files/MetaStation.v39K.dmm +++ b/_maps/map_files/MetaStation.v39K.dmm @@ -3962,7 +3962,7 @@ "byj" = (/obj/structure/window/reinforced{dir = 1; pixel_y = 1},/obj/structure/closet/crate/internals,/turf/simulated/floor{icon_state = "delivery"},/area/storage/primary) "byk" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{dir = 8},/turf/simulated/floor{dir = 8; icon_state = "yellow"},/area/hallway/primary/aft) "byl" = (/obj/structure/table,/obj/item/weapon/airlock_painter,/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/engine/engineering) -"bym" = (/obj/machinery/light{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 29},/obj/structure/closet/wardrobe/hos,/turf/simulated/floor{icon_state = "dark"},/area/security/hos) +"bym" = (/obj/machinery/light{dir = 4},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 29},/turf/simulated/floor{icon_state = "dark"},/area/security/hos) "byn" = (/obj/structure/cable/yellow{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating{dir = 2; icon_state = "warnplate"},/area/maintenance/fore) "byo" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/engine/engineering) "byp" = (/turf/simulated/floor{tag = "icon-warningcorner (NORTH)"; icon_state = "warningcorner"; dir = 1},/area/engine/engineering) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index 12993c26432..4bd259aa73a 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -343,7 +343,7 @@ "agE" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 32},/obj/machinery/light{dir = 1},/turf/simulated/floor,/area/hallway/primary/fore) "agF" = (/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/brig) "agG" = (/obj/machinery/hologram/holopad,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor,/area/security/main) -"agH" = (/obj/structure/table,/obj/item/device/flash,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/main) +"agH" = (/obj/structure/table,/obj/item/device/flash/handheld,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor,/area/security/main) "agI" = (/turf/simulated/floor{dir = 10; icon_state = "warning"},/area/security/processing) "agJ" = (/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/brig) "agK" = (/obj/machinery/door/airlock/glass_security{id_tag = "innerbrig"; name = "Brig"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/brig) @@ -2276,7 +2276,7 @@ "aRN" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall,/area/library) "aRO" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50},/obj/item/stack/rods{amount = 50},/turf/simulated/floor,/area/storage/tools) "aRP" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/storage/tools) -"aRQ" = (/obj/structure/table/reinforced,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor,/area/bridge) +"aRQ" = (/obj/item/weapon/crowbar,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2) "aRR" = (/turf/simulated/floor{dir = 1; icon_state = "yellowcorner"},/area/bridge) "aRS" = (/obj/structure/stool/bed/chair{dir = 1; name = "Engineering Station"},/turf/simulated/floor,/area/bridge) "aRT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "yellowcorner"},/area/bridge) @@ -2326,7 +2326,7 @@ "aSL" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint2) "aSM" = (/turf/simulated/wall,/area/security/vacantoffice) "aSN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor/carpet,/area/security/vacantoffice) -"aSO" = (/obj/item/weapon/crowbar,/obj/item/device/flash,/turf/simulated/floor{icon_state = "red"; dir = 6},/area/security/checkpoint2) +"aSO" = (/obj/structure/table/reinforced,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor,/area/bridge) "aSP" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/hallway/secondary/construction{name = "\improper Garden"}) "aSQ" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/port) "aSR" = (/obj/structure/closet/wardrobe/green,/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/crew_quarters/locker) @@ -3371,7 +3371,7 @@ "bmQ" = (/obj/machinery/light{dir = 8},/obj/machinery/camera{c_tag = "Mech Bay"; dir = 4},/turf/simulated/floor,/area/assembly/chargebay) "bmR" = (/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/assembly/chargebay) "bmS" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/assembly/robotics) -"bmT" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor,/area/assembly/robotics) +"bmT" = (/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/obj/structure/table,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bmU" = (/obj/structure/stool,/turf/simulated/floor,/area/assembly/robotics) "bmV" = (/turf/simulated/floor{icon_state = "bot"},/area/assembly/robotics) "bmW" = (/turf/simulated/floor{dir = 8; icon_state = "warnwhite"},/area/assembly/robotics) @@ -5909,6 +5909,8 @@ "cjG" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) "cjH" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/engine/engineering) "cjI" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor,/area/atmos) +"cjJ" = (/obj/structure/table,/obj/item/stack/sheet/plasteel{amount = 10},/obj/item/stack/cable_coil,/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/turf/simulated/floor,/area/assembly/robotics) +"cjK" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flash/handheld,/obj/item/device/flash/handheld,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/tech) "cjL" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cjM" = (/obj/structure/disposalpipe/segment{dir = 1; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cjN" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{tag = "icon-manifold-r-f (EAST)"; dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/chemistry) @@ -5961,6 +5963,7 @@ "ckI" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'HIGH VOLTAGE'"; icon_state = "shock"; name = "HIGH VOLTAGE"; pixel_y = 0},/turf/simulated/wall/r_wall,/area/maintenance/starboardsolar) "ckJ" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor/plating/airless,/area/solar/port) "ckK" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating/airless,/area/maintenance/portsolar) +"ckL" = (/obj/structure/table,/obj/item/device/flash/handheld,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "ckM" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/flasher_button{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/simulated/shuttle/floor4,/area/shuttle/escape/centcom) "ckN" = (/turf/simulated/wall/r_wall,/area/engine/gravity_generator) "ckO" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/floor,/area/engine/engineering) @@ -6712,7 +6715,7 @@ "czg" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "czh" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "czi" = (/obj/structure/table/reinforced,/obj/item/weapon/clipboard,/obj/item/weapon/stamp,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) -"czj" = (/obj/structure/table,/obj/item/device/flash,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) +"czj" = (/obj/structure/closet/secure_closet/hos,/turf/simulated/floor/carpet,/area/security/hos) "czk" = (/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/centcom/evac) "czl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/shuttle/floor,/area/centcom/evac) "czm" = (/turf/space,/area/shuttle/escape_pod3/centcom) @@ -7090,7 +7093,7 @@ "cGu" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/door/airlock/maintenance{name = "Xenobiology Maintenance"; req_access_txt = "55"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0},/turf/simulated/floor/plating,/area/toxins/xenobiology) "cGv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/manifold/supply/hidden,/turf/simulated/floor,/area/engine/engineering) "cGw" = (/obj/structure/table,/obj/item/weapon/book/manual/wiki/engineering_guide,/obj/item/weapon/book/manual/engineering_particle_accelerator{pixel_y = 6},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor,/area/engine/engineering) -"cGx" = (/obj/structure/table,/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flashlight{pixel_x = 1; pixel_y = 5},/obj/item/device/flash,/obj/item/device/flash,/obj/machinery/ai_status_display{pixel_x = -32; pixel_y = 0},/turf/simulated/floor/plating,/area/storage/tech) +"cGx" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/table/woodentable,/obj/item/weapon/reagent_containers/food/drinks/bottle/vodka{pixel_x = 6; pixel_y = 6},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass{pixel_x = -4; pixel_y = 3},/obj/item/weapon/reagent_containers/food/drinks/drinkingglass,/turf/simulated/floor/carpet,/area/security/hos) "cGy" = (/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = -5},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 0},/obj/item/device/transfer_valve{pixel_x = 5},/obj/item/device/transfer_valve{pixel_x = 5},/obj/machinery/requests_console{department = "Science"; departmentType = 2; name = "Science Requests Console"; pixel_x = 0; pixel_y = -30},/obj/structure/table/reinforced,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "cGz" = (/obj/structure/stool/bed/chair{dir = 8},/obj/effect/landmark/start{name = "Assistant"},/turf/simulated/floor,/area/quartermaster/office) "cGA" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/medical/medbay) @@ -7128,7 +7131,7 @@ "cHg" = (/obj/structure/table/woodentable,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor/wood,/area/crew_quarters/captain) "cHh" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/medbay) "cHi" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) -"cHj" = (/obj/machinery/ai_status_display{pixel_x = 32; pixel_y = 0},/obj/structure/table,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/obj/item/device/flash,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) +"cHj" = (/obj/structure/stool/bed/chair/comfy/black,/turf/simulated/floor/carpet,/area/security/hos) "cHk" = (/obj/structure/bookcase,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHl" = (/obj/structure/stool/bed/chair{dir = 4},/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) "cHm" = (/obj/structure/table/woodentable,/turf/unsimulated/floor{dir = 8; icon_state = "wood"},/area/wizard_station) @@ -7496,7 +7499,6 @@ "cOk" = (/obj/item/weapon/shard,/obj/item/weapon/module/power_control,/turf/simulated/floor/plating/airless,/area/AIsattele) "cOl" = (/obj/structure/closet,/turf/simulated/floor/plating/airless,/area/AIsattele) "cOm" = (/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = -1},/turf/simulated/floor/plating/airless,/area/AIsattele) -"cOn" = (/obj/structure/closet/wardrobe/hos,/turf/simulated/floor/carpet,/area/security/hos) "cOo" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating/airless,/area/AIsattele) "cOp" = (/obj/machinery/power/solar/fake,/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/djstation/solars) "cOq" = (/turf/simulated/floor/plating/airless,/area/djstation/solars) @@ -8890,14 +8892,12 @@ "dpa" = (/obj/machinery/atmospherics/pipe/manifold/supply/hidden{tag = "icon-manifold-b-f (NORTH)"; dir = 1},/turf/simulated/floor,/area/engine/break_room) "dpb" = (/obj/machinery/atmospherics/pipe/manifold{dir = 4},/obj/machinery/mineral/labor_points_checker,/turf/simulated/wall,/area/mine/laborcamp) "dpc" = (/obj/machinery/computer/shuttle/ferry/request,/turf/simulated/shuttle/floor,/area/shuttle/transport1/centcom) -"dpd" = (/obj/machinery/alarm{pixel_y = 23},/obj/structure/reagent_dispensers/peppertank{pixel_x = 30; pixel_y = 0},/obj/structure/closet/secure_closet/hos,/turf/simulated/floor/carpet,/area/security/hos) "dpe" = (/obj/machinery/computer/mech_bay_power_console,/turf/unsimulated/floor/plating,/area/syndicate_mothership) "dpf" = (/turf/unsimulated/floor{icon_state = "recharge_floor"; name = "mech bay recharge floor"; tag = "icon-recharge_floor"},/area/syndicate_mothership) "dpg" = (/obj/machinery/door/airlock/glass_large{name = "Equipment Room"; opacity = 1; req_access_txt = "150"; text = "g"},/turf/unsimulated/floor{icon_state = "bar"; dir = 2},/area/syndicate_mothership) "dph" = (/obj/machinery/door/window{dir = 4; name = "EVA Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpi" = (/obj/structure/stool,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpj" = (/obj/machinery/door/airlock/centcom{name = "Transport Shuttle"; opacity = 1; req_access_txt = "109"},/turf/unsimulated/floor{icon_state = "floor"},/area/centcom/ferry) -"dpk" = (/obj/structure/stool/bed/chair/office/dark,/turf/simulated/floor/carpet,/area/security/hos) "dpl" = (/obj/item/weapon/reagent_containers/glass/bucket,/turf/simulated/floor/plating,/area/security/prison) "dpm" = (/obj/structure/table,/obj/item/weapon/c4{pixel_x = 2; pixel_y = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "dpn" = (/obj/item/weapon/soap/syndie,/obj/structure/mopbucket,/turf/unsimulated/floor{icon_state = "freezerfloor"; dir = 2},/area/syndicate_mothership) @@ -9262,8 +9262,8 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJaiNajlajxaiJdsiaaiaaiamHaaxaaqaaqaayaazaaxaaqaataaAaaiahlaahahjahlahlahlahlahlahlahlahjahjahjahjahjahlahjahlahjahlahjahlahlahlahlahlahldsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJaiKaikaiIaiJdsiaaiaaBaaqaaqaaqaaxaaCafYaaqaaqaaEaaFaaiaaiaaiahjahlahlahlahlahlahjahlaahahlahlahlahjahjahjahjahjahjahjahjahlahlahlahlahldsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdpXaaHaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJaiMaiLaiMaiJdsiaaiaaIaaqaaJaaqaaqaaqaaqaaqaaqaaKaaqaaLaaMaaiahjahjahjahjahjahjahjahjabkabkablabkabkaaNaaNaaOaaPaaQaaNaaNahlahlahlahlahldsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahlahjahlaaRahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJaSyaVqaYTaiJbRJaaiaaSaaqaaqaoFaoEaoDaaqaoKaoHaoGaaqaaVaaWaaiahjahlahlahlahlahlahlahlablafmabBadTagYaaNcuUaaYaaZcOndpdaaNahlahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjabcahjdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlaaHaaHdpXaaHaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJbaHbnWbpkaoMaoNaaiabdabeabdabdabdaoUabdabdabdaptabdabdabjaaiahjahlahjahjahjahjahlahjabkabCabBadUafmaaNdnDdpkaboabobmDaaNahlahjabqahjahlahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdpXdpXdpXahlahlahlabrahlahlahldpXdpXaaHaaHaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJaSyaVqaYTaiJbRJaaiaaSaaqaaqaoFaoEaoDaaqaoKaoHaoGaaqaaVaaWaaiahjahlahlahlahlahlahlahlablafmabBadTagYaaNcuUaaYaaZczjcGxaaNahlahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjabcahjdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlaaHaaHdpXaaHaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJbaHbnWbpkaoMaoNaaiabdabeabdabdabdaoUabdabdabdaptabdabdabjaaiahjahlahjahjahjahjahlahjabkabCabBadUafmaaNdnDcHjaboabobmDaaNahlahjabqahjahlahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXdpXdpXdpXdpXahlahlahlabrahlahlahldpXdpXaaHaaHaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHahlahjahlaaRahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlajzaoyaiLaovaiJaowaaiabsaaqabtabdabuaorabvabdabwaosabxabdabyaaiabzabzabzabzabzabzabzabzabzabAabBamJafmabDaXPaXMdoIabobwDaaNahlahjabIabJabIahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaRahlahlahjahjahjahlahlabrahjahjahlahjahjahlahlaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjabKahjdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahjaiJaoCaoAaoBaiJaozaaiabLaaqabPabdabOaorabPabdabQaosabPabdabRaaiabSabTabVabVabWabXabYdoOabzacaabBamJafmacdacebGrbPhabobQsaaNahjahjabIaciabIahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjacjacjacjacjacjahjackahjacjacjacjacjacjahjdpXahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaHaaHaaHdpXdpXahlahlahlaclahlahlahldpXdpXaaHaaHaaHahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaiJaiJajzajCaiJamtaaiabhacmabfabdabhamIabfabdabhamGabfabdabdaaiabSacpacqacqacqacqdoCdoAabzacsabBamJafmaaNadRacvacwacxacyaaNafOabkacBabJabIabIacCahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldpXahjacDacEacEacEacEacFacGacHacIacIacIacIacJahjdpXahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9300,7 +9300,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlawLaxYaAaaAbaAbaAbaAbaAcaxYawLaAdaqfaAeaydaAfaAfbdlboCaAfaAfbdmayeazpazrcFZaAiazrazrazpayeaogbdebcZaAkaAkaAkaAkaAkaAkaAkaAlahlazzbcJbcKaGwbcPdteazzahlaxbaGyaxgazAaAraAsaAtazAaxgaHLbbPawfaAubcHaAwayobcGbbebcIaAAaywaywaABaywaACaxualKaxvabIadYaqHaFsaFtbcCapGaXvbcBayFaAEazSaAFaAFayFazRaAGazTayFaAHbdPbdNaAKaSpayfahjbdOaoLaoLaoLaoLaoLbdGahlakmalvaAPaAQakmakmakmakmakmakmaARaASakmakmakmakmakmakmbdAbdwbdxaVuaVuaVubdzbdyaPcaSibdrbdqaVubdvbdnbdubdtbdnaCoaqcaBhahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlaBiaBjaBkaBjaBjaBlaBmaBjaBjaBkaBnaBoaqfaxZaBpblYblNblOblPaBuaBvaNCayeazpazrazraBxazrazrazpayeaByaNPaNOaBBaBCaBDaBEaBFaBGaBHaAlahjazzaObaOcaAmaOaaOdazzahjaxbaGyaxgaNQaNRaBPaNTaNSaxgapsavsawfaBSaBTazIaywazIaOgaBWaBXaBYaBZawhaCaawhaxualKaxvabIadYaqHaFHaMJaFBaOhaFDaOiayFaCcazSazSazSayGaCfaCeaCdayFaJXaOsaOPaOVaOBayfahlahjahlahjahlahjahlahjahlakmaqrbmeaPcaCoaCpakmatOalvaqrardalvakmahlakmayOaPcaPcaPvaPBaPxaPxaPxaPxaPxaPyaPAaPGaPDaPCaPCaPCaPCaPCaPCaPTaPPaCCaCDahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaBiaBnaBjaCEaCFaCFaCGaCHaCIaCJaCKaCFaCFaCLaCMavJaxZaCNaAfauOaQgbmfaCRaCQaPUayeaCTazrazrazrazraEoaRaaRcbmjaRgaRdaBGaBGaBGaBGaBGaBGaBGaAlahlazzaQyaApaQAaAnaQXazzahlaxbaGyaxgaQhaQiaDeaQqaQuaxgapsaDhawfawfaDiaDjaJMaDjaShawfawfaDmaDnawhaDoawhaxualKaxvabIadYaqHaqHaqHaqHaqHaRjaRqaRBaRJaRraDwaDwaDwaSnayFaIDayFaSlaSmaSoaAKaSpayfakmakmakmakmakmakmakmakmakmakmakmakmakmbmkakmakmakmakmayOaSiaSAaStaEwaStaSraSsaSqaSqbmlaDOaDOaDOaDOaDOaDPaSLaDRaDRaDRaDRaDRaDRaDVakmaDXayfaDVaDVaDVahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaCLaDYaDZaEaaCFaEbaCFaEbaCFaEbaCFaEbaCFaEcaEdazdaxZaEeaAfaTeaTCbmraEiaEjaSOayeaElazraSPaTaaTaaUiaUhaUgbnlaTZaTOaTNaTNaTNaTNaTNaTLaTKaAlahjazzaUraApaUpaUqaUoazzahjaxbbnmaEEaUlaUmaDeaUkaUjaGEbmwaTEawhaTGaTDaDmaDmaDmaBUaERawhaESaESawhaDmawhaETaEUaEVabIadYadYadYadYadYamraHqaFbaFcaTHaFeaFcaUIaFcaUHaFcaUKayFbeDaUJaUNaAKaULaUMaUQaVaaUOaUPaVfaCsaCsaCsaCsaVmaVkaCsaCsbnnaVpaVnaVBaVuaVsaVraUvaUwaUxaUwaUyaUzaDOaDOaFKaDOaFLaFMaFNaDOaDRaUAaDRaFPaUFaUEaUGaFTaFUaFVawaatbaFYaFZaGaahjahlahjahlahjahlahjahlahjahjahlaGbaGbaGbaGbaGbaGbaGbahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaCLaDYaDZaEaaCFaEbaCFaEbaCFaEbaCFaEbaCFaEcaEdazdaxZaEeaAfaTeaTCbmraEiaEjaRQayeaElazraSPaTaaTaaUiaUhaUgbnlaTZaTOaTNaTNaTNaTNaTNaTLaTKaAlahjazzaUraApaUpaUqaUoazzahjaxbbnmaEEaUlaUmaDeaUkaUjaGEbmwaTEawhaTGaTDaDmaDmaDmaBUaERawhaESaESawhaDmawhaETaEUaEVabIadYadYadYadYadYamraHqaFbaFcaTHaFeaFcaUIaFcaUHaFcaUKayFbeDaUJaUNaAKaULaUMaUQaVaaUOaUPaVfaCsaCsaCsaCsaVmaVkaCsaCsbnnaVpaVnaVBaVuaVsaVraUvaUwaUxaUwaUyaUzaDOaDOaFKaDOaFLaFMaFNaDOaDRaUAaDRaFPaUFaUEaUGaFTaFUaFVawaatbaFYaFZaGaahjahlahjahlahjahlahjahlahjahjahlaGbaGbaGbaGbaGbaGbaGbahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGdaCFaCFaGeaCFaEbaCFaEbaGfaEbaCFaEbaCFaEcaEdazdaxZbdiaAfaAfaVFbnobnpaVCaAfayeayeayeayeaVDazrazraVSayebnAaVRaBGaBGaBGaGtaBGaBGaBGaGuaAlahlazzazzaEyaVNaEyazzazzahlaxbaGyaxgaVLaVMaVIaVJaVKaxgapsaVHawhaVGaTDaDmaDmaDmaBUaGKawhaGLaGMawhaCaawhaGNaGOaGPabIamrabIabIabIabIabIbnqaGSayFaGTazSayFaGUayFaGVayFaGWayFaWvaWwaUNaAKaWxaWyaWJaWLaWlaWlaWmaWlaWlaWnaWlaWoaWpaBaaBaaBaaBaaWqaWsaWraWuaWtalvaIRaIRaIRaIRapBaDOaHvaHwaHxaHyaHzaHAaDOaHBaWkaDRaHDaVVaVUaVZaFTaHHaFXawaaWjaDVaDVaDVahjahjahjahjahjahjahjahjahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbdsiahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaCLaHJaDZaEaaCFaEbaCFaEbaCFaEbaCFaEbaCFaEcaEdazdaHKaCwaBAaBtaBtaBwauZawNavbavdavcavaayeaukazrazraqCayeaBsaBzaBGaHXaHYaHZaIaaIbaIcaIdaAlahlahjahlaIfauYaIfahlahjahlaxbaGyaxgaDeaIiaIjaIkaIlaxgapsapqawhaImaInaDmaDmaDmaIoaIpawhahlahlaIqaIraIsaItaIuaIvaIwaIxaIqahlahlaTkaIzaAoaIBayFaICazSazSazSaCeazSazSazSayFaAKauXauVaAKaAKayfauUaIIaIIauTaMZaILaIIaIMaIIaINauRaINauQaINaIQaIRaIRauPaIRaIRaIRaIRaCkaKwaIRapBaDOaHwaIVaIWaIXaIYaIZaDOauLauAauiaumaupausaueaufaugauhaucaudaJhaJiaJjahlahlahlahlahlahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaJkaJlaBjaCEaCFaCFaCFaJmaCFaCFaJnaCFaCFaCLaJoawLaxZawNaJpaJqaJqaJqaJqaJqaJqaJqaJrawNayeapraubaprayeayeaBqaJvaJwaAkaAkaAkaAkaJuaJxaJyaAlaJzaJBaJBaJCatWaJEaJBaJBaJFaxbaBraxgatZaxgaJIaJJaJKaxgazGavWawhawhawhaJLaJMaJLawhawhawhaJOaJPaJQaJRaIuaIuaIuaIuaIuaJSaJTaJPaJUaTkaJVaAoaJWayFayFayFayFayFayFayFayFayFayFaFjatQatBatAatCaPuatjaKeaIIatuaMZaKjatVaKjaINaKkatUaINatSaINaKnaKoaKpatRasXasXasXasVasTaMaaIRapBaDOasSaIVaKAaIXaIYaKBaDOaKCasRathatiatfatgatdateaVlatcasZatbaKIaKJaKKahlahjahlahlahlahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9309,7 +9309,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjazbaqfazdatwazdaNtaNuaNvaNwazdatwaNxaNyaqfaxZawNazdaNzaNAaMuaMuaMvarkaNBaKSawNaMyaMzaKYaNDaNEaNEaNEaNFaNGaNHaNEaNIaNEaNEaNEaNJaNKaqSaNEaNEaNEaqQaqPatKasaasaaqRaqOaqMaqKaNUaKYanLaMLaLlaIuaNVaIuaNWaNWaNWaNWaNWaNWaNWaNWaNXaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNWaNYaNWaNWaNWaNWaNWaNWaNWaNWaIuaIuaIuaAKaNZaNZaNZaNZaNZaqIaqGaPuaqFaqdaIIaqEaOeaqyaIIaOfaINaqtaqpaqqaqAaOjaINaIRaOkaqzaOmaOnaOmaqnaOoaOpaIRapBaDOaOqaOqapHapFaOtaOtaOuaDOaOvaOwaOxaDVaOyaOzaOAaFXaFXaqjaqmaDVaOCaDVaODaqhaOFaOFaOGaOHaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkawLaxYawLaxZawNawNayaawLaxYawLaOJaOKaOLawNawLaOMaOMaKPaOMaKQarkaONaKSawNaOOaOOaOOaOQaOOaORaORaORaORaORaOSaOTaORaOUaORaORaORaOYaOWaOXaOWaqJapRaPaaKYaKYaPbapPaPdanjaKZaKYanLaPeaPeaIuaIuaIvaPfaJPaJPaPgaPgaPgaPgaPhaPiaPjaPkaPlaPmaPnaPmaPoaPmaPpaPkaPqaPiaPraPgaPgaPgaPgaJPaJPaPsaItaIuaIuaIIaoXaMXaKcaKcaKcaKcaKcaPuaQUaKcaIIapKaPzapNaINaINaINapLapMaINaINaINaINaIRaOmapOaPEaPEaPEapEaPFaOmaIRapBaDOaPHaHwapHapFaHwaHwaPIaDOaPJaPKaPLaDVaFXaPMaPNaPOaPOapIapJaPQaPRaDVafsaSEaOFaOEaOFaPWaPXaPXaPWaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjavJaPZawNavKaOLawNawNaQaavKawNaPZaOLawNawNawNaQbaQcaQcaQcaQcaQcaQcaQcaQdawNaOOanTaOOaRDaORasQaQnaQkaQlaQmaQnaQoaQpbKEaQraQsaQtaOYaQvaQwaQxaqJaxfaPaaPaaQzaPaaPaaPeazEaQBaQCaxyaPeaPeaQDaIuaIvaQEahlahlahlahlahlahlahlaPiaQFaQGaQHaQIaQJaQKaQLaQMaQNaQOaQPaPiahlahlahlahlahlahlahlaQQaItaIuaQRaIIaPtaKcaQTaKcaKcaKcbKcaPuaQUaLJaQVaPuaQWasbaINaQYaQZasfasdaseasgaReaRfaINaOmasraRhaRhaRhasKaRiaOmaIRasOaDOaRkaRkapHapFaRlaRlaRmaDOaDOaRnaDOaDVaRoaOzaOAaRpaRpaqjaqmaDVaDVaDVaMmasHasJasPaMnaMnaMnaMnaRsaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlawLaRtaRuaRuaRuaRuaRuaRuaRuaRuaRtaRuaRvawNawNaRwawNaRzawcawNaRyawbawNaRAarYaOOaRCaOOaRDaORaREaQnawdaQnaQnaQnaQoaRFaQnaQnaQnaQtaOYaRGaQwaQwaqJaxfaPaaRHaRIaRIarZaPeawZaRLaRMawYaROaRPaIuaIuaIvaQEahlahlahlahlaPiaPiaPiaPiaRQaRRaRSaRTaRUaRVaRWaRXaRYaRZaSaaPiaPiaPiaPiahlahlahlahlaQQaItaIuaIuaSbaKcaqTaqVaqUaqXaqWarparearsarrarCarAarDarEatYarFarFarHarIarJarJarKarFarMarNarOarParQarSarRaRiaOmaIRapBaDOaHwaHwapHapFaHwaHwaHwaolaSwaHwaSxaDVaKHbDuaSzaRpaRparTarVaSBaDVaSCaSDaSEaOFarWaOFaSFaPXaPXaSGaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlawLaRtaRuaRuaRuaRuaRuaRuaRuaRuaRtaRuaRvawNawNaRwawNaRzawcawNaRyawbawNaRAarYaOOaRCaOOaRDaORaREaQnawdaQnaQnaQnaQoaRFaQnaQnaQnaQtaOYaRGaQwaQwaqJaxfaPaaRHaRIaRIarZaPeawZaRLaRMawYaROaRPaIuaIuaIvaQEahlahlahlahlaPiaPiaPiaPiaSOaRRaRSaRTaRUaRVaRWaRXaRYaRZaSaaPiaPiaPiaPiahlahlahlahlaQQaItaIuaIuaSbaKcaqTaqVaqUaqXaqWarparearsarrarCarAarDarEatYarFarFarHarIarJarJarKarFarMarNarOarParQarSarRaRiaOmaIRapBaDOaHwaHwapHapFaHwaHwaHwaolaSwaHwaSxaDVaKHbDuaSzaRpaRparTarVaSBaDVaSCaSDaSEaOFarWaOFaSFaPXaPXaSGaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjaqfaqfaSHaSIaSIaSIaSIaSIaSIaSJaqfaqfarkaSKaJtaSMaSMaYxaSMaSMaSMaXoaSMaSMaSMaOOaRCbbYaSQaORaSRaQnaOZaSSaSTaSUaSVaSSaQnaQnaQnaSWaOYaSXaSYaSZaqJaxfaPaaTbaTcaTdaAhaPebaeaTgaThbafaTiaTjaIuaIuaIvaJTaPhaTkaTlaPiaPiaTmaTnaToaTpazZaTqaTraTsaTqaTtaTqaTqaAgaTuaTvaTwaTxaPiaPiaTlaTkaJOaTyaItaIuaIuaIIaTzaPuaTAaKcaKcaKccEyaKcaAIaADaAzaAyaPwaBcaBbaAOaAYaAZaAWaAXaAUaAVaAOaATaALaAMaAjaAJbagaAjaAqaTQaIRapBaDOaTRaTRapHapFaTSaHwaHwaTTaHwaTUaTVaDVaTWaTXaTYaRpaRpaAvaAxaFXaDVaUaaOFaSEaOFarWcElaUbaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUdazeawOaUeaSMaWZaZSaZIazxaZIaZTaWZaZIaSMaRCaRCazFbfBaORaUsaQnaYBaYEaZoaUtaUuaSSaQnaQnaQnaQtaOYaOYaOYaOYaqJaxfaPaaPaaPaaPaaPaaPeazwaRMaRMaRMaRMaTjaIuaIuaIvaIwaIwaUBaUCaUDaPiazaayWayYazmazqazmazoayKayJayIayHayQayMayHayLayTaySaPiaURaUCaUSaUTaIwaItaIuaIuaSbaKcaPuaQTaKcaUUaKcaQTaKcaQUaLJaUVaKcaKcaKcaUWaSkazYaUXaUYaUZazVaTJaVbaINaVcaTMaVdaRhbadaRhaSuaVeaIRazUaDOaDOaDOapHapFaVgaVhaHwaViaVjaKAazQaDVaFXazNaSzaRpaRparTazMazLaDVazKaOFaSEazJazHaVwaNsahlahjahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaUcaVxaVyaVzaxZaVAbjabjjbjhbjlbjkbjXbjraWZaZIaSMaDpaDqaxkaOOaORaKdbhlbhfbhkbhfbhjbhLbhjbhjbhjbhrbhJaORbhnbiRbiQbiGbiFaVWaVXaVYaOOaCyaPebiWaWbaWcaWdaWdaWeaIuaIuaIuaIuaIuaWfaWgaWhaWiaCPaCSaCUaCzaCAaCBaCOaCZaCYaDbaDaaCWaCVaCXaCUaDdaDcaWzaWAaWBaWCaWDaWEaWFaIuaIuaIIdtFaScaSgaSeaKcaSfaSdaSeaQUaLJaTBaTBaWGaWHaINaSkaSkaSkaWIaSkaSkaTJaWKaINaOmaTMaRhaRhbadaRhaTPaOmaIRaDuaDvaWNaWOaDraDtaDsaDsaDsaDsaDsaDsaDEaDHaVoaVoaVoaVoaVoaDxaDyaDzaDAaDBaVtaVvaDDaOFaWWaNsahjahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9323,8 +9323,8 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjazbaqfazcatwazdazeazfbfvbfwazdatwaziazjaqfazbarkbcRbfxbfybfybfybfzcdBcdxcdycaocaocczccCaXhaYvbfDaYybfEaXhbHpbHpaRCaRCceNceAcfzcfrcfzcfzcenaYHceqbHlaZWaZWcetbHmbHiaYNcdRbaZbaZcdSbfWbfXbeGaIubfYaYQbfZaYRbgbdtQbgcbGMaynbgfaYQahjbxycltcltcltboXbHgbHhahjaYWbgjbHcbHdbgmbaxbgnbaxbHfaYWaXVaIubgpbeVbgqbgrbgsbgtbgubeVbgvcGZbgwcfEbgybgybgybgzboLbjpbgCbfbbgDbgEbMfbgEbgEbgFbHsbfcbfgbHtbfgbfgbfgccNbgMbgMbgNbgMbgObgObflbgPbgQbgRbfldombgTdombflcmCbpOcmCbfqdolbgVdolbfqbgWbgXbfqbHrbLEaMmaMnbhaahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjawLbdYaAaaAbaAbaAbaAbaAcbdZawLahjahjahjahlbcRbhbbcRbhcbfybhdbZKbZTbiQbZGbZHbZIbZJcaAcaAcaAcaAcaAcaAcaKcaJcazcaocajcaiaYHaYHaYHaYHaYHaYHcbiaYHaYHaYHcbCbhobGPbGQcaYbaZbaZbQRbhtbeFbeGaIubhuaYQbhvaYRaYRaYRaYRbGMaynbhxaYQahjbxycltboTboUboWcltbxmahjaYWaLTbbubGNbhDbaxbeRbaxbaxaYWaXVaIuaIubeVbhKbAIbGXbhNbhObhPbgybhSbgybhRbgybgybhQbhTbhVbhUbhWbfbbhXbgEccybgEbhXbhYbgEbfcbhZcGObiabibbfgbGVbgMbidbiebifbigbigbflbihbiibijbikbilbimbinbflbGWblsbltbfqbiqbirbiqbisbitbitbfqbBBbLEahlahjahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbivbiwbixbiybiybizbiAbbZbhgaOOcjkcjlcjccjccjccjacjacjacjacjacjacjacjjcbCbiHbiIbMvbiKbiLbiMbRmbiOaYHbiPciKciLciNciNciWbaZbaZbQRbaZaYNbeGaIuaXDblZbMDbMCbMBbMAaYRbMEaynaYQaYQahjbxycltboUcltboUcltbxmahjaYWaYWbMybhBbjnbaxbjobMxbMwaYWaXVaIubmucjwcjBcjGcjNbjubjvbjwbgybMKbMLcjmbjAbjAbMIbMHbMJbhUbjFbfbbhXbgEccyblfbhXbMGbjGbfcbjHbjIbjJbjKbfgccNbgMbOvbOabOabNObNYbjQbNNbjSbjSbjSbNZbNxbNwbflbNpblsbNGbfqbNBbNgbNcbMWbkdbkebfqbBBbLEbgZbgZbgZbgZahjahjahjahjahjahjahjahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbkfbcRbkgbkhbkhbkibcRbkjbkkaOObklbkmbklbklbklbkmbklaOOaOOaYHaYHaYHcilcbCbiNbiNcikbiNbiNbiNbRmbiNbkpbkqcimcitcixbRhbRhbRhbRhciwciucivciBciyciEbLCbLnbLmbLpbLoaYRbGMaynaYQahjahjbxycltboWcmWboTbLXbxmahjahjaYWaYYbMdaYWaYWaYWaYWbMcaYWbkTaIuaIubeVbkUbAIbAJbhNbhObkWbgybqLbLfbkYbkZblabMnbfbblcbMhblebfbbhXbgEciJciHbhXbMebgEbfcbfgbfgbfgbfgbfgccNbgMdqNblhblibljblkblldsVblnblobloblpbxEcHjbflbMpblsbMqbfqblublvblwbKOblydtabfqbBBbPqceYblBblCblBahlahlahlahlahlahlahjahjahjahjahjahjahjdsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahjahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRblDblEblFbkhblGblHbcRahlahjdsiblIblIblIblIblIblIblIahlahlblJblKblLcihcigchJchJcijchJchJchJchVchJchWchXcibcidblQblRblSblTbKKaYNblVaYNbKFblXbqFblZbmabmdbmdbmdbmdbmcbKHbmbahjahlbKJbKIbzTcltcltbJXbxmahlahjbmsbKgbKibJYbKdbKDbmsbBVbmsbmtaIuaIubeVbLgbAIbAJbmybmzbeVbmAbqLbLfbkZbmBbgybLcbfbbYFbLebLabfbbmGbLbbKXbKWbKZbKYbKUbKTbKRbKVbKRbKRbKRbKSbgMbmQbiedqCdqobmRbmSbmTbmUbmVbmVbmWbKQbmYbflbpPbpObKPbfqbnbbncbndbKObitbnebfqbBBbKNbKLchEchEchEchEchEchEbKMahlahlahjahlahlahjahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbkfbcRbkgbkhbkhbkibcRbkjbkkaOObklbkmbklbklbklbkmbklaOOaOOaYHaYHaYHcilcbCbiNbiNcikbiNbiNbiNbRmbiNbkpbkqcimcitcixbRhbRhbRhbRhciwciucivciBciyciEbLCbLnbLmbLpbLoaYRbGMaynaYQahjahjbxycltboWcmWboTbLXbxmahjahjaYWaYYbMdaYWaYWaYWaYWbMcaYWbkTaIuaIubeVbkUbAIbAJbhNbhObkWbgybqLbLfbkYbkZblabMnbfbblcbMhblebfbbhXbgEciJciHbhXbMebgEbfcbfgbfgbfgbfgbfgccNbgMdqNblhblibljblkblldsVblnblobloblpbxEbmTbflbMpblsbMqbfqblublvblwbKOblydtabfqbBBbPqceYblBblCblBahlahlahlahlahlahlahjahjahjahjahjahjahjdsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahjahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRblDblEblFbkhblGblHbcRahlahjdsiblIblIblIblIblIblIblIahlahlblJblKblLcihcigchJchJcijchJchJchJchVchJchWchXcibcidblQblRblSblTbKKaYNblVaYNbKFblXbqFblZbmabmdbmdbmdbmdbmcbKHbmbahjahlbKJbKIbzTcltcltbJXbxmahlahjbmsbKgbKibJYbKdbKDbmsbBVbmsbmtaIuaIubeVbLgbAIbAJbmybmzbeVbmAbqLbLfbkZbmBbgybLcbfbbYFbLebLabfbbmGbLbbKXbKWbKZbKYbKUbKTbKRbKVbKRbKRbKRbKSbgMbmQbiedqCdqobmRbmScjJbmUbmVbmVbmWbKQbmYbflbpPbpObKPbfqbnbbncbndbKObitbnebfqbBBbKNbKLchEchEchEchEchEchEbKMahlahlahjahlahlahjahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRbnfbngbnhbnibcRbcRbcRahlahldsiblIblIblIblIblIblIblIahlahlbnjbnkbiNchAchzchBchzchzchzchzchzchCchzchHchIchDchFbnrbnsbntbnubaZbJBbnwbnxbeGbnzchyblZblZbmbbnBbJvbnDbJwbumbmbahlahlbxybJxbvJbmhbyDbJybxmahlahlbmsbJzbJAbnNbmsbnObmsbBVbmsbmtaIuaIubeVbnQbAIbAJbnRbnSbeVbnTbJJbnUcHhbnXbgybJPbfbbJObJNbJMbfbbfcbodbfcbJLbJKboeboeboeboeboeboeboeboeccNbgMblgblhblibofbogbohboibojbojbojbmWbxEdsUbrebJIbrfbJHbrhbonboobonbJGbitboqbfqbJEbJCbJCbJCbJCbJCbJCbJCbJDbLEbgZbgZbgZahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIboubovbowboxbiNbiNbiNbRrboyboyboybiNbiNbiNbiNbkpbozbQRbUgbTQbUabUbbUcbTIbTPbaZboGbBNboIboJboKbNoaNpboNbBMboPbBLbBKbmbahjahlbxybBDcoCcoCcoCbCcbxmahlahjbmsbCabCbbpdbmsbpebmsbBVbmsbpfaIubRTbRUbRVbRWbTybTHbpibeVbpjbqLbhRcGAbplbpmbnTbnTbpobAKbAWbprbpsbptbgybAZbBgbpwbpxbpybBibBhbBjbslboeccNbgMbpGbpFbBkbBtbBvbflbpJbojbojbpKbpLbxEbpMbsAbBwbxSbBybrhbpQbLzbitbBzbpUbpVbfqbpWbpXbpXbpXbpXbpXbpXbpXbBBbLEbpYbfGbgZbgZahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbqabqbbqabqcbqdbiNbiNbRmbiNbiNbiNbiNbiNbqeaYHaYHbqfbRSbRhbRQbRRbqibqjbaZbqkbaZbqlbmtbnzbqnbqobqpbqqbqrbvGbqtbAHbqvbmbahlahlbxydrNcpgdrkcpgbbrbxmahlahlbqCbxgbqBbqCbqCbqCbqCbAGbqCbqEbqFbqFbeVbeVbAdbAabAbbqJbeVbqKbqLbAebrcbrcbrcbrcbrcbLhbzQbzWbzUbrcbzSbrcbLibzZbqObqPbqQbqRbqSbqTbqUboebApbAqboVbqXbqXbqZbArbAzbABbACbACbADbAEbxEbrdbrjbAfbAgbepbrhbrhbAhbrlbAibsubrhbfqbpXbpXbrkbswbrmbrnbrobpXbAFbqsbrrbrsbrtbgZahlahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9337,7 +9337,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahjahlblIblIblIblIblIblIblIahlahjahlahlahjahlahlahjahlbzBbzCbzDbzEbzFbzGbzHbzIbzJbzKbMtbMgbMFbMubLqbyrbzPbvwbnZbzRaIuaIuaIuaIuaIuaIubbAaIubrBaIuaIuaIuaIuaIubnYbeKbnVaIuaIuaIuaIuaIuaIuaIuaLpbLjaIuaIuaIuaIubvObzXbzYbsUbMMboObAcboOboRbuCboYbDTboZbAjbuCbAkbAlbAmbAnbAobuCbhRbqLbtvbtvbtvbtvbtvboeboeboeboeboeboebXKccNbotbxHbAsbAtbAubAvbAwbAxbxHbAyboHbAAbobbocbzsbribopborbolbombosbosbosbALbAMbxYbzAbANbzAbAObzAbzAbzAbpXbNhbLEbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlblIblIblIblIblIahlahlahjahlahlahjahlahlahjahlbwSbAPbAQbARbASbATbAUbyjbylbylbPebOWbyobznbpubAXbAYbvwbpbbBabBbbBbbBbbBcbBbbBbbBdbBbbBeaIubBfbNMbOybOybOUbOQbOVbBlbBmbBnaWEaWEbBoaWEbBpbOCaWEbBrbBsbpcbBuaIuaIubuCbpRbpIbBxbpHbpTbuCbuDbpSbpZbuCbuCbuCbuCbuCbuCbuCbuCbhRbqLbgybBCbqmbuBbBEbBFbBGbBHbBIbBJbBFbXKccNbYQbxHbBObBPbBQbBRbBSbBTbxHbBUbpvbBWbBXbBYbBZbribpzbpAbvdbpBbpCbpDbpEbCibCjbxYbzAbzAbzAbCkbzAbzAbzAbpXbNhbqsbClbrsbrtbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjbwSbwSbCmbCnbCnbCobwSbwSbCpbCqbENbEMbvwbvwbvwbvwbvwbvwbkHbCvaTkaTkaTkaTkbCwbCwbCwbCwbCwbCwbCwbCwbCwbCwbkGbkFbkEbCAbCAbCAbCAbCAbCCbCAbCAbqxbCAbCDbCEbCDaIzaJVbCGbuCbkSbkRbCJbkVblqbuCbCMblrblbbkXblmbldbCPbCQbCRbCSbuDbkIbkJbMzbMzbggbkObkPbkLbkNbCWbCVblWbBFbXKccNbDcbDcbDcbDcbDcbDcbDcbDcbDcbDdbDdbDdbDdbDdbDdblUblxblzbvdbvdbvdbvdbvdbvdbvdbxYbpXbpXbpXbpXbpXbpXbpXbpXbNhbLEaDGaCqbgZbgZahjahjahjdsidsidsidsidsidsidsidsiahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlbDjahlahlahlahjahlahlbwWbDkbDlbHjbGObGEbGlbIdbHvbHnbHkbIhbIvahlahlahjahlbCwcGxbDvbDwbDxbDybmnbmobmpbmqbmHbmFbmIbCAbmKbmJbmLbFhbmvbFhbFhbIIbmCbmxbmEbCDbCDbCDbCDbuCbmMbxobyTbxobnybuCbDVbDTbnvbmXbmPbmObmPbmPbnFbDYbDZbnEbnCbnCbnCbnJbnHbqMbEcbEdbEebEfbEgbBFbXKccNbDcbEhbEhbEhbEibEhbEhbEhbDcbEjbEjbElbEjbEjbDdbnLbnKbepaKtbEobEpbEqbErbEsbEtbEubEvbEwbExbEyaQebnMciIciIciObnPbEobEobgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlbDjahlahlahlahjahlahlbwWbDkbDlbHjbGObGEbGlbIdbHvbHnbHkbIhbIvahlahlahjahlbCwcjKbDvbDwbDxbDybmnbmobmpbmqbmHbmFbmIbCAbmKbmJbmLbFhbmvbFhbFhbIIbmCbmxbmEbCDbCDbCDbCDbuCbmMbxobyTbxobnybuCbDVbDTbnvbmXbmPbmObmPbmPbnFbDYbDZbnEbnCbnCbnCbnJbnHbqMbEcbEdbEebEfbEgbBFbXKccNbDcbEhbEhbEhbEibEhbEhbEhbDcbEjbEjbElbEjbEjbDdbnLbnKbepaKtbEobEpbEqbErbEsbEtbEubEvbEwbExbEyaQebnMciIciIciObnPbEobEobgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbEEbEFbEGbEFbEHahlahjahlbwWbwWbEIbylbQcbQbbQtbQebPGbPGbPPbPJbPzbppahjbEPbEQbERbESbETbDBbEUbDBbEVbDBbDBbDBbCwbQLbQMbtxbCAbtwbtubFebFfbFgbFhbFibqxbCAbFjbFkbtDbFmbuJbFobFpbuObxobFrbxoblrbuxbuEbuzbuFbuCbFvbuIbxobxobusbFzbnTbnTbnTbnTbnTbudbuobLhbupburbFCbCVbucbBFbXKccNbDcbEhbEhbEhbEhbEhbEhbEhbDcbFHbubbFJbFKbFLbDdbtUbtZbuabtXbtYbHqbtKbFQbFQbFQbFQbFRbTubFTbEybgZbLFbtIbQxbQxbtJbFVbFWahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbGabGbbGabFZbGcbGdbGebwWbGfbylbGgbQCbQvbGibwWbCvbGjbCvbCvboEbqNahlbGmbGnbGobGpbDBbDBbGqbDBdnRbGsbGtbDBbCwbQLbuQbuRbCAbuPbGybGzbGAbGBbFhbuUbqxbsfbuScdQbuTcdQbwebGKbuCbwgbmPbwfbmPbvVbsUbvSbmObvWbuCbGRbxobxobxobGSbGTbnTbGUbwjbwkbwibggbwhbqMbGYbCVbCVbGZbHabHbccPbvcbDcbEhbEhbEhbEhbEhbEhbEhbDcbHebuZbuYbvubvxbvAbvHbvIbscbvRbHobFQbvebFQbFQbFQbFQbFQbFQbFQbEybuXbuWbuVbHwbHxbHybHzbHAahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbHBbFXbHCbFXbHBahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlbEGbHDbHEbHDbEGbHFbHGbHHbwWbHIbylbHJbylbylbGibwWbHKbHLbELbCvboEboFahjbGmbHNbHObHPbHQbHRbHQbHQbHSbHTbHQbHQbHUbqubeLbHXbCAbCBbCAbCAbCAbCAbHYbPxbPmbHZbIabIbbIcbrObIcbIfbuCbrMbrLbIibrNbrGbuCbrKbrJbrpbuCbIobrEbIqbrgbIsbItbnTbgdbrbbrcbqWbqYbrabIxbIybIzbCVbCVbIAbBFbsfccNbDcbDcbICbEhbEhbIDbICbDcbDcbIEbIFbIGbsebIHbDdbsdbhibscbsabsbbrVbrVbrWbrXbrUbrVbrPbrQbqGbqDbqIbqHbqVbPybIWbIXbIYbIZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJabJbbJcbJdbJebJbbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl @@ -9567,7 +9567,7 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyVcyScyJcyFcyUcyNcyNcyNcyNcyNcyNcyNcyUcyFcyJcyKcyWahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyVcyHcyXcyYcyZczaczbcyNczccyUcyNczdczecyHcyWahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyBczfczgczhczicyNcyUcyUcyNczdcyBahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyBczjczkczkczbcyNczdczlcyNczdcyTczmczmczmczmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyBckLczkczkczbcyNczdczlcyNczdcyTczmczmczmczmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyBcznczkczkczocyNczdczlcyNcyNcyFczmczmczmczmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyDcyHcyHcyHcyXcyNcyUcyUcyNczdczpczmczmczmczmahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlcyBczqcyNczqcyBcyNczdczlcyNczdczrahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl diff --git a/code/ATMOSPHERICS/components/unary/unary_base.dm b/code/ATMOSPHERICS/components/unary/unary_base.dm index 962ed99f871..b19b3a82531 100644 --- a/code/ATMOSPHERICS/components/unary/unary_base.dm +++ b/code/ATMOSPHERICS/components/unary/unary_base.dm @@ -36,12 +36,14 @@ Iconnery if(showpipe) var/state + var/col if(node) state = "pipe_intact" + col = node.pipe_color else state = "pipe_exposed" - underlays += getpipeimage('icons/obj/atmospherics/binary_devices.dmi', state, initialize_directions, node.pipe_color) + underlays += getpipeimage('icons/obj/atmospherics/binary_devices.dmi', state, initialize_directions, col) /obj/machinery/atmospherics/unary/hide(var/intact) showpipe = !intact diff --git a/code/ATMOSPHERICS/pipes/tank.dm b/code/ATMOSPHERICS/pipes/tank.dm index 658bc60381f..0c5dfe53a23 100644 --- a/code/ATMOSPHERICS/pipes/tank.dm +++ b/code/ATMOSPHERICS/pipes/tank.dm @@ -15,41 +15,57 @@ Atmospheric Tanks initialize_directions = SOUTH density = 1 can_unwrench = 0 - var/obj/machinery/atmospherics/node1 + var/obj/machinery/atmospherics/node + var/showpipe = 0 /obj/machinery/atmospherics/pipe/tank/New() initialize_directions = dir ..() +/obj/machinery/atmospherics/pipe/tank/hide(var/intact) + showpipe = !intact + update_icon() + + ..(intact) /obj/machinery/atmospherics/pipe/tank/Destroy() - if(node1) - node1.disconnect(src) + if(node) + node.disconnect(src) ..() /obj/machinery/atmospherics/pipe/tank/pipeline_expansion() - return list(node1) + return list(node) /obj/machinery/atmospherics/pipe/tank/update_icon() - if(node1) - icon_state = "intact" - dir = get_dir(src, node1) - else - icon_state = "exposed" + underlays.Cut() + if(showpipe) + var/state + var/col + if(node) + state = "pipe_intact" + col = node.pipe_color + else + state = "pipe_exposed" + + underlays += getpipeimage('icons/obj/atmospherics/pipe_tank.dmi', state, initialize_directions, col) /obj/machinery/atmospherics/pipe/tank/initialize() var/connect_direction = dir for(var/obj/machinery/atmospherics/target in get_step(src,connect_direction)) if(target.initialize_directions & get_dir(target,src)) - node1 = target + node = target break + + if(level == 2) + showpipe = 1 + update_icon() /obj/machinery/atmospherics/pipe/tank/disconnect(obj/machinery/atmospherics/reference) - if(reference == node1) - if(istype(node1, /obj/machinery/atmospherics/pipe)) + if(reference == node) + if(istype(node, /obj/machinery/atmospherics/pipe)) del(parent) - node1 = null + node = null update_icon() diff --git a/code/controllers/supply_shuttle.dm b/code/controllers/supply_shuttle.dm index b9265cecc5e..defa56ba515 100644 --- a/code/controllers/supply_shuttle.dm +++ b/code/controllers/supply_shuttle.dm @@ -420,8 +420,8 @@ var/global/datum/controller/supply_shuttle/supply_shuttle if(temp) dat = temp else - dat += {"Shuttle Location: [supply_shuttle.moving ? "Moving to station ([supply_shuttle.eta] Mins.)":supply_shuttle.at_station ? "Station":"Dock"]
-
Supply Points: [supply_shuttle.points]
+ dat += {"
Shuttle Location: [supply_shuttle.moving ? "Moving to station ([supply_shuttle.eta] Mins.)":supply_shuttle.at_station ? "Station":"Dock"]
+
Supply Points: [supply_shuttle.points]

\nRequest items

View approved orders

@@ -451,22 +451,21 @@ var/global/datum/controller/supply_shuttle/supply_shuttle //all_supply_groups //Request what? last_viewed_group = "categories" - temp = "Supply points: [supply_shuttle.points]
" - temp += "Main Menu


" + temp = "
Supply points: [supply_shuttle.points]
" + temp += "Main Menu

" temp += "Select a category

" for(var/cat in all_supply_groups ) temp += "[get_supply_group_name(cat)]
" else last_viewed_group = href_list["order"] var/cat = text2num(last_viewed_group) - temp = "Supply points: [supply_shuttle.points]
" - temp += "Back to all categories


" + temp = "
Supply points: [supply_shuttle.points]
" + temp += "Back to all categories

" temp += "Request from: [get_supply_group_name(cat)]

" for(var/supply_name in supply_shuttle.supply_packs ) var/datum/supply_packs/N = supply_shuttle.supply_packs[supply_name] if(N.hidden || N.contraband || N.group != cat) continue //Have to send the type instead of a reference to temp += "[supply_name] Cost: [N.cost]
" //the obj because it would get caught by the garbage - else if (href_list["doorder"]) if(world.time < reqtime) say("[world.time - reqtime] seconds remaining until another requisition form may be printed.") @@ -556,19 +555,20 @@ var/global/datum/controller/supply_shuttle/supply_shuttle if (temp) dat = temp else - dat += {"
Supply shuttle
+ dat += {"
Supply shuttle
\nLocation: [supply_shuttle.moving ? "Moving to station ([supply_shuttle.eta] Mins.)":supply_shuttle.at_station ? "Station":"Away"]
-
\nSupply Points: [supply_shuttle.points]
\n
+
\nSupply Points: [supply_shuttle.points]
\n

[supply_shuttle.moving ? "\n*Must be away to order items*
\n
":supply_shuttle.at_station ? "\n*Must be away to order items*
\n
":"\nOrder items
\n
"] [supply_shuttle.moving ? "\n*Shuttle already called*
\n
":supply_shuttle.at_station ? "\nSend away
\n
":"\nSend to station
\n
"] [supply_shuttle.shuttle_loan ? (supply_shuttle.shuttle_loan.dispatched ? "\n*Shuttle loaned to Centcom*
\n
" : "\nLoan shuttle to Centcom (5 mins duration)
\n
") : "\n*No pending external shuttle requests*
\n
"] \nView requests
\n
\nView orders
\n
\nClose
-
\nCentral Command messages
[supply_shuttle.centcom_message ? supply_shuttle.centcom_message : "Remember to stamp and send back the supply manifests."]"} +
\nCentral Command messages:
[supply_shuttle.centcom_message ? supply_shuttle.centcom_message : "Remember to stamp and send back the supply manifests."]"} - user << browse(dat, "window=computer;size=700x450") - onclose(user, "computer") + var/datum/browser/popup = new(user, "computer", "Supply Shuttle Console", 700, 455) + popup.set_content(dat) + popup.open() return /obj/machinery/computer/supplycomp/attackby(I as obj, user as mob) @@ -635,16 +635,16 @@ var/global/datum/controller/supply_shuttle/supply_shuttle //all_supply_groups //Request what? last_viewed_group = "categories" - temp = "Supply points: [supply_shuttle.points]
" - temp += "Main Menu


" + temp = "
Supply points: [supply_shuttle.points]
" + temp += "Main Menu

" temp += "Select a category

" for(var/cat in all_supply_groups ) temp += "[get_supply_group_name(cat)]
" else last_viewed_group = href_list["order"] var/cat = text2num(last_viewed_group) - temp = "Supply points: [supply_shuttle.points]
" - temp += "Back to all categories


" + temp = "
Supply points: [supply_shuttle.points]
" + temp += "Back to all categories

" temp += "Request from: [get_supply_group_name(cat)]

" for(var/supply_name in supply_shuttle.supply_packs ) var/datum/supply_packs/N = supply_shuttle.supply_packs[supply_name] diff --git a/code/datums/diseases/dna_spread.dm b/code/datums/diseases/dna_spread.dm index 764119b587c..df96b3ca231 100644 --- a/code/datums/diseases/dna_spread.dm +++ b/code/datums/diseases/dna_spread.dm @@ -3,8 +3,8 @@ max_stages = 4 spread = "On contact" spread_type = CONTACT_GENERAL - cure = "Ryetalin" - cure = "ryetalyn" + cure = "Ryetalyn" + cure_id = "ryetalyn" curable = 0 agent = "S4E1 retrovirus" affected_species = list("Human") diff --git a/code/datums/helper_datums/getrev.dm b/code/datums/helper_datums/getrev.dm index 4a008ed31de..91826c2d749 100644 --- a/code/datums/helper_datums/getrev.dm +++ b/code/datums/helper_datums/getrev.dm @@ -38,4 +38,5 @@ client/verb/showrevinfo() src << "Protect Assistant Role From Traitor: [config.protect_assistant_from_antagonist]" src << "Enforce Human Authority: [config.enforce_human_authority]" src << "Allow Latejoin Antagonists: [config.allow_latejoin_antagonists]" - return \ No newline at end of file + src << "Protect Assistant From Antagonist: [config.protect_assistant_from_antagonist]" + return diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm index 5bd472bfc45..329e9db7804 100644 --- a/code/game/area/areas.dm +++ b/code/game/area/areas.dm @@ -381,12 +381,15 @@ // find the turf to move things to var/turf/D = locate(T.x, throwy - 1, T.z) for(var/atom/movable/AM as mob|obj in T) - //mobs take damage - if(istype(AM, /mob/living)) - var/mob/living/living_mob = AM - living_mob.Paralyse(10) - living_mob.take_organ_damage(80) - living_mob.anchored = 0 //Unbuckle them so they can be moved + if(ismob(AM)) + if(istype(AM, /mob/living))//mobs take damage + var/mob/living/living_mob = AM + living_mob.Paralyse(10) + living_mob.take_organ_damage(80) + living_mob.anchored = 0 //Unbuckle them so they can be moved + else + continue + //Anything not bolted down is moved, everything else is destroyed if(!AM.anchored) AM.Move(D, SOUTH) @@ -395,5 +398,7 @@ if(istype(T, /turf/simulated)) del(T) - for(var/atom/movable/bug in src) // If someone (or something) is somehow still in the shuttle's docking area... - qdel(bug) + /*for(var/atom/movable/bug in src) // If someone (or something) is somehow still in the shuttle's docking area... + if(ismob(bug)) + continue + qdel(bug)*/ diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 170b3f8ba4e..3688fa4ca3d 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -380,3 +380,5 @@ var/list/blood_splatter_icons = list() /atom/proc/handle_slip() return +/atom/proc/singularity_act() + return diff --git a/code/game/gamemodes/changeling/powers/humanform.dm b/code/game/gamemodes/changeling/powers/humanform.dm index 06c59138291..951cdf80f54 100644 --- a/code/game/gamemodes/changeling/powers/humanform.dm +++ b/code/game/gamemodes/changeling/powers/humanform.dm @@ -20,7 +20,8 @@ var/datum/dna/chosen_dna = changeling.get_dna(chosen_name) if(!chosen_dna) return - + if(!user || user.notransform) + return 0 user << "We transform our appearance." user.dna = chosen_dna diff --git a/code/game/gamemodes/changeling/powers/lesserform.dm b/code/game/gamemodes/changeling/powers/lesserform.dm index 10f61e1b6e0..b9220f4044b 100644 --- a/code/game/gamemodes/changeling/powers/lesserform.dm +++ b/code/game/gamemodes/changeling/powers/lesserform.dm @@ -8,6 +8,8 @@ //Transform into a monkey. /obj/effect/proc_holder/changeling/lesserform/sting_action(var/mob/living/carbon/human/user) + if(!user || user.notransform) + return 0 user << "Our genes cry out!" user.monkeyize(TR_KEEPITEMS | TR_KEEPIMPLANTS | TR_KEEPDAMAGE | TR_KEEPSE | TR_KEEPSRC) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index fb07c3c966c..c4eede9feff 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -57,7 +57,7 @@ var/list/sacrificed = list() if (istype(user, /mob/living)) user.take_overall_damage(5, 0) qdel(src) - for(var/mob/living/carbon/C in orange(1,src)) + for(var/mob/living/C in orange(1,src)) if(iscultist(C) && !C.stat) culcount++ if(user.loc==src.loc) @@ -98,13 +98,13 @@ var/list/sacrificed = list() /////////////////////////////////////////THIRD RUNE /obj/effect/rune/proc/convert() - var/list/mob/living/carbon/human/cultsinrange = list() + var/list/mob/living/cultsinrange = list() for(var/mob/living/carbon/M in src.loc) if(iscultist(M)) continue if(M.stat==2) continue - for(var/mob/living/carbon/C in orange(1,src)) + for(var/mob/living/C in orange(1,src)) if(iscultist(C) && !C.stat) //converting requires three cultists cultsinrange += C C.say("Mah[pick("'","`")]weyh pleggh at e'ntrath!") @@ -792,12 +792,12 @@ var/list/sacrificed = list() /obj/effect/rune/proc/freedom() var/mob/living/user = usr - var/list/mob/living/carbon/cultists = new + var/list/mob/living/cultists = new for(var/datum/mind/H in ticker.mode.cult) if (istype(H.current,/mob/living/carbon)) cultists+=H.current - var/list/mob/living/carbon/users = new - for(var/mob/living/carbon/C in orange(1,src)) + var/list/mob/living/users = new + for(var/mob/living/C in orange(1,src)) if(iscultist(C) && !C.stat) users+=C if(users.len>=1) @@ -832,7 +832,7 @@ var/list/sacrificed = list() cultist.loc:locked = 0 if(istype(cultist.loc, /obj/machinery/dna_scannernew)&&cultist.loc:locked) cultist.loc:locked = 0 - for(var/mob/living/carbon/C in users) + for(var/mob/living/C in users) user.take_overall_damage(15, 0) C.say("Khari[pick("'","`")]d! Gual'te nikka!") qdel(src) @@ -846,8 +846,8 @@ var/list/sacrificed = list() for(var/datum/mind/H in ticker.mode.cult) if (istype(H.current,/mob/living/carbon)) cultists+=H.current - var/list/mob/living/carbon/users = new - for(var/mob/living/carbon/C in orange(1,src)) + var/list/mob/living/users = new + for(var/mob/living/C in orange(1,src)) if(iscultist(C) && !C.stat) users+=C if(users.len>=3) @@ -862,7 +862,7 @@ var/list/sacrificed = list() cultist.loc = src.loc cultist.Weaken(5) cultist.regenerate_icons() - for(var/mob/living/carbon/human/C in orange(1,src)) + for(var/mob/living/C in orange(1,src)) if(iscultist(C) && !C.stat) C.say("N'ath reth sh'yro eth d[pick("'","`")]rekkathnor!") C.take_overall_damage(25, 0) diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index df95f40b30b..419f94c5b71 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -17,7 +17,7 @@ antag_flag = BE_REV restricted_jobs = list("Security Officer", "Warden", "Detective", "AI", "Cyborg","Captain", "Head of Personnel", "Head of Security", "Chief Engineer", "Research Director", "Chief Medical Officer") required_players = 20 - required_enemies = 3 + required_enemies = 1 recommended_enemies = 3 var/finished = 0 @@ -55,17 +55,12 @@ if(player.assigned_role == job) antag_candidates -= player - var/list/heads = get_living_heads() - if(heads.len < max_headrevs) - max_headrevs = heads.len - for (var/i=1 to max_headrevs) if (antag_candidates.len==0) break var/datum/mind/lenin = pick(antag_candidates) antag_candidates -= lenin head_revolutionaries += lenin - log_game("[lenin.key] (ckey) has been selected as a head rev") if((head_revolutionaries.len < required_enemies)||(!head_check)) return 0 @@ -76,9 +71,15 @@ /datum/game_mode/revolution/post_setup() var/list/heads = get_living_heads() + while(heads.len < head_revolutionaries.len) //das vi danya + var/datum/mind/trotsky = pick(head_revolutionaries) + antag_candidates += trotsky + head_revolutionaries -= trotsky + heads_to_kill = heads for(var/datum/mind/rev_mind in head_revolutionaries) + log_game("[rev_mind.key] (ckey) has been selected as a head rev") for(var/datum/mind/head_mind in heads) mark_for_death(rev_mind, head_mind) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 657c55ffec4..fd0f7ae848e 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -345,15 +345,15 @@ Auto Patrol: []"}, if(!src.arrest_type) if(!src.target.handcuffed) //he's not cuffed? Try to cuff him! mode = SECBOT_ARREST - playsound(src.loc, 'sound/weapons/handcuffs.ogg', 30, 1, -2) - target.visible_message("[src] is trying to put handcuffs on [src.target]!",\ - "[src] is trying to put handcuffs on [src.target]!") + playsound(src.loc, 'sound/weapons/cablecuff.ogg', 30, 1, -2) + target.visible_message("[src] is trying to put zipties on [src.target]!",\ + "[src] is trying to put zipties on [src.target]!") spawn(60) if( !src.Adjacent(target) || !isturf(src.target.loc) ) //if he's in a closet or not adjacent, we cancel cuffing. return if(!src.target.handcuffed) - src.target.handcuffed = new /obj/item/weapon/restraints/handcuffs(src.target) + src.target.handcuffed = new /obj/item/weapon/restraints/handcuffs/cable/zipties/used(src.target) target.update_inv_handcuffed(0) //update the handcuffs overlay back_to_idle() else diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index c4e52d403ad..f68c7bf7c36 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -34,6 +34,37 @@ proc/crewmonitor(mob/user,var/atom/source) + var/jobs[0] + jobs["Captain"] = 00 + jobs["Head of Personnel"] = 50 + jobs["Head of Security"] = 10 + jobs["Warden"] = 11 + jobs["Security Officer"] = 12 + jobs["Detective"] = 13 + jobs["Chief Medical Officer"] = 20 + jobs["Chemist"] = 21 + jobs["Geneticist"] = 22 + jobs["Virologist"] = 23 + jobs["Medical Doctor"] = 24 + jobs["Research Director"] = 30 + jobs["Scientist"] = 31 + jobs["Roboticist"] = 32 + jobs["Chief Engineer"] = 40 + jobs["Station Engineer"] = 41 + jobs["Atmospheric Technician"] = 42 + jobs["Quartermaster"] = 51 + jobs["Shaft Miner"] = 52 + jobs["Cargo Technician"] = 53 + jobs["Bartender"] = 61 + jobs["Chef"] = 62 + jobs["Botanist"] = 63 + jobs["Librarian"] = 64 + jobs["Chaplain"] = 65 + jobs["Clown"] = 66 + jobs["Mime"] = 67 + jobs["Janitor"] = 68 + jobs["Assistant"] = 99 //Unknowns/custom jobs should appear after civilians, and before assistants + var/t = "" var/list/logs = list() var/list/tracked = crewscan() @@ -44,17 +75,30 @@ proc/crewmonitor(mob/user,var/atom/source) if(istype(H.w_uniform, /obj/item/clothing/under)) var/obj/item/clothing/under/U = H.w_uniform if(pos && pos.z == srcturf.z && U.sensor_mode) - var/obj/item/ID = null + var/obj/item/weapon/card/id/I = null if(H.wear_id) - ID = H.wear_id.GetID() - + I = H.wear_id.GetID() var/life_status = "[H.stat > 1 ? "Deceased" : "Living"]" - if(ID) - log += "" + if(I) + var/style = null + var/ijob = jobs[I.assignment] + if(ijob % 10 == 0) + style += "font-weight: bold; " //head roles always end in 0 + if(ijob >= 10 && ijob < 20) + style += "color: #E74C3C; " //security + if(ijob >= 20 && ijob < 30) + style += "color: #3498DB; " //medical + if(ijob >= 30 && ijob < 40) + style += "color: #9B59B6; " //science + if(ijob >= 40 && ijob < 50) + style += "color: #F1C40F; " //engineering + if(ijob >= 50 && ijob < 60) + style += "color: #F39C12; " //cargo + log += "[ijob]]" //ijob does not get displayed, nor does it take up space, it's just used for the positioning of an entry else - log += "" + log += "80" var/damage_report if(U.sensor_mode > 1) @@ -62,13 +106,13 @@ proc/crewmonitor(mob/user,var/atom/source) var/dam2 = round(H.getToxLoss(),1) var/dam3 = round(H.getFireLoss(),1) var/dam4 = round(H.getBruteLoss(),1) - damage_report = "([dam1]/[dam2]/[dam3]/[dam4])" + damage_report = "([dam1]/[dam2]/[dam3]/[dam4])" switch(U.sensor_mode) if(1) - log += "" + log += "" if(2) - log += "" + log += "" if(3) var/area/player_area = get_area(H) log += "" diff --git a/code/game/machinery/computer/shuttle.dm b/code/game/machinery/computer/shuttle.dm index 414bd7a56f2..2f8881e4c4c 100644 --- a/code/game/machinery/computer/shuttle.dm +++ b/code/game/machinery/computer/shuttle.dm @@ -38,8 +38,9 @@ log_game("[user.ckey]([user]) has authorized early shuttle launch in ([x],[y],[z])") minor_announce("[src.auth_need - src.authorized.len] more authorization(s) needed until shuttle is launched early",null,1) else - message_admins("[key_name(user.client)](?) has launched the emergency shuttle in ([x],[y],[z] - JMP)",0,1) - log_game("[user.ckey]([user]) has launched the emergency shuttle in ([x],[y],[z])") + var/time = emergency_shuttle.timeleft() + message_admins("[key_name(user.client)](?) has launched the emergency shuttle in ([x],[y],[z] - JMP) [time] seconds before launch.",0,1) + log_game("[user.ckey]([user]) has launched the emergency shuttle in ([x],[y],[z]) [time] seconds before launch.") minor_announce("The emergency shuttle will launch in 10 seconds",null,1) emergency_shuttle.online = 1 emergency_shuttle.settimeleft(10) @@ -62,8 +63,9 @@ if(!emagged && emergency_shuttle.location == DOCKED && user.get_active_hand() == W) switch(choice) if("Launch") - message_admins("[key_name(user.client)](?) has emagged the emergency shuttle in ([x],[y],[z] - JMP)",0,1) - log_game("[user.ckey]([user]) has emagged the emergency shuttle in ([x],[y],[z])") + var/time = emergency_shuttle.timeleft() + message_admins("[key_name(user.client)](?) has emagged the emergency shuttle in ([x],[y],[z] - JMP) [time] seconds before launch.",0,1) + log_game("[user.ckey]([user]) has emagged the emergency shuttle in ([x],[y],[z]) [time] seconds before launch.") minor_announce("The emergency shuttle will launch in 10 seconds", "SYSTEM ERROR:",null,1) emergency_shuttle.settimeleft( 10 ) emagged = 1 diff --git a/code/game/machinery/flasher.dm b/code/game/machinery/flasher.dm index e37f2cae4ed..c75dd415940 100644 --- a/code/game/machinery/flasher.dm +++ b/code/game/machinery/flasher.dm @@ -5,7 +5,7 @@ desc = "A wall-mounted flashbulb device." icon = 'icons/obj/stationobjs.dmi' icon_state = "mflash1" - var/obj/item/device/flash/bulb = null + var/obj/item/device/flash/handheld/bulb = null var/id = null var/range = 2 //this is roughly the size of brig cell var/last_flash = 0 //Don't want it getting spammed like regular flashes @@ -23,7 +23,7 @@ density = 1 /obj/machinery/flasher/New() - bulb = new /obj/item/device/flash(src) + bulb = new /obj/item/device/flash/handheld(src) /obj/machinery/flasher/power_change() if (powered() && anchored && bulb) @@ -40,11 +40,13 @@ /obj/machinery/flasher/attackby(obj/item/weapon/W, mob/user) if (istype(W, /obj/item/weapon/wirecutters)) if (bulb) + user.visible_message("[user] begins to disconnect [src]'s flashbulb.", "You begin to disconnect [src]'s flashbulb.") playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) - user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb!") - bulb.loc = src.loc - bulb = null - power_change() + if(do_after(user, 30)) + user.visible_message("[user] has disconnected [src]'s flashbulb!", "You disconnect [src]'s flashbulb!") + bulb.loc = src.loc + bulb = null + power_change() else if (istype(W, /obj/item/device/flash/handheld)) if (!bulb) @@ -174,4 +176,4 @@ icon_state = "launcherbtt" active = 0 - return + return diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 52e3037b635..d1892e8f628 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -364,9 +364,9 @@ emagged = 1 on=0 - sleep(rand(60,600)) - if(!on) - on=1 + spawn(rand(60,600)) + if(!on) + on=1 ..() diff --git a/code/game/machinery/vending.dm b/code/game/machinery/vending.dm index c22139b8496..70058da3def 100644 --- a/code/game/machinery/vending.dm +++ b/code/game/machinery/vending.dm @@ -715,7 +715,7 @@ icon_state = "sec" icon_deny = "sec-deny" req_access_txt = "1" - products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/restraints/handcuffs/cable/zipties = 10,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash = 5, + products = list(/obj/item/weapon/restraints/handcuffs = 8,/obj/item/weapon/restraints/handcuffs/cable/zipties = 10,/obj/item/weapon/grenade/flashbang = 4,/obj/item/device/flash/handheld = 5, /obj/item/weapon/reagent_containers/food/snacks/donut/normal = 12,/obj/item/weapon/storage/box/evidence = 6,/obj/item/device/flashlight/seclite = 4) contraband = list(/obj/item/clothing/glasses/sunglasses = 2,/obj/item/weapon/storage/fancy/donut_box = 2) @@ -858,7 +858,7 @@ icon_state = "robotics" icon_deny = "robotics-deny" req_access_txt = "29" - products = list(/obj/item/clothing/suit/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash = 4, + products = list(/obj/item/clothing/suit/labcoat = 4,/obj/item/clothing/under/rank/roboticist = 4,/obj/item/stack/cable_coil = 4,/obj/item/device/flash/handheld = 4, /obj/item/weapon/stock_parts/cell/high = 12, /obj/item/device/assembly/prox_sensor = 3,/obj/item/device/assembly/signaler = 3,/obj/item/device/healthanalyzer = 3, /obj/item/weapon/scalpel = 2,/obj/item/weapon/circular_saw = 2,/obj/item/weapon/tank/anesthetic = 2,/obj/item/clothing/mask/breath/medical = 5, /obj/item/weapon/screwdriver = 5,/obj/item/weapon/crowbar = 5) diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 0cc1312bb81..84099ef3522 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -3,6 +3,9 @@ unacidable = 1 var/i_attached//Added for possible image attachments to objects. For hallucinations and the like. +obj/effect/overlay/singularity_act() + return + /obj/effect/overlay/beam//Not actually a projectile, just an effect. name="beam" icon='icons/effects/beam.dmi' diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm index e2ff15d79ef..6c2d4fc600c 100644 --- a/code/game/objects/items/robot/robot_parts.dm +++ b/code/game/objects/items/robot/robot_parts.dm @@ -51,8 +51,8 @@ icon_state = "head" construction_time = 350 construction_cost = list("metal"=5000) - var/obj/item/device/flash/flash1 = null - var/obj/item/device/flash/flash2 = null + var/obj/item/device/flash/handheld/flash1 = null + var/obj/item/device/flash/handheld/flash2 = null /obj/item/robot_parts/robot_suit name = "cyborg endoskeleton" diff --git a/code/game/objects/items/weapons/storage/backpack.dm b/code/game/objects/items/weapons/storage/backpack.dm index 776dca795a5..0f09d860cca 100644 --- a/code/game/objects/items/weapons/storage/backpack.dm +++ b/code/game/objects/items/weapons/storage/backpack.dm @@ -62,6 +62,11 @@ crit_fail = 1 icon_state = "brokenpack" +/obj/item/weapon/storage/backpack/holding/singularity_act(current_size) + var/dist = max((current_size - 2),1) + explosion(src.loc,(dist),(dist*2),(dist*4)) + return + /obj/item/weapon/storage/backpack/santabag name = "Santa's Gift Bag" diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index f45a8b5766f..20805e43bdf 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -134,3 +134,8 @@ var/obj/Loc=loc Loc.on_log() +/obj/singularity_act() + ex_act(1.0) + if(src && isnull(gc_destroyed)) + qdel(src) + return 2 \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 98dc42df1f0..4903468b036 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -70,8 +70,10 @@ ..() sleep(2) new /obj/item/clothing/suit/armor/vest(src) - new /obj/item/clothing/suit/armor/hos/jensen(src) - new /obj/item/clothing/head/HoS/dermal(src) + new /obj/item/clothing/under/hosformalfem(src) + new /obj/item/clothing/under/hosformalmale(src) + new /obj/item/clothing/suit/armor/hos/trenchcoat(src) + new /obj/item/clothing/head/HoS/drill(src) new /obj/item/weapon/cartridge/hos(src) new /obj/item/device/radio/headset/heads/hos/alt(src) new /obj/item/clothing/glasses/hud/security/eyepatch(src) diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm index b3df16856cb..fc7b6800bd5 100644 --- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm +++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm @@ -38,17 +38,6 @@ new /obj/item/clothing/head/beret/sec(src) return -/obj/structure/closet/wardrobe/hos - name = "\proper head of security's wardrobe" - icon_state = "red" - icon_closed = "red" - -/obj/structure/closet/wardrobe/hos/New() - new /obj/item/clothing/under/hosformalfem(src) - new /obj/item/clothing/under/hosformalmale(src) - new /obj/item/clothing/under/rank/head_of_security/jensen(src) - return - /obj/structure/closet/wardrobe/pink name = "pink wardrobe" icon_state = "pink" @@ -72,6 +61,8 @@ new /obj/item/clothing/under/color/black(src) new /obj/item/clothing/under/color/black(src) new /obj/item/clothing/under/color/black(src) + if(prob(25)) + new /obj/item/clothing/suit/jacket/leather(src) new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/clothing/shoes/sneakers/black(src) new /obj/item/clothing/shoes/sneakers/black(src) @@ -328,6 +319,10 @@ icon_closed = "mixed" /obj/structure/closet/wardrobe/mixed/New() + if(prob(25)) + new /obj/item/clothing/suit/jacket(src) + if(prob(25)) + new /obj/item/clothing/suit/jacket(src) new /obj/item/clothing/under/color/white(src) new /obj/item/clothing/under/color/blue(src) new /obj/item/clothing/under/color/yellow(src) diff --git a/code/game/turfs/space/space.dm b/code/game/turfs/space/space.dm index 8067f98f97d..b8ecd518b05 100644 --- a/code/game/turfs/space/space.dm +++ b/code/game/turfs/space/space.dm @@ -206,4 +206,7 @@ proc/setup_map_transitions() //listamania else S.transition = directions[Z_NORTH] - S.Assign_Destination() \ No newline at end of file + S.Assign_Destination() + +/turf/space/singularity_act() + return diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index a280b4cd3e9..20f53440ed1 100644 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -346,4 +346,14 @@ M << "You slipped!" playsound(M.loc, 'sound/misc/slip.ogg', 50, 1, -3) return 1 - return 0 // no success. Used in clown pda and wet floors \ No newline at end of file + return 0 // no success. Used in clown pda and wet floors + +/turf/singularity_act() + if(intact) + for(var/obj/O in contents) //this is for deleting things like wires contained in the turf + if(O.level != 1) + continue + if(O.invisibility == 101) + O.singularity_act() + ChangeTurf(/turf/space) + return(2) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index b7bd3c8019c..fa48db048c4 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -14,6 +14,7 @@ var/list/admin_verbs_default = list( /client/proc/investigate_show, /*various admintools for investigation. Such as a singulo grief-log*/ /client/proc/secrets, /client/proc/reload_admins, + /client/proc/reestablish_db_connection,/*reattempt a connection to the database*/ /client/proc/cmd_admin_pm_context, /*right-click adminPM interface*/ /client/proc/cmd_admin_pm_panel /*admin-pm list*/ ) @@ -184,7 +185,8 @@ var/list/admin_verbs_hideable = list( /client/proc/cmd_debug_del_all, /client/proc/enable_debug_verbs, /proc/possess, - /proc/release + /proc/release, + /client/proc/reload_admins ) /client/proc/add_admin_verbs() diff --git a/code/modules/admin/verbs/reestablish_db_connection.dm b/code/modules/admin/verbs/reestablish_db_connection.dm new file mode 100644 index 00000000000..146b8481a19 --- /dev/null +++ b/code/modules/admin/verbs/reestablish_db_connection.dm @@ -0,0 +1,31 @@ +/client/proc/reestablish_db_connection() + set category = "Special Verbs" + set name = "Reestablish DB Connection" + if (!config.sql_enabled) + usr << "The Database is not enabled!" + return + + if (dbcon && dbcon.IsConnected()) + if (!check_rights(R_DEBUG,0)) + alert("The database is already connected! (Only those with +debug can force a reconnection)", "The database is already connected!") + return + + var/reconnect = alert("The database is already connected! If you *KNOW* that this is incorrect, you can force a reconnection", "The database is already connected!", "Force Reconnect", "Cancel") + if (reconnect != "Force Reconnect") + return + + dbcon.Disconnect() + failed_db_connections = 0 + log_admin("[key_name(usr)] has forced the database to disconnect") + message_admins("[key_name_admin(usr)] has forced the database to disconnect!") + feedback_add_details("admin_verb","FRDB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + log_admin("[key_name(usr)] is attempting to re-established the DB Connection") + message_admins("[key_name_admin(usr)] is attempting to re-established the DB Connection") + feedback_add_details("admin_verb","RDB") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + + failed_db_connections = 0 + if (!establish_db_connection()) + message_admins("Database connection failed: " + dbcon.ErrorMsg()) + else + message_admins("Database connection re-established") \ No newline at end of file diff --git a/code/modules/assembly/signaler.dm b/code/modules/assembly/signaler.dm index 7577a7a025c..c970cd62d5f 100644 --- a/code/modules/assembly/signaler.dm +++ b/code/modules/assembly/signaler.dm @@ -178,7 +178,10 @@ Code: item_state = "electronic" /obj/item/device/assembly/signaler/anomaly/receive_signal(datum/signal/signal) - ..() + if(!signal) + return 0 + if(signal.encryption != code) + return 0 for(var/obj/effect/anomaly/A in orange(0, src)) A.anomalyNeutralize() diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 64a9336b2ca..bfa388ae031 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -63,23 +63,21 @@ //Security /obj/item/clothing/head/HoS - name = "head of security hat" - desc = "The robust hat of the Head of Security. For showing the officers who's in charge." + name = "head of security cap" + desc = "The robust standard-issue cap of the Head of Security. For showing the officers who's in charge." icon_state = "hoscap" armor = list(melee = 80, bullet = 60, laser = 50, energy = 10, bomb = 25, bio = 10, rad = 0) flags = 0 flags_inv = HIDEEARS strip_delay = 80 -/obj/item/clothing/head/HoS/dermal - name = "Dermal Armor Patch" - desc = "An armored implant that automatically integrates just below the scalp for robust protection without sacrificing style." - icon_state = "dermal" - item_state = "dermal" - flags_inv = 0 +/obj/item/clothing/head/HoS/drill + name = "head of security drill hat" + desc = "A robust drill hat for the Head of Security. For keeping the officers in line." + icon_state = "hosdrill" /obj/item/clothing/head/warden - name = "warden's hat" + name = "warden's police hat" desc = "It's a special armored hat issued to the Warden of a security force. Protects the head from impacts." icon_state = "policehelm" armor = list(melee = 60, bullet = 5, laser = 25, energy = 10, bomb = 25, bio = 0, rad = 0) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 3e33b19cd4a..4fac7f71965 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -17,8 +17,8 @@ armor = list(melee = 50, bullet = 15, laser = 50, energy = 10, bomb = 25, bio = 0, rad = 0) /obj/item/clothing/suit/armor/hos - name = "armored coat" - desc = "A greatcoat enchanced with a special alloy for some protection and style." + name = "armored greatcoat" + desc = "A greatcoat enchanced with a special alloy for some protection and style for those with a commanding presence." icon_state = "hos" item_state = "hos" body_parts_covered = CHEST|GROIN|ARMS|LEGS @@ -29,6 +29,15 @@ strip_delay = 80 put_on_delay = 40 +/obj/item/clothing/suit/armor/hos/trenchcoat + name = "armored trenchoat" + desc = "A trenchcoat enchanced with a special lightweight kevlar. The epitome of tactical plainclothes." + icon_state = "jensencoat" + item_state = "jensencoat" + flags_inv = 0 + strip_delay = 80 + put_on_delay = 40 + /obj/item/clothing/suit/armor/vest/warden name = "warden's jacket" desc = "An armored jacket with silver rank pips and livery." diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 76f209e90ce..c2373675872 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -210,6 +210,18 @@ icon_state = "nerdshirt" item_state = "nerdshirt" +/obj/item/clothing/suit/jacket + name = "bomber jacket" + desc = "Aviators not included." + icon_state = "bomberjacket" + item_state = "johnny" + allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter) + +/obj/item/clothing/suit/jacket/leather + name = "leather jacket" + desc = "Pompadour not included." + icon_state = "leatherjacket" + //Blue suit jacket toggle /obj/item/clothing/suit/suit/verb/toggle() set name = "Toggle Jacket Buttons" diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index f7ada882d0a..9f569758bae 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -59,26 +59,6 @@ armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) strip_delay = 60 -/* - * Jensen cosplay gear - */ -/obj/item/clothing/under/rank/head_of_security/jensen - desc = "You never asked for anything that stylish." - name = "head of security's jumpsuit" - icon_state = "jensen" - item_state = "jensen" - item_color = "jensen" - can_adjust = 0 - -/obj/item/clothing/suit/armor/hos/jensen - name = "armored trenchoat" - desc = "A trenchoat augmented with a special alloy for some protection and style" - icon_state = "jensencoat" - item_state = "jensencoat" - flags_inv = 0 - strip_delay = 80 - put_on_delay = 40 - /* * Navy uniforms diff --git a/code/modules/events/anomaly_bluespace.dm b/code/modules/events/anomaly_bluespace.dm index 04a18bfc9cd..5171ca6a4b6 100644 --- a/code/modules/events/anomaly_bluespace.dm +++ b/code/modules/events/anomaly_bluespace.dm @@ -21,7 +21,7 @@ /datum/round_event/anomaly/anomaly_bluespace/end() - if(newAnomaly)//If it hasn't been neutralized, it's time to warp half the station away jeez + if(newAnomaly.loc)//If it hasn't been neutralized, it's time to warp half the station away jeez var/turf/T = pick(get_area_turfs(impact_area)) if(T) // Calculate new position (searches through beacons in world) diff --git a/code/modules/events/anomaly_flux.dm b/code/modules/events/anomaly_flux.dm index 04dac78b664..fd4a10270b4 100644 --- a/code/modules/events/anomaly_flux.dm +++ b/code/modules/events/anomaly_flux.dm @@ -21,6 +21,6 @@ /datum/round_event/anomaly/anomaly_flux/end() - if(newAnomaly)//If it hasn't been neutralized, it's time to blow up. + if(newAnomaly.loc)//If it hasn't been neutralized, it's time to blow up. explosion(newAnomaly, -1, 3, 5, 5) qdel(newAnomaly) \ No newline at end of file diff --git a/code/modules/events/anomaly_pyro.dm b/code/modules/events/anomaly_pyro.dm index e5e88eb8549..237e59a1d48 100644 --- a/code/modules/events/anomaly_pyro.dm +++ b/code/modules/events/anomaly_pyro.dm @@ -27,7 +27,7 @@ /datum/round_event/anomaly/anomaly_pyro/end() - if(newAnomaly) + if(newAnomaly.loc) explosion(get_turf(newAnomaly), -1,0,3, flame_range = 4) var/mob/living/carbon/slime/S = new/mob/living/carbon/slime(get_turf(newAnomaly)) diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index 3b76c06082c..dce78028dd3 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -151,6 +151,7 @@ dat += "Botanical gloves: Make ([250/efficiency])
" dat += "Utility belt: Make ([300/efficiency])
" dat += "Leather Satchel: Make ([400/efficiency])
" + dat += "Leather Jacket: Make ([500/efficiency])
" dat += "" else dat += "
No container inside, please insert container.
" @@ -243,6 +244,9 @@ if("satchel") if (check_cost(400/efficiency)) return 0 else new/obj/item/weapon/storage/backpack/satchel(src.loc) + if("jacket") + if (check_cost(500/efficiency)) return 0 + else new/obj/item/clothing/suit/jacket/leather(src.loc) //if("monkey") // if (check_cost(500)) return 0 // else new/mob/living/carbon/monkey(src.loc) diff --git a/code/modules/library/lib_items.dm b/code/modules/library/lib_items.dm index eadd1e62fb1..396ad4bb5ef 100644 --- a/code/modules/library/lib_items.dm +++ b/code/modules/library/lib_items.dm @@ -265,6 +265,7 @@ var/obj/item/weapon/storage/book/B = new B.name = src.name B.title = src.title + B.icon_state = src.icon_state if(user.l_hand == src || user.r_hand == src) qdel(src) user.put_in_hands(B) diff --git a/code/modules/mining/equipment_locker.dm b/code/modules/mining/equipment_locker.dm index 7ebb487edc9..fbc21838808 100644 --- a/code/modules/mining/equipment_locker.dm +++ b/code/modules/mining/equipment_locker.dm @@ -102,7 +102,6 @@ var/obj/item/stack/sheet/s var/dat - dat += text("Ore Redemption Machine

") dat += text("This machine only accepts ore. Gibtonite and Slag are not accepted.

") dat += text("Current unclaimed points: [points]
") @@ -115,6 +114,8 @@ for(var/O in stack_list) s = stack_list[O] if(s.amount > 0) + if(O == stack_list[1]) + dat += "
" //just looks nicer dat += text("[capitalize(s.name)]: [s.amount] Release
") if((/obj/item/stack/sheet/metal in stack_list) && (/obj/item/stack/sheet/mineral/plasma in stack_list)) @@ -123,10 +124,11 @@ if(min(metalstack.amount, plasmastack.amount)) dat += text("Plasteel Alloy (Metal + Plasma): Smelt
") - dat += text("
Mineral Value List:
[get_ore_values()]") - - user << browse("[dat]", "window=console_stacking_machine") + dat += text("
Mineral Value List:
[get_ore_values()]
") + var/datum/browser/popup = new(user, "console_stacking_machine", "Ore Redemption Machine", 400, 500) + popup.set_content(dat) + popup.open() return /obj/machinery/mineral/ore_redemption/proc/get_ore_values() @@ -274,19 +276,20 @@ /obj/machinery/mineral/equipment_vendor/interact(mob/user) var/dat - dat += text("Mining Equipment vendor

") - + dat +="
" if(istype(inserted_id)) dat += "You have [inserted_id.mining_points] mining points collected. Eject ID.
" else dat += "No ID inserted. Insert ID.
" - - dat += "
Equipment point cost list:

Name

Vitals

Position

[ID.name]
[I.registered_name] ([I.assignment])
Unknown
Unknown[life_status]Not Available
[life_status]Not Available
[life_status] [damage_report]Not Available
[life_status] [damage_report]Not Available
[life_status] [damage_report][format_text(player_area.name)] ([pos.x], [pos.y])
" + dat += "" + dat += "
Equipment point cost list:
" for(var/datum/data/mining_equipment/prize in prize_list) dat += "" dat += "
[prize.equipment_name][prize.cost]Purchase
" - user << browse("[dat]", "window=mining_equipment_vendor") + var/datum/browser/popup = new(user, "miningvendor", "Mining Equipment Vendor", 400, 350) + popup.set_content(dat) + popup.open() return /obj/machinery/mineral/equipment_vendor/Topic(href, href_list) @@ -453,8 +456,7 @@ shake_camera(L, 20, 1) spawn(20) if(L) - L.visible_message("[L.name] vomits from travelling through the [src.name]!", \ - "You throw up from travelling through the [src.name]!") + L.visible_message("[L.name] vomits from travelling through the [src.name]!", "You throw up from travelling through the [src.name]!") L.nutrition -= 20 L.adjustToxLoss(-3) var/turf/T = get_turf(L) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index a20ec5c3a00..84d3f094d59 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -705,4 +705,15 @@ facial_hair_style = "Shaved" hair_style = pick("Bedhead", "Bedhead 2", "Bedhead 3") underwear = "Nude" - regenerate_icons() \ No newline at end of file + regenerate_icons() + +/mob/living/carbon/human/singularity_act() + var/gain = 20 + if(mind) + if((mind.assigned_role == "Station Engineer") || (mind.assigned_role == "Chief Engineer") ) + gain = 100 + if(mind.assigned_role == "Clown") + gain = rand(-300, 300) + investigate_log(" has consumed [key_name(src)].","singulo") //Oh that's where the clown ended up! + gib() + return(gain) diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index d52e595df3d..17e08ce7d3a 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -630,3 +630,9 @@ src.unEquip(what) who.equip_to_slot_if_possible(what, where, 0, 1) add_logs(src, who, "equipped", object=what) + +/mob/living/singularity_act() + var/gain = 20 + investigate_log(" has consumed [key_name(src)].","singulo") //Oh that's where the clown ended up! + gib() + return(gain) \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 290132a23d5..8b4076e265b 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -1081,7 +1081,7 @@ new /obj/item/robot_parts/head(T) var/b for(b=0, b!=2, b++) - var/obj/item/device/flash/F = new /obj/item/device/flash(T) + var/obj/item/device/flash/handheld/F = new /obj/item/device/flash/handheld(T) F.burn_out() if (cell) //Sanity check. cell.loc = T diff --git a/code/modules/power/singularity/narsie.dm b/code/modules/power/singularity/narsie.dm index 68fe80c0780..c5539036b56 100644 --- a/code/modules/power/singularity/narsie.dm +++ b/code/modules/power/singularity/narsie.dm @@ -10,7 +10,7 @@ move_self = 1 //Do we move on our own? grav_pull = 5 //How many tiles out do we pull? consume_range = 6 //How many tiles out do we eat - uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct) + var/uneatable = list(/turf/space, /obj/effect/overlay, /mob/living/simple_animal/construct) /obj/machinery/singularity/narsie/large name = "Nar-Sie" diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm index c92564ada45..9108b61c8ea 100644 --- a/code/modules/power/singularity/singularity.dm +++ b/code/modules/power/singularity/singularity.dm @@ -25,9 +25,7 @@ var/event_chance = 15 //Prob for event each tick var/target = null //its target. moves towards the target if it has one var/last_failed_movement = 0//Will not move in the same dir if it couldnt before, will help with the getting stuck on fields thing - var/teleport_del = 0 var/last_warning - var/list/uneatable = list(/turf/space, /obj/effect/overlay) /obj/machinery/singularity/New(loc, var/starting_energy = 50, var/temp = 0) //CARN: admin-alert for chuckle-fuckery. @@ -212,7 +210,6 @@ var/dist = get_dist(X, src) // Movable atoms only if(dist > consume_range && istype(X, /atom/movable)) - if(is_type_in_list(X, uneatable)) continue if(((X) &&(!X:anchored) && (!istype(X,/mob/living/carbon/human)))|| (src.current_size >= 9)) step_towards(X,src) @@ -244,60 +241,7 @@ /obj/machinery/singularity/proc/consume(var/atom/A) - var/gain = 0 - if(is_type_in_list(A, uneatable)) - return 0 - if (istype(A,/mob/living))//Mobs get gibbed - var/mob/living/M = A - gain = 20 - if(istype(M,/mob/living/carbon/human)) - var/mob/living/carbon/human/H = M - if(H.mind) - - if((H.mind.assigned_role == "Station Engineer") || (H.mind.assigned_role == "Chief Engineer") ) - gain = 100 - - if(H.mind.assigned_role == "Clown") - gain = rand(-300, 300) // HONK - - investigate_log(" has consumed [key_name(M)].","singulo") //Oh that's where the clown ended up! - M.gib() - sleep(1) - else if(istype(A,/obj/)) - - if (istype(A,/obj/item/weapon/storage/backpack/holding)) - var/dist = max((current_size - 2),1) - explosion(src.loc,(dist),(dist*2),(dist*4)) - return - - if(istype(A, /obj/machinery/singularity))//Welp now you did it - var/obj/machinery/singularity/S = A - src.energy += (S.energy/2)//Absorb most of it - qdel(S) - var/dist = max((current_size - 2),1) - explosion(src.loc,(dist),(dist*2),(dist*4)) - return//Quits here, the obj should be gone, hell we might be - - if((teleport_del) && (!istype(A, /obj/machinery)))//Going to see if it does not lag less to tele items over to Z 2 - var/obj/O = A - O.x = 2 - O.y = 2 - O.z = 2 - else - A.ex_act(1.0) - if(A && isnull(A.gc_destroyed)) - qdel(A) - gain = 2 - else if(isturf(A)) - var/turf/T = A - if(T.intact) - for(var/obj/O in T.contents) - if(O.level != 1) - continue - if(O.invisibility == 101) - src.consume(O) - T.ChangeTurf(/turf/space) - gain = 2 + var/gain = A.singularity_act(current_size) src.energy += gain return @@ -453,4 +397,11 @@ for(var/obj/machinery/power/rad_collector/R in rad_collectors) if(get_dist(R, src) <= 15) // Better than using orange() every process R.receive_pulse(energy) - return \ No newline at end of file + return + +/obj/machinery/singularity/singularity_act() + var/gain = (energy/2) + var/dist = max((current_size - 2),1) + explosion(src.loc,(dist),(dist*2),(dist*4)) + qdel(src) + return(gain) diff --git a/code/modules/projectiles/guns/energy.dm b/code/modules/projectiles/guns/energy.dm index f1ee2f12a74..08351551243 100644 --- a/code/modules/projectiles/guns/energy.dm +++ b/code/modules/projectiles/guns/energy.dm @@ -68,6 +68,8 @@ var/ratio = power_supply.charge / power_supply.maxcharge ratio = Ceiling(ratio*4) * 25 var/obj/item/ammo_casing/energy/shot = ammo_type[select] + if(power_supply.charge < shot.e_cost) + ratio = 0 //so the icon changes to empty if the charge isn't zero but not enough for a shot. switch(modifystate) if (0) icon_state = "[initial(icon_state)][ratio]" diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 2973bfcc363..f2fbbce3172 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -708,7 +708,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) if(!R.total_volume||!R.reagent_list.len) dat += "The beaker is empty
" else if(!Blood) - dat += "No blood sample found in beaker" + dat += "No blood sample found in beaker." else if(!Blood.data) dat += "No blood data found in beaker." else @@ -749,6 +749,10 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime) english_symptoms += S.name dat += english_list(english_symptoms) + else + dat += "No detectable virus in the sample." + else + dat += "No detectable virus in the sample." dat += "
Contains antibodies to: " if(Blood.data["resistances"]) diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index b5fcb1ae5c2..60fb6d1f946 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -68,6 +68,7 @@ amount_per_transfer_from_this = 10 volume = 10 ignore_flags = 1 //so you can medipen through hardsuits + flags = null /obj/item/weapon/reagent_containers/hypospray/medipen/New() ..() @@ -75,10 +76,9 @@ update_icon() return + /obj/item/weapon/reagent_containers/hypospray/medipen/attack(mob/M as mob, mob/user as mob) ..() - if(reagents.total_volume <= 0) //Prevents medipens from being refilled. - flags &= ~OPENCONTAINER update_icon() return diff --git a/code/unused/hivebot/hive_modules.dm b/code/unused/hivebot/hive_modules.dm index c0ae3196ca9..56951dee480 100644 --- a/code/unused/hivebot/hive_modules.dm +++ b/code/unused/hivebot/hive_modules.dm @@ -14,7 +14,7 @@ name = "HiveBot engineering robot module" /obj/item/weapon/hive_module/New()//Shit all the mods have - src.modules += new /obj/item/device/flash(src) + src.modules += new /obj/item/device/flash/handheld(src) /obj/item/weapon/hive_module/standard/New() diff --git a/html/changelog.html b/html/changelog.html index 7df9840a60f..b3528ac9971 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -55,6 +55,53 @@ --> +
+

19 October 2014

+

Donkie updated:

+ +

JJRcop updated:

+ +

Lo6a4evskiy updated:

+ +

MrPerson updated:

+ +

Paprika updated:

+ +

Paprka updated:

+ +

optimumtact updated:

+ +
+

09 October 2014

Paprika updated:

diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml index 1b538c51b16..bce08847b4b 100644 --- a/html/changelogs/.all_changelog.yml +++ b/html/changelogs/.all_changelog.yml @@ -1944,3 +1944,51 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py. capacity of the jetpack has been reduced as well, however. - experiment: Removed resonator from the mining voucher redemption. Replaced it with a mining drill. +2014-10-19: + Donkie: + - rscadd: Major atmos update. Featuring pretty colors. + - rscadd: 4-Way pipes added. + - rscadd: Flip-able trinary devices (mixer & filter). + - rscadd: Pipe-painter added. + - tweak: Most pipe icons have been tweaked with shading and such, making it look + more uniform. + JJRcop: + - rscadd: We have managed to re-discover drones! We improved the formula, and have + discovered some cool stuff. + - rscadd: After some fiddling with audio recognition, drones can now understand + human speech! + - rscadd: One of our engineers found some screws that were loose on some of our + tests, screwing them in made the drone work as if it had just come out of robotics. + - tweak: We had to sacrifice some of our NT brand EMP protection for the speech + recognition, so drones can get damaged if subjected to heavy EMP radiation. + - bugfix: We figured out why drones couldn't remove objects from people, that has + been fixed. + - bugfix: The standby light wasn't wired correctly. + - rscdel: Unfortunately one of our assistants tasked with transporting the only + copy of the data dropped the flash drive in hot water because he wanted to see + what "drone tea" tasted like. You'll have to discover them again. + Lo6a4evskiy: + - rscadd: Station's crayons have been upgraded to the version 2.0 of ColourOS. Don't + worry, they are still edible! + - tweak: Many items now have different stripping delays. Heavier and more armored + pieces of clothing are generally more difficult to take off someone else, while + smaller items can be very easy to snatch. Pockets always take 4 seconds to search. + MrPerson: + - rscadd: Implants are activated via action buttons on the top-left corner of your + screen instead of emotes. + Paprika: + - rscadd: Added zipties for security and nuke operatives. These have a slightly + shorter 'breakout time' as normal cuffs but they are destroyed upon removal. + Beepsky and sec borgs now use these by default. + - bugfix: Changed the medical HUD in the tactical medkit to a night vision HUD so + syndicate medics don't stumble around in the dark. Can be purchased through + nuke op uplinks. + - rscadd: Added a second roboticist roundstart job slot. + - rscadd: Added a third cargo tech job slot. + Paprka: + - rscadd: Added undershirts as a companion piece to jumpsuit adjusting. Beat the + heat with a comfortable tank top, or warm up with an extra layer tshirt! + - rscadd: Added a holographic sign projector to replace the old wet floor signs + to encourage janitors to warn crewmembers about wet floors. + optimumtact: + - rscadd: Medical supplies crate now comes with a boxy full of bodybags diff --git a/html/changelogs/Donkie-PR-4759.yml b/html/changelogs/Donkie-PR-4759.yml deleted file mode 100644 index 97156691aec..00000000000 --- a/html/changelogs/Donkie-PR-4759.yml +++ /dev/null @@ -1,31 +0,0 @@ - -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscdel (general adding of nice things) -# rscadd (general deleting of nice things) -# imageadd -# imagedel -# spellcheck (typo fixes) -# experiment -# tgs (TG-ported fixes?) - -# Your name. -author: Donkie - -# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. -delete-after: True - -# Any changes you've made. See valid prefix list above. -# INDENT WITH TWO SPACES. NOT TABS. SPACES. -# SCREW THIS UP AND IT WON'T WORK. -# Also, this gets changed to [] after reading. Just remove the brackets when you add new shit. -changes: - - rscadd: Major atmos update. Featuring pretty colors. - - rscadd: 4-Way pipes added. - - rscadd: Flip-able trinary devices (mixer & filter). - - rscadd: Pipe-painter added. - - tweak: Most pipe icons have been tweaked with shading and such, making it look more uniform. - diff --git a/html/changelogs/JJRcop-PR-5185.yml b/html/changelogs/JJRcop-PR-5185.yml deleted file mode 100644 index 6c72197236b..00000000000 --- a/html/changelogs/JJRcop-PR-5185.yml +++ /dev/null @@ -1,11 +0,0 @@ -author: JJRcop -delete-after: True -changes: - - rscadd: "We have managed to re-discover drones! We improved the formula, and have discovered some cool stuff." - - rscadd: "After some fiddling with audio recognition, drones can now understand human speech!" - - rscadd: "One of our engineers found some screws that were loose on some of our tests, screwing them in made the drone work as if it had just come out of robotics." - - tweak: "We had to sacrifice some of our NT brand EMP protection for the speech recognition, so drones can get damaged if subjected to heavy EMP radiation." - - bugfix: "We figured out why drones couldn't remove objects from people, that has been fixed." - - bugfix: "The standby light wasn't wired correctly." -# ^ These aren't actually code bugs, but I'm writing this all In Character from Nanotrasen, and the icons fit well - - rscdel: "Unfortunately one of our assistants tasked with transporting the only copy of the data dropped the flash drive in hot water because he wanted to see what \"drone tea\" tasted like. You'll have to discover them again." \ No newline at end of file diff --git a/html/changelogs/Lo6a4evskiy-PR-4861.yml b/html/changelogs/Lo6a4evskiy-PR-4861.yml deleted file mode 100644 index 99c6b5694bf..00000000000 --- a/html/changelogs/Lo6a4evskiy-PR-4861.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Lo6a4evskiy - -delete-after: True - -changes: - - rscadd: Station's crayons have been upgraded to the version 2.0 of ColourOS. Don't worry, they are still edible! \ No newline at end of file diff --git a/html/changelogs/Lo6a4evskiy-PR-5100.yml b/html/changelogs/Lo6a4evskiy-PR-5100.yml deleted file mode 100644 index 932d1d032f5..00000000000 --- a/html/changelogs/Lo6a4evskiy-PR-5100.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Lo6a4evskiy - -delete-after: True - -changes: - - tweak: Many items now have different stripping delays. Heavier and more armored pieces of clothing are generally more difficult to take off someone else, while smaller items can be very easy to snatch. Pockets always take 4 seconds to search. \ No newline at end of file diff --git a/html/changelogs/MrPerson.yml b/html/changelogs/MrPerson.yml index a97817867cd..6378584f30e 100644 --- a/html/changelogs/MrPerson.yml +++ b/html/changelogs/MrPerson.yml @@ -1,3 +1,2 @@ author: MrPerson -changes: - - rscadd: Implants are activated via action buttons on the top-left corner of your screen instead of emotes. \ No newline at end of file +changes: [] diff --git a/html/changelogs/Paprka-PR-5123.yml b/html/changelogs/Paprka-PR-5123.yml deleted file mode 100644 index f0323cd6a7a..00000000000 --- a/html/changelogs/Paprka-PR-5123.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Paprika -delete-after: True -changes: - - rscadd: "Added zipties for security and nuke operatives. These have a slightly shorter 'breakout time' as normal cuffs but they are destroyed upon removal. Beepsky and sec borgs now use these by default." \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5132.yml b/html/changelogs/Paprka-PR-5132.yml deleted file mode 100644 index 07b8090aa77..00000000000 --- a/html/changelogs/Paprka-PR-5132.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Paprika -delete-after: True -changes: - - bugfix: Changed the medical HUD in the tactical medkit to a night vision HUD so syndicate medics don't stumble around in the dark. Can be purchased through nuke op uplinks. \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5135.yml b/html/changelogs/Paprka-PR-5135.yml deleted file mode 100644 index d31426110ae..00000000000 --- a/html/changelogs/Paprka-PR-5135.yml +++ /dev/null @@ -1,6 +0,0 @@ -author: Paprka - -delete-after: True - -changes: - - rscadd: "Added undershirts as a companion piece to jumpsuit adjusting. Beat the heat with a comfortable tank top, or warm up with an extra layer tshirt!" \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5137.yml b/html/changelogs/Paprka-PR-5137.yml deleted file mode 100644 index 9a277d228ec..00000000000 --- a/html/changelogs/Paprka-PR-5137.yml +++ /dev/null @@ -1,4 +0,0 @@ -author: Paprka -delete-after: True -changes: - - rscadd: "Added a holographic sign projector to replace the old wet floor signs to encourage janitors to warn crewmembers about wet floors." \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5179.yml b/html/changelogs/Paprka-PR-5179.yml new file mode 100644 index 00000000000..09edf6384ea --- /dev/null +++ b/html/changelogs/Paprka-PR-5179.yml @@ -0,0 +1,4 @@ +author: Paprika +delete-after: True +changes: + - experiment: "Allowed constructs to assist in activating most runes. This includes conversion runes, but does NOT include sacrifice runes." \ No newline at end of file diff --git a/html/changelogs/Paprka-PR-5202.yml b/html/changelogs/Paprka-PR-5202.yml deleted file mode 100644 index fa15d19cf93..00000000000 --- a/html/changelogs/Paprka-PR-5202.yml +++ /dev/null @@ -1,5 +0,0 @@ -author: Paprika -delete-after: True -changes: - - rscadd: "Added a second roboticist roundstart job slot." - - rscadd: "Added a third cargo tech job slot." diff --git a/html/changelogs/optimumtact-PR-5141.yml b/html/changelogs/optimumtact-PR-5141.yml deleted file mode 100644 index 226ba3a2542..00000000000 --- a/html/changelogs/optimumtact-PR-5141.yml +++ /dev/null @@ -1,21 +0,0 @@ -# Valid Prefixes: -# bugfix -# wip (For works in progress) -# tweak -# soundadd -# sounddel -# rscdel (general adding of nice things) -# rscadd (general deleting of nice things) -# imageadd -# imagedel -# spellcheck (typo fixes) -# experiment -# tgs (TG-ported fixes?) - -# Your name. -author: optimumtact - -delete-after: True - -changes: - - rscadd: "Medical supplies crate now comes with a boxy full of bodybags" diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi index ff3137d0e70..e711157e2e5 100644 Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi index c8d4790d75f..64d5b519ad0 100644 Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index 22ef17c1007..2572ffae3a7 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi index 4623677765c..3ed28b85624 100644 Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi index c6b21068494..11520ec0f35 100644 Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index ad81a1a1650..1dcfa6357a1 100644 Binary files a/icons/obj/clothing/suits.dmi and b/icons/obj/clothing/suits.dmi differ diff --git a/icons/obj/structures.dmi b/icons/obj/structures.dmi index eeb1db6b29c..0f7700a18ea 100644 Binary files a/icons/obj/structures.dmi and b/icons/obj/structures.dmi differ diff --git a/tgstation.dme b/tgstation.dme index 594e9f0bde5..fbfeef2b539 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -748,6 +748,7 @@ #include "code\modules\admin\verbs\possess.dm" #include "code\modules\admin\verbs\pray.dm" #include "code\modules\admin\verbs\randomverbs.dm" +#include "code\modules\admin\verbs\reestablish_db_connection.dm" #include "code\modules\admin\verbs\ticklag.dm" #include "code\modules\admin\verbs\tripAI.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2.dm"