From 170ef644123b9b832983408afd6a825c5b4a8764 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 8 Aug 2015 16:17:11 -0400 Subject: [PATCH 01/29] Adds in Welding Gas Mask --- code/modules/clothing/masks/gasmask.dm | 44 ++++++++++++++++++ .../research/designs/equipment_designs.dm | 10 ++++ icons/mob/mask.dmi | Bin 35328 -> 34987 bytes icons/obj/clothing/masks.dmi | Bin 22621 -> 23064 bytes 4 files changed, 54 insertions(+) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 438e456c9dc..769f1644e8d 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -14,6 +14,50 @@ "Vox" = 'icons/mob/species/vox/mask.dmi' ) +// **** Welding gas mask **** + +/obj/item/clothing/mask/gas/welding + name = "welding mask" + desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." + icon_state = "weldingmask" + item_state = "weldingmask" + m_amt = 3000 + g_amt = 1000 + var/up = 0 + flash_protect = 2 + tint = 2 + armor = list(melee = 10, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0) + origin_tech = "materials=2;engineering=2" + action_button_name = "Toggle Welding Helmet" + +/obj/item/clothing/mask/gas/welding/attack_self() + toggle() + + +/obj/item/clothing/mask/gas/welding/verb/toggle() + set category = "Object" + set name = "Adjust welding mask" + set src in usr + + if(usr.canmove && !usr.stat && !usr.restrained()) + if(src.up) + src.up = !src.up + src.flags |= (MASKCOVERSEYES) + flags_inv |= (HIDEEYES) + icon_state = initial(icon_state) + usr << "You flip the [src] down to protect your eyes." + flash_protect = 2 + tint = 2 + else + src.up = !src.up + src.flags &= ~(MASKCOVERSEYES) + flags_inv &= ~(HIDEEYES) + icon_state = "[initial(icon_state)]up" + usr << "You push the [src] up out of your face." + flash_protect = 0 + tint = 0 + usr.update_inv_wear_mask() //so our mob-overlays update + //Bane gas mask /obj/item/clothing/mask/banemask name = "bane mask" diff --git a/code/modules/research/designs/equipment_designs.dm b/code/modules/research/designs/equipment_designs.dm index 71d47e0012d..10a6a18ee31 100644 --- a/code/modules/research/designs/equipment_designs.dm +++ b/code/modules/research/designs/equipment_designs.dm @@ -89,4 +89,14 @@ build_type = PROTOLATHE materials = list("$metal" = 4000, "$bananium" = 1000) build_path = /obj/item/weapon/bikehorn/airhorn + category = list("Equipment") + +/datum/design/welding_mask + name = "Welding Gas Mask" + desc = "A gas mask with built in welding goggles and face shield. Looks like a skull, clearly designed by a nerd." + id = "weldingmask" + req_tech = list("materials" = 2, "engineering" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 4000, "$glass" = 1000) + build_path = /obj/item/clothing/mask/gas/welding category = list("Equipment") \ No newline at end of file diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi index 056771e3ea3ad184b9c9050d8e2e88557b36fb3e..8cd0536ff8431b0ccb332a4b5d1e1b4708a11393 100644 GIT binary patch literal 34987 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 RfL6f}*Y&TJUbTDte*i7S8xH^g literal 35328 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 TM0kUKI3Rk)S4*zkd;Z@5Pv(OI diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 09247ec05ea6de68e707a5a86392cab33b457049..5c9b9bd9050332e8eff0a7b474433cf0deb07689 100644 GIT binary patch delta 3370 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 From f5784b72a205491665bfc4ca8aa0543c94b661e4 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sat, 8 Aug 2015 19:59:31 -0400 Subject: [PATCH 02/29] Chemistry Tweaks --- code/modules/reagents/Chemistry-Reagents.dm | 18 ++++++++++-- code/modules/reagents/newchem/drugs.dm | 14 ++++++--- code/modules/reagents/newchem/medicine.dm | 32 ++++++++++++--------- code/modules/reagents/newchem/other.dm | 6 ++++ code/modules/reagents/newchem/toxins.dm | 13 ++++++--- 5 files changed, 59 insertions(+), 24 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index d851dfcbece..6aa10fd29bb 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -757,6 +757,8 @@ datum if(volume > 200) M << "You pass out from hyperglycemic shock!" M.Paralyse(1) + if(prob(8)) + M.adjustToxLoss(rand(1,2)) ..() return @@ -770,7 +772,6 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(1*REM) M.adjustFireLoss(1) ..() return @@ -1176,7 +1177,9 @@ datum on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss(3*REM) + M.adjustToxLoss(1*REM) + if(holder.has_reagent("epinephrine")) + holder.remove_reagent("epinephrine", 2) ..() return @@ -1270,6 +1273,8 @@ datum M.AdjustParalysis(-1) M.AdjustStunned(-1) M.AdjustWeakened(-1) + if(prob(50)) + M.adjustBrainLoss(-1.0) ..() return @@ -1746,6 +1751,15 @@ datum reagent_state = SOLID color = "#B1B0B0" + overdose_process(var/mob/living/M as mob) + if(volume > 100) + if(prob(70)) + M.adjustBrainLoss(1) + if(prob(8)) + M.adjustToxLoss(rand(1,2)) + ..() + return + blackpepper name = "Black Pepper" id = "blackpepper" diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index c33bf039808..f858cc41797 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -51,6 +51,11 @@ M.AdjustParalysis(-2) M.AdjustStunned(-2) M.AdjustWeakened(-2) + if(prob(8)) + M.reagents.add_reagent("methamphetamine",2) + if(prob(4)) + M.Jitter(10) + M.adjustToxLoss(1.0) ..() return /datum/reagent/crank/overdose_process(var/mob/living/M as mob) @@ -167,13 +172,14 @@ var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.") if(prob(5)) M << "[high_message]" - M.AdjustParalysis(-2) - M.AdjustStunned(-2) - M.AdjustWeakened(-2) + M.AdjustParalysis(-2.5) + M.AdjustStunned(-2.5) + M.AdjustWeakened(-2.5) M.adjustStaminaLoss(-2) M.status_flags |= GOTTAGOREALLYFAST M.Jitter(3) - M.adjustBrainLoss(0.5) + if(prob(50)) + M.adjustBrainLoss(1.0) if(prob(5)) M.emote(pick("twitch", "shiver")) ..() diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm index 98e3bc2cc16..3790abca26b 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -10,7 +10,7 @@ datum/reagent/silver_sulfadiazine description = "This antibacterial compound is used to treat burn victims." reagent_state = LIQUID color = "#F0C814" - metabolization_rate = 2 + metabolization_rate = 3 datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) if(iscarbon(M)) @@ -37,7 +37,7 @@ datum/reagent/styptic_powder description = "Styptic (aluminium sulfate) powder helps control bleeding and heal physical wounds." reagent_state = LIQUID color = "#C8A5DC" - metabolization_rate = 2 + metabolization_rate = 3 datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1) if(iscarbon(M)) @@ -55,8 +55,7 @@ datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TO datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(prob(55)) - M.adjustBruteLoss(-8*REM) + M.adjustBruteLoss(-2*REM) ..() return @@ -111,9 +110,10 @@ datum/reagent/charcoal datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom M.adjustToxLoss(-1.5*REM) - for(var/datum/reagent/R in M.reagents.reagent_list) - if(R != src) - M.reagents.remove_reagent(R.id,1) + if(prob(50)) + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) + M.reagents.remove_reagent(R.id,1) ..() return @@ -173,6 +173,8 @@ datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob) M.adjustOxyLoss(-1*REM) M.adjustBruteLoss(-2*REM) M.adjustFireLoss(-2*REM) + if(prob(50)) + M.losebreath -= 1 ..() return @@ -249,10 +251,11 @@ datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(M.radiation > 0) M.radiation -= 7 - if(prob(70)) + if(prob(75)) M.adjustToxLoss(-4*REM) if(prob(33)) M.adjustBruteLoss(1*REM) + M.adjustFireLoss(1*REM) if(M.radiation < 0) M.radiation = 0 for(var/datum/reagent/R in M.reagents.reagent_list) @@ -280,16 +283,15 @@ datum/reagent/sal_acid datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - if(M.getBruteLoss() < 50) - if(prob(50)) - M.adjustBruteLoss(-1*REM) + if(prob(55)) + M.adjustBruteLoss(-2*REM) ..() return datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob) - if(M.getBruteLoss() < 50) - if(prob(50)) - M.adjustBruteLoss(2*REM) + if(volume > 25) + if(prob(8)) + M.adjustToxLoss(rand(1,2)) ..() return @@ -786,6 +788,8 @@ datum/reagent/antihol/on_mob_life(var/mob/living/M as mob) M.slurring = 0 M.confused = 0 M.reagents.remove_reagent("ethanol", 8) + if(M.health < 25) + M.adjustToxLoss(-2.0) ..() /datum/chemical_reaction/antihol diff --git a/code/modules/reagents/newchem/other.dm b/code/modules/reagents/newchem/other.dm index 17245f0a9ee..6b63bb397f2 100644 --- a/code/modules/reagents/newchem/other.dm +++ b/code/modules/reagents/newchem/other.dm @@ -61,6 +61,12 @@ datum/reagent/acetone reagent_state = LIQUID color = "#474747" +/datum/reagent/acetone/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + M.adjustToxLoss(1.5) + ..() + return + /datum/chemical_reaction/acetone name = "acetone" id = "acetone" diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index 54bd296a1ea..bf1d964c971 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -94,8 +94,11 @@ datum/reagent/venom datum/reagent/venom/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom - M.adjustToxLoss((0.1*volume)*REM) - M.adjustBruteLoss((0.1*volume)*REM) + M.adjustToxLoss(1*REM) + M.adjustBruteLoss(1*REM) + if(volume >= 20) + M.adjustToxLoss(1*REM) + M.adjustBruteLoss(1*REM) if(prob(25)) M.reagents.add_reagent("histamine",rand(5,10)) ..() @@ -347,8 +350,10 @@ datum/reagent/pancuronium/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(current_cycle >= 10) M.Weaken(3) - if(prob(7)) - M.losebreath += rand(3,5) + if(prob(10)) + M.losebreath += 1 + if(prob(7)) + M.losebreath += 3 ..() return From d9d90b38f016ddae77c114da5182c20a02a1a9e5 Mon Sep 17 00:00:00 2001 From: Krausus Date: Sun, 9 Aug 2015 09:36:52 -0400 Subject: [PATCH 03/29] Adds version check --- code/_compile_options.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/_compile_options.dm b/code/_compile_options.dm index 4d9f7f48a3d..84f3b3048c9 100644 --- a/code/_compile_options.dm +++ b/code/_compile_options.dm @@ -10,4 +10,11 @@ #define MAX_BOOK_MESSAGE_LEN 9216 #define MAX_NAME_LEN 26 +// Version check, terminates compilation if someone is using a version of BYOND that's too old +#if DM_VERSION < 508 +#error OUTDATED VERSION ERROR - \ +Due to BYOND features used in this codebase, you must update to version 508 or later to compile. \ +This may require updating to a beta release. +#endif + var/global/list/processing_objects = list() //This has to be initialized BEFORE world \ No newline at end of file From bc424946c48d9fa6cc7d29e9f43bde6183741fda Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 17:27:02 +0200 Subject: [PATCH 04/29] Add attack delay to alien nests --- code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm index b7745c60374..28c8129e2c7 100644 --- a/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm +++ b/code/game/objects/structures/stool_bed_chair_nest/alien_nests.dm @@ -71,6 +71,7 @@ ..() /obj/structure/stool/bed/nest/attackby(obj/item/weapon/W as obj, mob/user as mob, params) + user.changeNext_move(CLICK_CD_MELEE) var/aforce = W.force health = max(0, health - aforce) playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) From d93351a0e75fc44528f4a94b5e1a494d13df9513 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 17:35:58 +0200 Subject: [PATCH 05/29] Atmos mapfixes --- _maps/map_files/cyberiad/cyberiad.dmm | 94 ++++++++++++++------------- 1 file changed, 49 insertions(+), 45 deletions(-) diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index 7f72367a06b..eea57bfc4b3 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -345,8 +345,8 @@ "agG" = (/turf/simulated/wall/r_wall,/area/security/interrogation) "agH" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22},/obj/machinery/power/apc{dir = 1; name = "Interrogation APC"; pixel_x = 0; pixel_y = 25},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/hologram/holopad,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "agI" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) -"agJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/interrogation) -"agK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/prisonlockers) +"agJ" = (/obj/machinery/door/firedoor,/obj/machinery/door/airlock/security{name = "Interrogation"; req_access = null; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/interrogation) +"agK" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "agL" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/security/prisonlockers) "agM" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor,/area/security/prisonlockers) "agN" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/security/securehallway) @@ -378,11 +378,11 @@ "ahn" = (/turf/simulated/wall/r_wall,/area/security/main) "aho" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "ahp" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) -"ahq" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) +"ahq" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/prisonlockers) "ahr" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/wall/r_wall,/area/security/interrogation) -"ahs" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Brig Prison Lockers"; dir = 4; network = list("SS13")},/obj/machinery/light_switch{pixel_x = -25},/turf/simulated/floor,/area/security/prisonlockers) -"aht" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/security/prisonlockers) -"ahu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/security/prisonlockers) +"ahs" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/light_switch{pixel_x = 27},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) +"aht" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/prisonlockers) +"ahu" = (/obj/machinery/light{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/camera{c_tag = "Brig Prison Lockers"; dir = 4; network = list("SS13")},/obj/machinery/light_switch{pixel_x = -25},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor,/area/security/prisonlockers) "ahv" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/door/airlock/glass_security{name = "Prison Lockers"; req_access_txt = "63"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor,/area/security/prisonlockers) "ahw" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/permabrig) "ahx" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor,/area/security/permabrig) @@ -407,9 +407,9 @@ "ahQ" = (/turf/simulated/floor,/area/shuttle/gamma/station) "ahR" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "ahS" = (/obj/structure/table/reinforced{tag = "icon-table"; icon_state = "table"},/obj/item/device/flashlight/lamp,/obj/item/device/taperecorder{pixel_y = 0},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) -"ahT" = (/obj/machinery/camera{c_tag = "Brig Interrogation"; dir = 9; network = list("Interrogation","SS13")},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) +"ahT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 9},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor,/area/security/prisonlockers) "ahU" = (/obj/structure/closet/secure_closet/brig,/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/security/prisonlockers) -"ahV" = (/obj/structure/closet/secure_closet/brig,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/firealarm{dir = 4; pixel_x = 24},/turf/simulated/floor,/area/security/prisonlockers) +"ahV" = (/obj/machinery/camera{c_tag = "Brig Interrogation"; dir = 9; network = list("Interrogation","SS13")},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "ahW" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/wall,/area/security/prisonlockers) "ahX" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 4; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 10},/area/security/permabrig) "ahY" = (/turf/simulated/floor{icon_state = "red"},/area/security/permabrig) @@ -437,7 +437,7 @@ "aiu" = (/obj/machinery/camera{c_tag = "Brig Firing Range East"; dir = 8; network = list("SS13")},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/range) "aiv" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "aiw" = (/obj/structure/stool/bed/chair{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) -"aix" = (/obj/machinery/atmospherics/unary/vent_pump{on = 1},/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) +"aix" = (/obj/structure/closet/secure_closet/brig,/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/floor,/area/security/prisonlockers) "aiy" = (/turf/simulated/wall,/area/security/prisonlockers) "aiz" = (/obj/machinery/door/firedoor,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "63"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/permabrig) "aiA" = (/obj/effect/spawner/window/reinforced,/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor/plating,/area/security/permabrig) @@ -466,7 +466,7 @@ "aiX" = (/obj/structure/table/reinforced,/obj/item/weapon/gun/energy/laser/practice,/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/item/weapon/paper/firingrange,/turf/simulated/floor,/area/security/range) "aiY" = (/turf/simulated/wall/r_wall,/area/security/medbay) "aiZ" = (/turf/simulated/wall,/area/security/medbay) -"aja" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/security/medbay) +"aja" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 101; on = 1; pressure_checks = 1},/turf/simulated/floor{dir = 8; icon_state = "neutralfull"},/area/security/interrogation) "ajb" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_y = 3},/obj/machinery/camera{c_tag = "Brig Prisoner Processing"; dir = 2; network = list("SS13")},/obj/machinery/status_display{density = 0; layer = 4; pixel_x = 0; pixel_y = 32},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/processing) "ajc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/processing) "ajd" = (/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/processing) @@ -497,8 +497,8 @@ "ajC" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/table/reinforced,/obj/machinery/syndicatebomb/training,/turf/simulated/floor{icon_state = "red"; dir = 5},/area/security/range) "ajD" = (/obj/machinery/sleeper{dir = 8; name = "Prisoner Sleeper"},/obj/item/device/radio/intercom{broadcasting = 0; freerange = 0; frequency = 1475; listening = 1; name = "Station Intercom (Security)"; pixel_x = -30; pixel_y = 0},/turf/simulated/floor{dir = 10; icon_state = "whiteblue"; tag = "icon-whitehall (WEST)"},/area/security/medbay) "ajE" = (/obj/machinery/sleep_console{dir = 8},/turf/simulated/floor{tag = "icon-whiteblue"; icon_state = "whiteblue"},/area/security/medbay) -"ajF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/camera{c_tag = "Brig Medbay"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) -"ajG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) +"ajF" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/camera{c_tag = "Brig Medbay"; dir = 2; network = list("SS13")},/obj/machinery/alarm{pixel_y = 25; target_temperature = 283.15},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) +"ajG" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "ajH" = (/obj/structure/stool/bed,/obj/item/weapon/bedsheet/blue,/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "ajI" = (/obj/structure/table,/obj/item/device/camera{name = "detectives camera"; desc = "A one use - polaroid camera. 30 photos left."; pixel_x = 0; pixel_y = 0; pictures_left = 30},/obj/machinery/light_switch{pixel_x = -25},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/processing) "ajJ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/processing) @@ -536,9 +536,9 @@ "akp" = (/obj/structure/stool/bed/roller,/obj/machinery/atmospherics/unary/vent_pump,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{dir = 8; icon_state = "whiteblue"},/area/security/medbay) "akq" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "akr" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) -"aks" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{level = 1},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) -"akt" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 10},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) -"aku" = (/obj/machinery/atmospherics/unary/vent_pump,/turf/simulated/floor{icon_state = "white"},/area/security/medbay) +"aks" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) +"akt" = (/turf/simulated/floor{icon_state = "white"},/area/security/medbay) +"aku" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/lobby) "akv" = (/obj/structure/stool/bed/roller,/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "akw" = (/obj/structure/table,/obj/machinery/light{dir = 8},/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0; tag = "icon-alarm0 (EAST)"},/obj/item/weapon/storage/box/evidence,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/processing) "akx" = (/obj/structure/stool/bed/chair{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/processing) @@ -572,8 +572,8 @@ "akZ" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/obj/effect/landmark/start{name = "Brig Physician"},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "ala" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) "alb" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/security/medbay) -"alc" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 5},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) -"ald" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 9; pixel_y = 0},/turf/simulated/floor{icon_state = "white"},/area/security/medbay) +"alc" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/lobby) +"ald" = (/obj/machinery/alarm{dir = 4; icon_state = "alarm0"; pixel_x = -22; pixel_y = 0; tag = "icon-alarm0 (EAST)"},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prisonershuttle) "ale" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/processing) "alf" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply{dir = 8; initialize_directions = 11; level = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/security/processing) "alg" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; external_pressure_bound = 100; on = 1; pressure_checks = 1},/turf/simulated/floor,/area/security/processing) @@ -976,7 +976,7 @@ "asN" = (/obj/effect/spawner/window/reinforced,/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor/plating,/area/security/prison/cell_block/C) "asO" = (/obj/structure/table,/obj/machinery/door/firedoor,/obj/machinery/door/window/brigdoor{dir = 2; name = "Secure Door"; req_access_txt = "63"},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/turf/simulated/floor,/area/security/brig) "asP" = (/obj/effect/spawner/window/reinforced,/turf/simulated/floor/plating,/area/maintenance/auxsolarport) -"asQ" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/obj/machinery/light{icon_state = "tube1"; dir = 4},/turf/simulated/floor{icon_state = "red"; dir = 4},/area/security/lobby) +"asQ" = (/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/clownoffice) "asR" = (/obj/structure/stool/bed/chair{dir = 4},/turf/simulated/floor,/area/security/prison/cell_block/C) "asS" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/obj/machinery/light{tag = "icon-tube1 (NORTH)"; icon_state = "tube1"; dir = 1},/turf/simulated/floor,/area/security/prison/cell_block/C) "asT" = (/obj/structure/stool/bed/chair/wood/wings{tag = "icon-wooden_chair_wings (EAST)"; icon_state = "wooden_chair_wings"; dir = 4},/turf/simulated/floor/plating,/area/maintenance/abandonedbar) @@ -999,7 +999,7 @@ "atk" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/visible{dir = 10},/turf/simulated/floor/plating{tag = "icon-warnplate (NORTHEAST)"; icon_state = "warnplate"; dir = 5},/area/maintenance/fsmaint) "atl" = (/obj/structure/cable,/obj/machinery/power/solar{id = "auxsolareast"; name = "Port Auxiliary Solar Array"},/turf/simulated/floor/airless{icon_state = "solarpanel"},/area/solar/auxport) "atm" = (/turf/simulated/floor/plating/airless,/turf/simulated/floor/plating/airless/catwalk{tag = "icon-catwalk3"; icon_state = "catwalk3"},/area/solar/auxport) -"atn" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prisonershuttle) +"atn" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/wood,/area/clownoffice) "ato" = (/obj/structure/closet/secure_closet/brig{id = "Cell 5"; name = "Cell 5 Locker"},/obj/machinery/camera{c_tag = "Brig Cell 5"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison/cell_block/B) "atp" = (/obj/structure/closet/secure_closet/brig{id = "Cell 4"; name = "Cell 4 Locker"},/obj/machinery/camera{c_tag = "Brig Cell 4"; dir = 2; network = list("SS13")},/turf/simulated/floor{icon_state = "red"; dir = 8},/area/security/prison/cell_block/A) "atq" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Secure Gate"; name = "Security Blast Door"; opacity = 0},/obj/structure/cable,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor/plating,/area/security/prison/cell_block/B) @@ -1124,7 +1124,7 @@ "avF" = (/obj/structure/table/reinforced,/obj/structure/mirror{pixel_x = 28},/obj/item/weapon/razor,/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) "avG" = (/obj/structure/table/woodentable,/obj/item/seeds/bananaseed,/turf/simulated/floor/wood,/area/clownoffice) "avH" = (/obj/structure/table/woodentable,/obj/item/weapon/ore/bananium,/obj/item/weapon/stamp/clown,/turf/simulated/floor/wood,/area/clownoffice) -"avI" = (/turf/simulated/floor/wood,/area/clownoffice) +"avI" = (/obj/item/flag/clown,/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/clownoffice) "avJ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor/wood,/area/clownoffice) "avK" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/light_switch{pixel_x = 0; pixel_y = 25},/turf/simulated/floor/wood,/area/clownoffice) "avL" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/clown{name = "Clown's Office"; req_access_txt = "46"},/turf/simulated/floor,/area/clownoffice) @@ -1161,19 +1161,19 @@ "awq" = (/obj/structure/table/reinforced,/obj/machinery/light{dir = 4},/turf/simulated/floor{dir = 2; icon_state = "barber"},/area/civilian/barber) "awr" = (/obj/structure/stool/bed/chair/office/dark{dir = 4},/obj/effect/landmark/start{name = "Clown"},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Clown Office APC"; pixel_x = -24},/turf/simulated/floor/wood,/area/clownoffice) "aws" = (/obj/structure/table/woodentable,/obj/item/device/flashlight/lamp,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/clownoffice) -"awt" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor/wood,/area/clownoffice) +"awt" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 1; initialize_directions = 11; level = 1},/turf/simulated/floor,/area/hallway/primary/fore) "awu" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor/wood,/area/clownoffice) "awv" = (/obj/effect/spawner/window/reinforced,/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "magistrate"; name = "Privacy Shutters"; opacity = 0},/turf/simulated/floor/plating,/area/magistrateoffice) "aww" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "awx" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/turf/simulated/floor,/area/hallway/primary/fore) -"awy" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 10},/turf/simulated/floor,/area/hallway/primary/fore) +"awy" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1},/turf/simulated/floor,/area/hallway/primary/fore) "awz" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/hallway/primary/fore) "awA" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor,/area/hallway/primary/fore) "awB" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/hallway/primary/fore) "awC" = (/obj/machinery/bot/secbot/beepsky{name = "Officer Beepsky"},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/hallway/primary/fore) "awD" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor,/area/hallway/primary/fore) "awE" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor,/area/hallway/primary/fore) -"awF" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/turf/simulated/floor,/area/hallway/primary/fore) +"awF" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/floor,/area/hallway/primary/fore) "awG" = (/obj/structure/table,/obj/item/weapon/storage/box/evidence,/obj/machinery/light,/obj/machinery/camera{c_tag = "Brig Detective's Office Evidence Processing"; dir = 1; network = list("SS13")},/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "awH" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) "awI" = (/obj/machinery/photocopier,/turf/simulated/floor{icon_state = "floorgrime"},/area/security/detectives_office) @@ -1190,9 +1190,9 @@ "awT" = (/obj/structure/lattice,/obj/structure/grille{density = 0; icon_state = "brokengrille"},/turf/space,/area/space) "awU" = (/obj/machinery/camera{c_tag = "Clown's Office"; dir = 4; network = list("SS13")},/turf/simulated/floor/wood,/area/clownoffice) "awV" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor/wood,/area/clownoffice) -"awW" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/turf/simulated/floor/wood,/area/clownoffice) +"awW" = (/obj/machinery/atm{pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; layer = 2.4; on = 1},/turf/simulated/floor,/area/hallway/primary/fore) "awX" = (/obj/structure/rack,/obj/item/clothing/under/rank/clown,/obj/item/weapon/storage/backpack/clown,/obj/item/clothing/mask/gas/clown_hat,/obj/item/clothing/shoes/clown_shoes,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor/wood,/area/clownoffice) -"awY" = (/obj/item/flag/clown,/turf/simulated/floor/wood,/area/clownoffice) +"awY" = (/obj/machinery/alarm{dir = 1; icon_state = "alarm0"; pixel_y = -22},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1},/turf/simulated/floor/wood,/area/clownoffice) "awZ" = (/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/power/apc{dir = 8; name = "Fore Primary Hallway APC"; pixel_x = -24},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "axa" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light,/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "axb" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) @@ -1237,7 +1237,7 @@ "axO" = (/obj/machinery/door/firedoor,/turf/simulated/floor{icon_state = "redcorner"; dir = 4},/area/hallway/primary/fore) "axP" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall,/area/hallway/primary/fore) "axQ" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall,/area/hallway/primary/fore) -"axR" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/turf/simulated/floor,/area/maintenance/fsmaint) +"axR" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/light,/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{dir = 8; icon_state = "redcorner"},/area/hallway/primary/fore) "axS" = (/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/machinery/power/apc{dir = 1; name = "Security Maintenance APC"; pixel_y = 24},/obj/structure/disposalpipe/segment,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "axT" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) "axU" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/wood,/area/crew_quarters/mrchangs) @@ -6082,6 +6082,9 @@ "cmX" = (/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "caution"; dir = 4},/area/hallway/secondary/construction{name = "\improper Engineering Training"}) "cmY" = (/obj/machinery/door/firedoor{dir = 1; name = "Firelock North"},/obj/machinery/door/airlock/glass_engineering{name = "Engineering"; req_access_txt = "0"; req_one_access_txt = "11;24"},/turf/simulated/floor,/area/engine/controlroom) "cmZ" = (/turf/simulated/wall,/area/engine/controlroom) +"cna" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor{dir = 2; icon_state = "redcorner"},/area/hallway/primary/fore) +"cnb" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "12"},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor,/area/maintenance/fsmaint) +"cnc" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 4},/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/floor/plating,/area/maintenance/fsmaint) "cnd" = (/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{dir = 8; initialize_directions = 11; level = 1},/turf/simulated/wall/r_wall,/area/construction) "cne" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_N2O = 1; scrub_Toxins = 1},/turf/simulated/floor{icon_state = "dark"},/area/construction) "cnf" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor{icon_state = "dark"},/area/construction) @@ -6105,6 +6108,9 @@ "cnx" = (/obj/machinery/power/apc{dir = 4; name = "Medbay Storage APC"; pixel_x = 25},/obj/structure/cable,/turf/simulated/floor{dir = 4; icon_state = "blue"},/area/medical/biostorage) "cny" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor/plating,/area/maintenance/asmaint) "cnz" = (/turf/simulated/wall/r_wall,/area/maintenance/asmaint) +"cnA" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/turf/simulated/wall,/area/crew_quarters/sleep) +"cnB" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 8; req_access_txt = "24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos/control) +"cnC" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor,/area/atmos/control) "cnD" = (/obj/structure/sign/biohazard,/turf/simulated/wall,/area/toxins/xenobiology) "cnE" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/firedoor,/obj/machinery/door/airlock/research{name = "Xenobiology Research"; req_access_txt = "47"},/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "cnF" = (/obj/structure/sign/securearea,/obj/machinery/atmospherics/pipe/simple/hidden/supply,/turf/simulated/wall,/area/toxins/xenobiology) @@ -6554,7 +6560,6 @@ "cwY" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/structure/stool/bed/chair/comfy/black{dir = 8},/obj/machinery/atmospherics/pipe/simple/hidden/supply{level = 1},/turf/simulated/floor,/area/engine/break_room) "cxa" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/turf/simulated/floor,/area/atmos/control) "cxb" = (/obj/machinery/atmospherics/portables_connector,/turf/simulated/floor,/area/atmos/control) -"cxc" = (/obj/machinery/atmospherics/portables_connector,/obj/machinery/door_control{id = "atmos"; name = "Atmospherics Lockdown"; pixel_x = 24; pixel_y = 4; req_access_txt = "24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor,/area/atmos/control) "cxd" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id_tag = "Biohazard_medi"; name = "Quarantine Lockdown"; opacity = 0},/obj/machinery/door/airlock/maintenance{name = "Surgery Maintenance"; req_access_txt = "45"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cxe" = (/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers,/turf/simulated/wall/r_wall,/area/medical/surgery) "cxf" = (/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/turf/simulated/wall/r_wall,/area/medical/surgery) @@ -6609,7 +6614,6 @@ "cyi" = (/obj/machinery/atmospherics/pipe/simple/hidden/universal{dir = 4},/turf/simulated/floor,/area/atmos/control) "cyj" = (/obj/machinery/atmospherics/pipe/manifold/hidden/cyan{level = 2},/turf/simulated/floor,/area/atmos/control) "cyk" = (/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/cyan{dir = 9; level = 2},/turf/simulated/floor,/area/atmos/control) -"cyl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/hologram/holopad,/turf/simulated/floor,/area/atmos/control) "cym" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 6},/obj/machinery/door/airlock/maintenance{req_access_txt = "24"},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cyn" = (/obj/machinery/atmospherics/pipe/manifold/hidden/supply,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/scrubbers{dir = 6},/turf/simulated/floor/plating,/area/maintenance/asmaint) "cyo" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden/supply{dir = 4},/obj/machinery/atmospherics/pipe/manifold/hidden/scrubbers{level = 1},/turf/simulated/floor/plating,/area/maintenance/asmaint) @@ -8038,14 +8042,14 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetaePaeQaeRaetaeSaeQaeTaetaaaadJaeUaeVaeWadJadpaeXadpadpadpaeYaeZaajacxafaafbafcafdafeacxaffaffaffaffaffaffaffacmacoafgafiafjafhacmacmaflafkafnafoafmacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakSakSakSaczaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakhakhakhakhakhakhakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafqafrafsaetafqafrafsaetaaaadJaftafuafvafwafxafyafzafAafBafCafDafEacxacxafpafGafFacxacxaffafIafJafKafLafMafNafOafPafQafRafLafLafSafTafUafVafWafXafYacTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaakSaaaaabaaaalwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakhakhakhakhakhakhakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafZafsagaaetagbafsagcaetaaaadJadJadJadJadJagdageagfafHaghagiagjagkaglagmagnagoagpagqagragsagtaguagvagvagvagwagxagyagzagvagvagvagvagAafnagBagCagDagEagFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjaabamkaabamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakhakhakhakhakhakhakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafsafqafsaetafsafqafsaetaaaagGagHagIagIagJagKagLagMaggagOagPagQagRaglagSagTagUagVagWagWagXagYagZahaahaahaahbahcahdaheahfahaahaahgahhahiahjahkahlahmacTahnahnahnahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjamjakSaaaamTaaaakSamjamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakhakhakhakhakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafqafsafqaetafqafsafqaetaaaagGahoahpahqahrahsahtahuahvahwahxahyahzaglahAahBahCahDahEahFahGahHahIahJagNahKahGahMahLahOahPagNahKahGahGahnacTacTacTacTacTahQahQahQahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjaabaabaabamTaabaabaabamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczakSaczaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafqafqafsaetafqafqafsaetaaaagGahRahSahTagGagdahUahVahWahXahYahZaiaaglaibaicagUaidaieaifahGaigaihaiiaijaikahNailainaioaipaiqairaiqaisahnahQahQahQahQahQahQahQahQahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjaaaaaaaaaaoOaaaaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafsafqaitaetafsafqaiuaetaaaagGaivaiwaixagGaiyaiyaiyaiyaizaimaiAaiCaglaiDaiEaiFaiGaiHaiIahGaiJaiKaiLaiMaiNaiBaiOaiQaioaipaiRairaiRaiSahnahQahQahQahQahQahQahQahQahnamjamjapBaabamjamjamjamjamjamjamjamjamjamjamjamjamjamjaabaabapCapDapEaabaabamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakSaabaoQaabakSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaetaiTaiUaiVaiWaiTaiUaiVaiXaiYaiZaiZaiZajaaiZaiZaiZaiZajbajcajdajeajfajgaiPajhajjajkajiajmahGajnajoajpajqaiNaiBajqaiQajsaipainainajtajuajvahQahQahQahQahQahQahQahQahnaabaabaabaabaabaabaaaaabaaaaabaabaabaabaabaabaabaabaaaaaaaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafsafqafsaetafsafqafsaetaaaagGagHagIagKagJahqagLagMaggagOagPagQagRaglagSagTagUagVagWagWagXagYagZahaahaahaahbahcahdaheahfahaahaahgahhahiahjahkahlahmacTahnahnahnahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjamjakSaaaamTaaaakSamjamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakhakhakhakhakhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafqafsafqaetafqafsafqaetaaaagGahoahpahsahrahuahtahTahvahwahxahyahzaglahAahBahCahDahEahFahGahHahIahJagNahKahGahMahLahOahPagNahKahGahGahnacTacTacTacTacTahQahQahQahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjaabaabaabamTaabaabaabamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczakSaczaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafqafqafsaetafqafqafsaetaaaagGahRahSahVagGagdahUaixahWahXahYahZaiaaglaibaicagUaidaieaifahGaigaihaiiaijaikahNailainaioaipaiqairaiqaisahnahQahQahQahQahQahQahQahQahnaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaamjaaaaaaaaaaoOaaaaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetafsafqaitaetafsafqaiuaetaaaagGaivaiwajaagGaiyaiyaiyaiyaizaimaiAaiCaglaiDaiEaiFaiGaiHaiIahGaiJaiKaiLaiMaiNaiBaiOaiQaioaipaiRairaiRaiSahnahQahQahQahQahQahQahQahQahnamjamjapBaabamjamjamjamjamjamjamjamjamjamjamjamjamjamjaabaabapCapDapEaabaabamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaakSaabaoQaabakSaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaetaiTaiUaiVaiWaiTaiUaiVaiXaiYaiZaiZaiZaiZaiZaiZaiZaiZajbajcajdajeajfajgaiPajhajjajkajiajmahGajnajoajpajqaiNaiBajqaiQajsaipainainajtajuajvahQahQahQahQahQahQahQahQahnaabaabaabaabaabaabaaaaabaaaaabaabaabaabaabaabaabaabaaaaaaaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczaczakSakSaabaabaaaapFaaaaabaabakSakSaczaczaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetajwajxajyafqajzajAajBajCaiYajDajEajFajGajHaQKaQKaiZajIajJajKajLajMaiPajOajPajQajRajSajiajUajVajWajWajqajXajYajZakaakbakcakdakeakfainakgahQahQahQahQahQahQahQahQahnaabarxaryaryaryarzaryaryaryaryarzaryaryaryaryarAaabaaaaaaaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaabaaaaabaaaaaaapFaaaaaaaabaaaaabaaaaaaaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetakiafqakjakkaklakmaknakoaiYakpakqakraksaktakuakvaiZakwakxakyakzajMakAakBakCakDakEakFakGakHakIajWakJakKakLajlakNakOakPakQainainainakRajvahQahQahQahQahQahQahQahQahnaabasqaabaabaabasqaabaaaaaaaabasqaabaabaaaaaaasqaabaaaaabaabapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaabarBarBarBarBarBaaaarCaaaarBarBarBarBarBaabaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetakTakUakjafqakVakmakWakXaiYakYakZalaalbalcaldakvaiZalealfalgalhaliaiPaljalkajQallalmajialnaloalpalpalqaiNajrajNaltaluainaiqairainalvahnahnahnahnahnahnahnahnahnahnaabasqaabaaaapCapDapEaaaaaaapCapDapEaaaaaaapCapDapEaabaabaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaabaaaaabaaaaaaapFaaaaaaaabaaaaabaaaaaaaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetakiafqakjakkaklakmaknakoaiYakpakqakrakraksaktakvaiZakwakxakyakzajMakAakBakCakDakEakFakGakHakIajWakJakKakLajlakNakOakPakQainainainakRajvahQahQahQahQahQahQahQahQahnaabasqaabaabaabasqaabaaaaaaaabasqaabaabaaaaaaasqaabaaaaabaabapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaabarBarBarBarBarBaaaarCaaaarBarBarBarBarBaabaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaetakTakUakjafqakVakmakWakXaiYakYakZalaalbaktaktakvaiZalealfalgalhaliaiPaljalkajQallalmajialnaloalpalpalqaiNajrajNaltaluainaiqairainalvahnahnahnahnahnahnahnahnahnahnaabasqaabaaaapCapDapEaaaaaaapCapDapEaaaaaaapCapDapEaabaabaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaasrassassassassastasuasvaswaswaswaswasxaaaaczaaaaaaaaaalxalyalyalyalzalAaaaaaaaaaaetaetaetalBalBalCajTalEalBaiZalFalGalHalIalJalKalLaiZalMalNalOakzalPajmalQalRalSalTalUajmalValWalXalYalZamaakMalramdameainaiRamfamgamhahnamiamiamiamiamiaaaaaaaaaaaaaabasqaabaaaapCaqDapEaaaaaaapCaqDapEaaaaaaapCaqDapEaaaaaaaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaabatlatlatlatlatlaaaatmaaaatlatlatlatlatlaabaczaaaaaaaaaamlammamnamoamlalsalDalDambamsamtamuamvamwamxamyamzamAaiZaiZamBamCaiZaiZaiZaiZaiZamDamEamcamGamDajmaiPajhamHajkajiajmamIamJamKamLahGahGahGahGamLamMamNamKahGahnamOahnamPamQamRamRamSaaaaaaaaaaaaaaaasqaabaaaapCaqDapEaaaaaaapCaqDapEaaaaaaapCaqDapEaaaaaaaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaabaaaaaaaaaaxyaaaaaaaaaaabaaaaaaaaaaabaaaaaaaaaamUamVamWamXamYamZanaanbancandaneanfanganhanianjankanlanmannanoanpanqanranqanqansantanuanvanwanqanxanyanzanAanBanCanDanEanFanqanGanHanIanJanKanLanManNanOanPanQanRanSanTanUanVanWanXaaaaaaaaaaaaaaaasqaabaaaapCaqDapEaaaaaaapCaqDapEaaaaaaapCaqDapEaaaaaaaaaapCaqDapEaaaaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8054,17 +8058,17 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaycatlatlatlatlatlaaaatmaaaatlatlatlatlatlaabaczaaaaaaaaaamUapGaoRapHamlalsapqampaprapKapLapMapNapOapPapQaoZapRapSaptapUapVapxapXapYapyaqaaqbapzaqdaqeapxaqfaqgapIaqiaqjapJaqlaqgapmaqmaqnaqoaqpapmaqqaqraqsaqtaquaqvapvaoIaqwaqxaqyaqzaqAaqAaqBamiaqCamiaabasqaabaaaapCaqDapEaaaaaaapCaqDapEaaaaaaapCaqDapEaaaaaaaaaaabasqaabaaaaaaawTaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaaaaaaaaaaabaaaaaaaaaaxyaaaaaaaaaaabaaaaaaaaaaczaaaaaaaaaamlaqEaoRaoRaqFaqGaqHaqIaqJaqKanjaqLaqManeaneaqNaoZaqOaqPaqQaqRaqSapTaqUaqVaqWaqXaqYaqZaqVaraapWarcardapZarfargaqcariarjaqharlarmarnaroapmarparqarqarrarqarsapvaoIanTanTanTanTartanTaruarvarwamiarxaxvarAaaaaaaaoOaabaabaabaabaoOaabaabaabaabaoOaabaabaabaabaxwaxxarAaabaaaamjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaabarBarBarBarBarBaaaatmaaaarBarBarBarBarBaabaczaaaaaaaaaamlarDarDarDamlalsalDalDalDarFarGaojarHarIanearJaoZarKarLaqkarNarOaqTarQarRarbarTarUarearWarXaqTarYarjarhasaasbarhariascapmarkarEasfarMapmashasiarqarrarqasjapvaskaslasmasnasmasoaspamiamiaoJamiasqaxWaxXaryaryaxvaryaryaryaryaxvaryaryaryaryaxvaryaryaryaxYaxZaxWasqaabaaaamjaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaaaaDpaDparParParParParParPaDpaDpaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaaaasrassassassassastasuasvaswaswaswaswasxaaaaczaaaaaaaaaasyaszaszaszasAasBaaaaaaaoUaoUaoUaoUaoUasCaneasDasEaoZaoZaoZasFasGapcapcapcapcasHasIapcapcapcasJasKasLarVarSasOarZariasQapmasRasSaAqasUasVasWasXasYasZarqataapvatbatcatdateatfatgathatiatjatkamiayKaxvayLaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabayPayQayLaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaDpaDpasTaApaEqaEraEsaEtaEuaEqaDpaDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaabayZatlatlatlatlatlaaaatmaaaatlatlatlatlatlaabaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoUatnaneasDasEatoapSaptapUapVapxatpapYasdatratsaseatuatvapxatwatxatyatzatAatAatBatCapmatDatEatFatGapmatHatIatJarrarqatKapvatbartatcatcatcatLanTatMatNatOamiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabazDaabaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaDpaDpaDpaDpaIZaEraFuaEraFuaFvaEraEraEraFwaDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaaaasrassassassassastasuasvaswaswaswaswasxaaaaczaaaaaaaaaasyaszaszaszasAasBaaaaaaaoUaoUaoUaoUaoUasCaneasDasEaoZaoZaoZasFasGapcapcapcapcasHasIapcapcapcasJasKasLarVarSasOarZalcakuapmasRasSaAqasUasVasWasXasYasZarqataapvatbatcatdateatfatgathatiatjatkamiayKaxvayLaabaabaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabayPayQayLaabaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaabaDpaDpasTaApaEqaEraEsaEtaEuaEqaDpaDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaabayZatlatlatlatlatlaaaatmaaaatlatlatlatlatlaabaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoUaldaneasDasEatoapSaptapUapVapxatpapYasdatratsaseatuatvapxatwatxatyatzatAatAatBatCapmatDatEatFatGapmatHatIatJarrarqatKapvatbartatcatcatcatLanTatMatNatOamiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaabaabaabaabazDaabaabaaaaaaaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaDpaDpaDpaDpaIZaEraFuaEraFuaFvaEraEraEraFwaDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaaaaaaaabaaaaabaaaaaaazJaaaaaaaabaaaaabaaaaaaaczaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaoUatPaneatQasEaqOatRatSatTatUasgatWatXatYatZauaaubaucaudasMaufaugaugauhaugaugauiaujasNaulaumapmaunapmauoaupauqaurausautapvatbauuauvauvauvauwauxauyauzauAamiaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaabaabaabaEnaabaabaaaaaaaabaaaaabaabaaaaaaaaaaaaaaaaaaaaaaDpaHZaIYdckaHYaGLaGMaGNaEraEraGOaGPaEraGQaDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaczaczaczaabaabaabaabasPaDyasPaabaabaabaabaczaczaczaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoUauBaneauCasEarKauDatqauFauGaqTarQauHaqTauJauKaqTauLarXaqTauMauNauOauNauNauOauNauPapmasRauQapmauRapmauSauTauUauVauWauWauXauYauZavaavaavaavbavcavdaveaveaveaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaabaabattaFrattaabaabaaaaabaaaaaaaabaabaaaaaaaaaaaaaaaaaaaDpaGJaGKaHWaHXaIaaIbaEraEraEraIcaIdaEraIeaDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaagaaaaaaaaaaaaaabaaaaabaaaaaaaabaaaasPaEGatVaaaaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfavfavfavfavfavfaoUaoUavgaoUasEasEasEavhaviavjavkavkavlavkavlavkavkavmasJasJaukaueavpauEaueavpauEauIavsavsavsavsavsapmavtavuavvavvavwavvavxavyavaavzavAavBavbavCavDavEavFavcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaabaaaattaGHattaaaaabaaaaabaaaaaaaaaaabaabaaaaaaaaaaaaaaaaDpaFsaFtdckaGIaJbaJcaJdaEraJfaJgaJhaJiaDpaJjaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaabaaaaabaaaaaaaabasPasPaFLavnasPaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfavGavHavIavJavKavLavMavNavMavOavMavMavPavQavQavQavQavQavRavSavTavQavQavQavQavUavQavQavQavQavVavWavXavYavZawaawbawcapuawdaweawfawgawhawiawjawkavaawlawmawnavbawoawpawoawqavcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabattattaHTattattaabaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaDpaEoaEpdckaDpdckdckdcldcpaDpaDpaDpaDpaDpaDpaabaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaaaaaaaaaaaaaaaaaaaabaabaaaaabaaaaaaaabaHaaHbaHcaHdaHaaABaABaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfawrawsawtawuawYavoawwawxawyavVavVavVawzavVavVavVavVavVawAavVavVavVavVavVavVawBavVavVavVavVawCavVawDavVawEavVavVawFapuawGawHawIawJawfawKawjawLavaawMawNawOawPawQawRawSavFavcaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaIUaIVaIWaIXaIUaabaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaMUaDpdckaDpdckaLHaKaaLHdcmaLHaLHaLHaAraMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaABaABaABaABaABaabaabaHaaADaAGaIuaHaaBuaABaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfawUawVawWawXctIavfawZaxaaxbaxcaxdaxeaxfaxgaxaaxcaxcaxcaxhaxcaxcaxcaxcaxcaxcaxiaxjaxkaxkaxkaxlaxmaxnaxmaxoaxpaxmaxqapuaxraxraxraxraxraxrawjawkavaaxsawmaxtavbawoaxuawoawqavcaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaIUaKeaKfaKgaIUaabaaaaabaaaaaaaabaaaaaaaMUavqaMUavqaMUaAraLHaLHaLHaLHaLHaLHaLHaLHaLHaNaaAsaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaBAaBzaBAaaaaaaaaaaABaABaABaABaCCaBGaCDaABaaaaaaaHaaJtaCEaJvaDzayYaABaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfavfavfavfavfavfavfaxzaxzaxAavravraxDaxEaxFaxGawvawvaxGaxJaxGaxKaxKaxKaxKaxKaxKaxLaxKaxKaxMaxNaxOaxPaxzaxQaxzaxRaxzaxzaqzaBlanTanTanTanTaxSawkavaaxTawmaxUavbaxVawRawSavFavcaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaBAaChaBAaaaaabaIUaAtaLvaLwaIUaKkaKkaKkaKkaKkavqavqavqaMUaBiaLHaNaaAsdcmaLHdcmdcmdcmaMUaxBaMUaMUaMUaMUaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaxCaybaxCaaaaaaaabaABaBwaEIaEEayYaFOayYaABaxCaxCaHaaHaaHfaKBaDzayYaABaABaxCaxCaxCaABaABaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxAaydayeayfaxEaygaxGayhayiayjaykaxHaymayoaynaypayqayraysaytaxIayvavVavWaywayxayyayzayzayzayzayzayAayzayzayzayzayBayCayDayEayFayGayHayIayJawoawqavcaabayaaylaylaylaylaylayuaabaabaaaaaaaaaaaaavqaCoavqaaaaKkaIUaIUaMXaMYaIUaCqaLHaLHaLHdcmaBFaLHaCsaMUaLHaLHaLHaDbdcmaLHaMUaDhaDfaMUaLHaDiaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayRaySayTaaaayUayVayWaabaabaxCayYaxCaaaaaaaabaABaIqaItaIsaIyaIxaCraABaJrayYaMfaJsaKwaJuaJuaJuaJuaJuaJuaJuaJuaKxaABaaaaKyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaazbazcazdaxEaygaxGazeazfazgaykaxHaziazjazjazjazjazjaysazjaxIavQavVavWaxzazlazmaznaznaznaznazoazpazqazqazqazqazqazqazrazsaztazuazvazwazxazyavcavcazzayMazBazBazBazBazBayMazzaabaaaaaaaaaaaaavqaGDayNaaaaKkaCBaEfaEcaEhaLHaLHaLHdcmaLHdcmaEiaLHaLHaMUaLHaEkaEjaEiaxBaLHaMUaFjaCFaMUaLHaDjaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaoPaoPaaaaaaaaaaaaaaaaaaaabaaaaabaaaaaaaabasPasPaFLavnasPaaaaabaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfavGavHasQavJavKavLavMavNavMavOavMavMavPavQavQavQavQavQavRavSavTavQavQavQavQavUavQavQavQavQavVavWavXavYavZawaawbawcapuawdaweawfawgawhawiawjawkavaawlawmawnavbawoawpawoawqavcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaabattattaHTattattaabaaaaabaaaaaaaaaaaaaabaabaaaaaaaaaaaaaDpaEoaEpdckaDpdckdckdcldcpaDpaDpaDpaDpaDpaDpaabaabaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaoPaoPaoPaaaaaaaaaaaaaaaaaaaabaabaaaaabaaaaaaaabaHaaHbaHcaHdaHaaABaABaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfawrawsatnawuavIavoawwawxawtawyavVavVawzavVavVavVavVavVawAavVavVavVavVavVavVawBavVavVavVavVawCavVawDavVawEavVawFawWapuawGawHawIawJawfawKawjawLavaawMawNawOawPawQawRawSavFavcaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaabaIUaIVaIWaIXaIUaabaaaaabaaaaaaaabaaaaaaaabaabaaaaaaaMUaDpdckaDpdckaLHaKaaLHdcmaLHaLHaLHaAraMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaABaABaABaABaABaabaabaHaaADaAGaIuaHaaBuaABaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfawUawVawYawXctIavfawZaxaaxbaxcaxdaxeaxfaxgaxRaxcaxcaxcaxhaxcaxcaxcaxcaxcaxcaxiaxjaxkaxkaxkaxlaxmaxnaxmaxoaxpcnaaxqapuaxraxraxraxraxraxrawjawkavaaxsawmaxtavbawoaxuawoawqavcaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaabaIUaKeaKfaKgaIUaabaaaaabaaaaaaaabaaaaaaaMUavqaMUavqaMUaAraLHaLHaLHaLHaLHaLHaLHaLHaLHaNaaAsaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaBAaBzaBAaaaaaaaaaaABaABaABaABaCCaBGaCDaABaaaaaaaHaaJtaCEaJvaDzayYaABaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaavfavfavfavfavfavfavfaxzaxzaxAavravraxDaxEaxFaxGawvawvaxGaxJaxGaxKaxKaxKaxKaxKaxKaxLaxKaxKaxMaxNaxOaxPaxzaxQaxzcnbaxzaxzaqzaBlanTanTanTanTaxSawkavaaxTawmaxUavbaxVawRawSavFavcaaaaaaaaaaaaaaaaaaaaaaaaaabaabaaaaaaaaaaaaaBAaChaBAaaaaabaIUaAtaLvaLwaIUaKkaKkaKkaKkaKkavqavqavqaMUaBiaLHaNaaAsdcmaLHdcmdcmdcmaMUaxBaMUaMUaMUaMUaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaxCaybaxCaaaaaaaabaABaBwaEIaEEayYaFOayYaABaxCaxCaHaaHaaHfaKBaDzayYaABaABaxCaxCaxCaABaABaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaxAaydayeayfaxEaygaxGayhayiayjaykaxHaymayoaynaypayqayraysaytaxIayvavVavWaywayxayyayzcncayzayzayzayAayzayzayzayzayBayCayDayEayFayGayHayIayJawoawqavcaabayaaylaylaylaylaylayuaabaabaaaaaaaaaaaaavqaCoavqaaaaKkaIUaIUaMXaMYaIUaCqaLHaLHaLHdcmaBFaLHaCsaMUaLHaLHaLHaDbdcmaLHaMUaDhaDfaMUaLHaDiaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaayRaySayTaaaayUayVayWaabaabaxCayYaxCaaaaaaaabaABaIqaItaIsaIyaIxaCraABaJrayYaMfaJsaKwaJuaJuaJuaJuaJuaJuaJuaJuaKxaABaaaaKyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazaazbazcazdaxEaygaxGazeazfazgaykaxHaziazjazjazjazjazjaysazjaxIavQavVavWaxzazlazmazncnAaznaznazoazpazqazqazqazqazqazqazrazsaztazuazvazwazxazyavcavcazzayMazBazBazBazBazBayMazzaabaaaaaaaaaaaaavqaGDayNaaaaKkaCBaEfaEcaEhaLHaLHaLHdcmaLHdcmaEiaLHaLHaMUaLHaEkaEjaEiaxBaLHaMUaFjaCFaMUaLHaDjaMUaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazEazFazGazFazEazHazIazHazEaabaxCaKAayOaaaaaaaABaABaABaABaABaDwaKCaMdaMcaMgaMeaMeaMhaMiaMiaDFaDCaABayYaABaABaABaMnaABaaaaabaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabazLazMazNazdaxEaygaxGazOazPazQaykaASazRazjazSazjazTazTaysazjaxIavQavVazUaxzazVazmazWazXazYazZaAaaAbaAcaAdaAeaAfaAgaAhaAiaAjaAkaAlaAmaAnaAoaGzaGBaBeazzayMazBazBazBazBazBayMazzaabaabaabaabavqavqdceayXavqaKkaFiaLHaHKaLHaAraLHaMUaMUaHMaMUaMUaHNdcmdcmaEiaFkaHOaLHaMUaLHaIQaIQaIQaIQaIQaIQaIQaIQaIQaIRaIRaIRaIRaacaIRaIRaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAyazFaAzazFaAyazHaAAazHaAyaABaxCaNHazhaxCaxCaABayYayYayYayYayYayYayYaDwaMnaABaABaABaABaABaNJaABaABayYaBxaABaFlaMnaABaABaABaaaaaaaaaaaaaaaaAHaAHaAHaAHaAHaAHaAHaAHaabazLaAIaAJaAKaALaAMaANaAOaAPaAQaARaxHaAVazjaATaAUaAWaBNaAXaAYaxIavQavVavWaxzatbaAZaBaazXazYazZaBbaAxaAxaAxaAxaAxaAxaAxaAxaAxaAxaBcaBgaBfaBjaBhaCjaCiaCkayMazBazBazBazBazBayMazzazzazzaaaaaaavqaLHdchdciaCqdcnaFkaEiaHKaLHaGyaKaaJZaxBaLHaLHaLHaLHaKhaLHaLHaFkaLpaLHaHNaLHaIQaLsaLraLtaIQaLxaLuaLGaIQaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaAyaBnaBoaBpaAyaBqaBraBsaBtaRkayYaNKaBvaHGaBxaByayYaABaABaABaABaABaABaABaMnaABaNMaNLaNNaABaKzaHLaPxayYaByaABaHGaPyaJuaKxazkaaaaaaaaaaaaaaaaPBaBBaBCaBDaBEaIvaBHaAHaabazLaBIaBJaBKazLaBLaxGaBMaBRaBOaBPazAaBSazjaBTaBVaBUaBXaBWclRazCaBZawxaCaaCbaCcaCdaCeazXazYazZaCfaAxaCgaCgaCgaAxaAxaMTaClaClaCpaBcaBdaDaaDcaDcaDdaCmaMVaCtazBazBazBazBazBaCuaCvaCwazKaaaaaaavqaLHaLHaMZaLHdcnaOMaLHaNeaNoaNoaNoaNoaNpaNoaNraLHaLHaLHaLHaLHaLHaLHaLHdcmaKaaIQaOEaOCaOCaIQaOJaOFaPgaIQaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -8134,8 +8138,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmcrncsAcsBcsCcsBcsDcsEcsFcsGcsHcsIcsHcsJcsKcsKcsKcsKceTbZVbZVbZVcsKcsLcsKcsKcsKcsKcsKcsKcsKcsKcsKcsKcsMcsNcsOcsPcsQcsRcsScsTcsUcsVcsWcsXcsYcsZctactbctcctdctecmnctfctgcthctictjctkcpPctlcoCctmcpPctkctncpOctocoNctpcmscmsctqctrctscttckPbnjbnjbnjbnjcnzcnzcnzbnjbnjbnjcnzaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjIctyctzctAcjIcmAcmAcmAcmAcmAcmAcuTcsncuUctBcswctCcmAcmAcpjbsyctMbsybsyaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacrmctPcsBctQctRctSctTctUctVctWctXctYctZcuacubcuccudcudcuecdqcufcdqcubcugcubcubcubcubcubcubcubcubcubcubcuhcsKcuicujcukbszbuccuncuocupcuqcurcuscutbufcuvcuwcuxcrVcdzcuycuzcuAcpPcpOcpPcpPcuBcuCcuDcpPcpPcpScpOcuEcoNcuFcnzaaacuGckPcuHckPckPaaaaaaaaaaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjIcjIcjIcjIcjIcjIcjIcjIcjIcuIcuJcuKcjIaabaabaaaaaaaabcmAcmActEcmActGctFctHcmAaaaaaabsycuYbsyaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacUabCcqtcqtcqtcqtcqtcqtcuZcvacvacvbcsHcvccqtcqxcvdcvecvecvfcvecvgcvecvebvYbvZcvecvebvZbvZbvZcvecvecvecvecvlcvmcvncvocvpcvqcvrcvscvtcvscvscvucvscvvbxNcvxcvycvzcrYbHTcuFcvAcvBcvCcvDcvEcvFcvGcoCcvHcvFcvIcpScvJcvKcoNcuFcnzaaacuGcvLcvMcvNckPaaaaaaaaaaaacvOaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacjIcvPcvQcvRbxWcvTcvUcvVcvWcvXcvYcvZcjIaabaaaaaaaaaaabaabcwectJcuVcxCcxBcwacweaaaaaabsycwobsyaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczaczakSakSaczakSakSakSalwakSakSaabalwawTaaaaabaabcwpcwpcwpcqtcwqcwrcwscwtcwucwvcwwbxYcwybxZcwAcwBcwCcwDcwEcwFcwGcwHcwIcvecwHcwJcwKcwLcwLcwMcvecwNcwOcwPcwQbZUcwRbyfcwTcwUcwVcwWcwVcwXcwYbzncxacxbcxccrYcrYcuFcvAcoNcoNcxdcoNcoNcxecxfcxgcxgcxgcxhcxgcxicxgcxjcnzaaacuGcxkcvMcxlckPbhsbhsbhsbhsckPckPcxpcxqcxqcxrcxqcxqcxrcxsaaaaaacjIcxtbTHcxtcxvcxwcqacxxcvWcxycxzcxycjIaaaaaaaaaaaaaaaaaacwecwbcuWcxCcxCcwccweaaaaaaaaacxJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaawTaaaaaaaaaaabaabcwpcqtcqtcqtcqtcqtcqtcqtcqtcxLcwybxZcxNcxOcxPcxQcxQcxQcxQcxRcxScxTcwLcxUcwLcwLcxVcwLcxWcxXcxYcxZcwQbZUcyacybcyccwUcydcyecyfcwUcygcyhcyicyjcykcylcymcyncyocypcypcyqcyrcyscytcyucdzcdzcdzcyvbHTbHTcbRbHTcnzaaacuGcywcvMcyxcyycyzcyAcyBcyCbzLcyEbTJbzLcyEbTLbzLcyHcyIcyJaaaaaacjIcxtcxtcxtbzMcyLcyMcyNcyOcyPcyQcyRcjIaaaaaaaaaaaaaaaaaacwectKcxCczMcxCcuLcweaaaaaaaaacyXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaczaczaczakSakSaczakSakSakSalwakSakSaabalwawTaaaaabaabcwpcwpcwpcqtcwqcwrcwscwtcwucwvcwwbxYcwybxZcwAcwBcwCcwDcwEcwFcwGcwHcwIcvecwHcwJcwKcwLcwLcwMcvecwNcwOcwPcwQbZUcwRbyfcwTcwUcwVcwWcwVcwXcwYbzncxacxbcnBcrYcrYcuFcvAcoNcoNcxdcoNcoNcxecxfcxgcxgcxgcxhcxgcxicxgcxjcnzaaacuGcxkcvMcxlckPbhsbhsbhsbhsckPckPcxpcxqcxqcxrcxqcxqcxrcxsaaaaaacjIcxtbTHcxtcxvcxwcqacxxcvWcxycxzcxycjIaaaaaaaaaaaaaaaaaacwecwbcuWcxCcxCcwccweaaaaaaaaacxJaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaaaaaaaaczaaaaaaaabaabaaaaabaabaaaaaaaabaabaabaaaawTaaaaaaaaaaabaabcwpcqtcqtcqtcqtcqtcqtcqtcqtcxLcwybxZcxNcxOcxPcxQcxQcxQcxQcxRcxScxTcwLcxUcwLcwLcxVcwLcxWcxXcxYcxZcwQbZUcyacybcyccwUcydcyecyfcwUcygcyhcyicyjcykcnCcymcyncyocypcypcyqcyrcyscytcyucdzcdzcdzcyvbHTbHTcbRbHTcnzaaacuGcywcvMcyxcyycyzcyAcyBcyCbzLcyEbTJbzLcyEbTLbzLcyHcyIcyJaaaaaacjIcxtcxtcxtbzMcyLcyMcyNcyOcyPcyQcyRcjIaaaaaaaaaaaaaaaaaacwectKcxCczMcxCcuLcweaaaaaaaaacyXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaaaaaczaaacyYcyZczaaaacyYcyZczaaaacyYcyZczaaabczbaabaaaaaaaaaaaaaabaabaabaaaaaaaaaaaaaaaaaabxYcwybxZczdcwLcxVczecwLcwLcwLczfcwLczdczdcwLcwLcwLcwLczgbzPcxXczicsKczjbZUcybcybczkcwUczlczmczncwUczoctaczpczqczrczscztcHZbHTczucbSczubHTbHTbHTcuFcZScnzbnjbnjbnjbnjbnjcnzcnzaaaczwczxczycjqczzczAcoOcoOczBbAbczDczEbAbczDczEbAbczDczEcyJaaaaabcjIcvWcvWcvWcvWczFcqaczGczHczIczJczKcjIaabaaaaaaaaaaaaaaacwecuPcuMcxCcxCcuOctDcEpaaaaaacyXaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaaaaaaaaaaaaaczaaacyYczVczaaaacyYczVczaaaacyYczVczaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabbxYcwybxZczdczYcwLczZcAacAbcAbcxUcwLczdcAccwLcwLcwLcwLcAdcAecAfcAgbYxcAhcAicAjcAkcAlcwUczlcAmcAncwUcAoctacrYcApcrVcAqcArcAscAtcAucAvcAwcAtcAtcAtcAxcAtcnzaaaaaaaaaaaaaaaaaaaabaaacuGcAycvMcAzcAAcABcoOcoOczBbAbcADbAbbAbcADbAbbAbcADbAbcyJaabaabcjIcvPcvQcvRbBBcAIcyMcAJcAKcALcAMcANcjIaabaabaabaabaabaaacwecwecuScuRcwdcwecweaaaaaaaaacyXaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacxKcxKcxKcxKcxKcxKcxKcxKcxKaaaaaaaagaaaaaaaaaakSaabcyYczVczaaaacyYczVczaaabcyYczVczaaabaaaaaaaabaabaabaabaabaaaaaaaaaaaaaaaaabaaaaaabxYcwycvecAWcwLcAXcAYcAZcBacBbcBacBccBacBdcBecwHcBfczdczdbzPcBgcBhcBicBjcBkcBlcBmcBncBocBpcBqcBrcBscBtcBucBvcBvcBwcBxcBycBzbBGcBBcBCcBDcBEcBFcBGcBHbBHaabaaaaaaaaaaaaaaaaaaaabaabczwcBJcBKcBLcBMcBNcoOcoOcoOcBOcoOcoOcoOcoOcoOcoOcoOcBPbBIaaaaaacjIcxtbTXcxtcBRcxwcqacBScBTcBUcBVcBWcjIcjIcjIcjIcjIaabaaaaaacwecwecwecwecweaaaaaaaaaaaacyXaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From f4ed3cee8b45cf27c8bab2b0e5f621a42dade976 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 17:50:14 +0200 Subject: [PATCH 06/29] Fix deathsquad teleporter --- code/game/machinery/computer/pod.dm | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/computer/pod.dm b/code/game/machinery/computer/pod.dm index 981a81a15d0..a34db3d1526 100644 --- a/code/game/machinery/computer/pod.dm +++ b/code/game/machinery/computer/pod.dm @@ -304,14 +304,18 @@ visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!") return - if(teleporter_dest) - for(var/obj/structure/deathsquad_tele/D in world) - if(D.z != src.z) continue - if(D.id_tag == ident_tag) - D.icon_state = "tele1" - D.ztarget = teleporter_dest - D.density = 1 - + var/spawn_marauder[] = new() + for(var/obj/effect/landmark/L in world) + if(L.name == "Marauder Entry") + spawn_marauder.Add(L) + for(var/obj/effect/landmark/L in world) + if(L.name == "Marauder Exit") + var/obj/effect/portal/P = new(L.loc) + P.invisibility = 101//So it is not seen by anyone. + P.failchance = 0//So it has no fail chance when teleporting. + P.target = pick(spawn_marauder)//Where the marauder will arrive. + spawn_marauder.Remove(P.target) + for(var/obj/machinery/door/poddoor/M in world) if(M.z != src.z) continue if(M.id_tag == ident_tag) From fffe2617c58582c175a54bc378174ba93f25f1c0 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 18:11:31 +0200 Subject: [PATCH 07/29] West mining station vent fix --- _maps/map_files/cyberiad/z5.dmm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/_maps/map_files/cyberiad/z5.dmm b/_maps/map_files/cyberiad/z5.dmm index 6aba08705df..2ae10f6583b 100644 --- a/_maps/map_files/cyberiad/z5.dmm +++ b/_maps/map_files/cyberiad/z5.dmm @@ -1089,6 +1089,8 @@ "uW" = (/obj/machinery/conveyor{dir = 4; id = "nmining"},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating/airless,/area/mine/north_outpost) "uX" = (/obj/machinery/mineral/unloading_machine,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/north_outpost) "uY" = (/obj/structure/lattice,/obj/machinery/disposal/deliveryChute{dir = 8},/obj/structure/disposalpipe/trunk{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/space,/area/mine/north_outpost) +"uZ" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_sensor"; pixel_x = 25; pixel_y = -5},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "mining_west_pump"; tag_exterior_door = "mining_west_outer"; frequency = 1379; id_tag = "mining_west_airlock"; tag_interior_door = "mining_west_inner"; pixel_x = 25; pixel_y = 5; req_access_txt = null; tag_chamber_sensor = "mining_west_sensor"},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "mining_west_pump"},/turf/simulated/floor,/area/mine/living_quarters) +"va" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/machinery/portable_atmospherics/canister/air,/obj/machinery/atmospherics/portables_connector{dir = 8},/turf/simulated/floor{icon_state = "warning"},/area/mine/living_quarters) "vb" = (/obj/structure/lattice,/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/window/reinforced,/turf/space,/area/mine/explored) "vc" = (/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) "vd" = (/obj/machinery/light/small,/obj/structure/disposalpipe/segment{dir = 4},/turf/simulated/floor/plating/airless/asteroid,/area/mine/explored) @@ -1382,7 +1384,7 @@ "AF" = (/obj/machinery/light_switch{pixel_y = 23},/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) "AG" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor/plating,/area/mine/living_quarters) "AH" = (/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "mining_west_pump"},/obj/structure/closet/emcloset,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters) -"AI" = (/obj/machinery/light/small{dir = 4},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "mining_west_sensor"; pixel_x = 25; pixel_y = -5},/obj/machinery/embedded_controller/radio/airlock/airlock_controller{tag_airpump = "mining_west_pump"; tag_exterior_door = "mining_west_outer"; frequency = 1379; id_tag = "mining_west_airlock"; tag_interior_door = "mining_west_inner"; pixel_x = 25; pixel_y = 5; req_access_txt = null; tag_chamber_sensor = "mining_west_sensor"},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 10; initialize_directions = 10},/turf/simulated/floor,/area/mine/living_quarters) +"AI" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden,/turf/simulated/floor{icon_state = "warning"},/area/mine/living_quarters) "AJ" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/mine/production) "AK" = (/obj/machinery/conveyor{dir = 2; id = "mining_internal"},/obj/structure/plasticflaps/mining,/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/production) "AL" = (/obj/machinery/sleeper{dir = 8},/turf/simulated/floor{tag = "icon-warnwhite (NORTH)"; icon_state = "warnwhite"; dir = 1},/area/mine/living_quarters) @@ -1394,7 +1396,6 @@ "AR" = (/obj/machinery/meter,/obj/machinery/atmospherics/pipe/manifold/visible{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) "AS" = (/obj/machinery/atmospherics/pipe/tank/air{dir = 8},/turf/simulated/floor/plating,/area/mine/living_quarters) "AT" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/manifold/hidden{dir = 1},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters) -"AU" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 32; pixel_y = 0},/obj/machinery/atmospherics/portables_connector{dir = 1},/obj/machinery/portable_atmospherics/canister/air,/turf/simulated/floor{icon_state = "warning"},/area/mine/living_quarters) "AV" = (/turf/space,/area/shuttle/mining/outpost) "AW" = (/obj/machinery/power/apc{dir = 8; name = "Mining Station Starboard Wing APC"; pixel_x = -27; pixel_y = 2},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor,/area/mine/production) "AX" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor,/area/mine/production) @@ -1467,7 +1468,6 @@ "Cm" = (/obj/machinery/firealarm{dir = 1; pixel_y = -24},/turf/simulated/floor,/area/mine/production) "Cn" = (/turf/space,/area/vox_station/mining) "Co" = (/obj/machinery/camera{c_tag = "Mining Outpost Port Exterior Airlock"; dir = 4; network = list("Mining Outpost")},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 4; frequency = 1379; id_tag = "mining_west_pump"},/turf/simulated/floor{icon_state = "floorgrime"},/area/mine/living_quarters) -"Cp" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/machinery/atmospherics/pipe/simple/hidden{dir = 9; icon_state = "intact"},/turf/simulated/floor{icon_state = "warning"},/area/mine/living_quarters) (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -1653,8 +1653,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafaeaewywywywywyzdzezfwywyzgwywywywyqyqAaeaeaeaeaeqLaeaeaeaeafaeafafacacacacacacacacacacafafaeaeaeqLaeaeaeaeaeaeaeaeqyqAaeaeaeaeqLaeaeaeaeaeafafntafafacvSvSvSvSxuxRzhzizjxMzkzlzlzmzmznzlzozpzlzpzqzqzqzqzqzqzqzqzrzrzrzrzrzrzrzsztzszuztzvzwzxzyzzzAzBytzCzDytqAaeaeaeaeafafafafpepepepepeafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafafaeaeaeaeaewyzEzFzGzHwyzIzJonaeaeaeaeaeqNaeaeaeqTrBrBqUaeaeaeaeafacacacacacacacacacacafaeaeukrBulaeaeaeaeafaeaeqNaeaeaeaeaeaeqLaeaeaeaeaeaeaewkaeafafafafafvSxuzKzLzMzMzLzNzOzPzMzMzQzLzRzSzSzSzTzTzTzTzTzTzTzTzUzUzUzUzUzUzVzWzWzWzXzYzZAaAbxSxSxSxSxSxSxSxSAcAdAeAdonnuafafafpepepepeafafafafafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacafafaeaeaeaewyAfAgAhAiwyaeaeaeaeaeaeafafntafaeaeaeaeaeqLaeaeaeaeaeafacacacacacafafafafafaeukulaeaeaeafafafafafafntaeaeaeaeaeaeqLaeaeaeaeaeaeaeaeaeaeaeafafvSvSyfAjyfvSvSAkAlAmvSvSvSAnyfvSwjaeaeaeaaaaaaaaagaaaaaaagaaaaaaaaaaagaaxTxTykAoApAqArAsAsAtxSAuAvAwAxAxAxAxonaeafafafpepepepeafafafpeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafafaeaeaewywywywywywyaeaeafafafafafacacafafaeaeaeaeqLaeaeaeaeaeaeafafafafafafaeaeaeaeaeqLaeaeafafafacacacacacafaeaeaeaeaeaeqLaeaeaeseqDaeaeaeaeaeaeaeafvSAyAzAAABvSACADAEAFAGvSAHATAIvSaeaeaeaeaeaeaaaaagaaaaaaagagagagagagagagagxSykAJzwxSxSxSxSAKxSAKxSxSonononononaeafafafpepepeafafpepepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafaeaeaeaeaeaeaeaeaeaeaeafacacacacacacacafafaeaeaeqTrBrBrBqUaeaeaeaeaeaeaeaeaeaeaeaeaeqLaeafafacacacacacacacafafaeaeaeaeaeqTrBrBrBumunrBrBrBqUaeaeaeaevSALAMANAOvSAPAQAQARASvSCoCpAUvSaeaeaeaeaeaeagagagagagagagAVAVAVAVAVagaaaaxSAWAXzwAYAZAsAsAsBaAsAtxSaeaeaeaeaeafafafafpepeafafafpepepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafafaeaeaewywywywywywyaeaeafafafafafacacafafaeaeaeaeqLaeaeaeaeaeaeafafafafafafaeaeaeaeaeqLaeaeafafafacacacacacafaeaeaeaeaeaeqLaeaeaeseqDaeaeaeaeaeaeaeafvSAyAzAAABvSACADAEAFAGvSAHATuZvSaeaeaeaeaeaeaaaaagaaaaaaagagagagagagagagagxSykAJzwxSxSxSxSAKxSAKxSxSonononononaeafafafpepepeafafpepepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafaeaeaeaeaeaeaeaeaeaeaeafacacacacacacacafafaeaeaeqTrBrBrBqUaeaeaeaeaeaeaeaeaeaeaeaeaeqLaeafafacacacacacacacafafaeaeaeaeaeqTrBrBrBumunrBrBrBqUaeaeaeaevSALAMANAOvSAPAQAQARASvSCoAIvavSaeaeaeaeaeaeagagagagagagagAVAVAVAVAVagaaaaxSAWAXzwAYAZAsAsAsBaAsAtxSaeaeaeaeaeafafafafpepeafafafpepepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafaeaeaeaeaeaeaeaeaeafafafacacacacacacacacafafafaeaeaeaeaeqTqUaeaeseqDaeaeukrBrBrBrBrBulaeafacacacacbkbkbkacacafafafaeaeaeaeaeaeaeqyqAaeaeaeqLaeaeaeaeydvSvSvSvSvSBbBcBdBeASvSvSBfyfydaeaeaeaeaeaeaaaaagaaaaaaagAVAVAVAVAVagaaxTxTBgBhBixSxSxSxSxSxSBjBkxSaeaeaeaeaeafafafpepepeafafafafpepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacafafafafaeaeaeaeafafafacacacacacacacacacacacacafafafaeqNaeaeqTrBrBumunrBrBulaeaeaeaeaeaeaeafacacacbkbkbkbkbkacacacafafafafaeaeaeaeaeaeaeaeaeqTrBrBqUaeaeaeaeaeaeydvSvSvSvSvSydBlBmBnBoaeaeaeaeaeaaaaaaagaaaaaaagAVAVAVAVAVBpxTBqBrBsBtzwBuBvBwBxByBzBjBkxSaeaeaeaeafafafafpepeafafafafpepepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacacacacacacafafafafafafacacacacacacacacacacacacacacacacafafntafaeaeaeaeqyqAaeaeaeaeqNaeafafafafafacacbkbkbkbkbkbkbkacacacacacafafafafafafafafaeaeaeaeaeqLaeaeaeaeaeaeaeaeqyBABBBBBBBBBCqAaeaeaeaeaeaeagagagagagagagagAVAVAVAVAVBDBEBFBGykBtzwykykBHykBIBJBjBKxSaeaeaeaeafafafafpepeafafafpepepeafafaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From bddfb7029dd5ac9f9c33603f111f7799409e4056 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 18:12:14 +0200 Subject: [PATCH 08/29] Make sure special_role is assigned in pre_setup --- code/game/gamemodes/changeling/changeling.dm | 2 +- code/game/gamemodes/cult/cult.dm | 3 +-- code/game/gamemodes/vampire/vampire.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 0b18cbcdde8..ab0a7b5a464 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -61,6 +61,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" changelings += changeling changeling.restricted_roles = restricted_jobs modePlayer += changelings + changeling.special_role = "Changeling" return 1 else return 0 @@ -68,7 +69,6 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" /datum/game_mode/changeling/post_setup() for(var/datum/mind/changeling in changelings) grant_changeling_powers(changeling.current) - changeling.special_role = "Changeling" forge_changeling_objectives(changeling) greet_changeling(changeling) diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index 3ea0a6397bf..93f2c468aa6 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -80,7 +80,7 @@ cultists_possible -= cultist cult += cultist cultist.restricted_roles = restricted_jobs - + cultist.special_role = "Cultist" return (cult.len>0) @@ -102,7 +102,6 @@ update_cult_icons_added(cult_mind) cult_mind.current << "\blue You are a member of the cult!" memorize_cult_objectives(cult_mind) - cult_mind.special_role = "Cultist" spawn (rand(waittime_l, waittime_h)) send_intercept() diff --git a/code/game/gamemodes/vampire/vampire.dm b/code/game/gamemodes/vampire/vampire.dm index 36d0638fc92..921f50dce9d 100644 --- a/code/game/gamemodes/vampire/vampire.dm +++ b/code/game/gamemodes/vampire/vampire.dm @@ -62,6 +62,7 @@ vampires += vampire vampire.restricted_roles = restricted_jobs modePlayer += vampires + vampire.special_role = "Vampire" // Needs to be done in pre-setup to prevent role bugs return 1 else return 0 @@ -69,7 +70,6 @@ /datum/game_mode/vampire/post_setup() for(var/datum/mind/vampire in vampires) grant_vampire_powers(vampire.current) - vampire.special_role = "Vampire" forge_vampire_objectives(vampire) greet_vampire(vampire) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 72022255700..11589af4b69 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -1797,7 +1797,7 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc holder.icon_state = "mutineer" if("mutineer") holder.icon_state = "mutineer" - if("shadowling") + if("Shadowling") holder.icon_state = "hudshadowling" if("shadowling thrall") holder.icon_state = "hudshadowlingthrall" From a522d0a86feebc0af48b125cedbec0f8ac5dc2c8 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 18:14:19 +0200 Subject: [PATCH 09/29] Enable ventcrawling for slimes --- code/modules/mob/living/carbon/metroid/metroid.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 8e73b3253d3..93a478f5829 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -3,6 +3,7 @@ icon = 'icons/mob/slimes.dmi' icon_state = "grey baby slime" pass_flags = PASSTABLE + ventcrawler = 2 speak_emote = list("telepathically chirps") layer = 5 From b471406faadb4bcc056936e8e7c8ad5a20da685b Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 18:22:24 +0200 Subject: [PATCH 10/29] Vampire bats no longer attack their owner, fixes hostiles not attacking spacepods --- code/modules/mob/living/simple_animal/hostile/bat.dm | 5 +++++ code/modules/mob/living/simple_animal/hostile/hostile.dm | 8 ++++++++ code/modules/mob/living/simple_animal/simple_animal.dm | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/bat.dm b/code/modules/mob/living/simple_animal/hostile/bat.dm index 5320286b808..a2b56219f56 100644 --- a/code/modules/mob/living/simple_animal/hostile/bat.dm +++ b/code/modules/mob/living/simple_animal/hostile/bat.dm @@ -56,6 +56,11 @@ if(istype(A) && A == owner) return 0 return ..() + +/mob/living/simple_animal/hostile/scarybat/CanAttack(var/atom/the_target)//This is here as a potential override to pick a specific target if available + if(istype(the_target) && the_target == owner) + return 0 + return ..() /mob/living/simple_animal/hostile/scarybat/AttackingTarget() . =..() diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm index 28ba410a928..125d4007879 100644 --- a/code/modules/mob/living/simple_animal/hostile/hostile.dm +++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm @@ -72,6 +72,9 @@ for(var/obj/mecha/M in mechas_list) if(get_dist(M, src) <= vision_range && can_see(src, M, vision_range)) L += M + for(var/obj/spacepod/S in spacepods_list) + if(get_dist(S, src) <= vision_range && can_see(src, S, vision_range)) + L += S else var/list/Objects = oview(vision_range, src) L += Objects @@ -117,6 +120,11 @@ if(M.occupant)//Just so we don't attack empty mechs if(CanAttack(M.occupant)) return 1 + if(istype(the_target, /obj/spacepod)) + var/obj/spacepod/S = the_target + if(S.occupant || S.occupant2)//Just so we don't attack empty mechs + if(CanAttack(S.occupant) || CanAttack(S.occupant2)) + return 1 if(isliving(the_target)) var/mob/living/L = the_target var/faction_check = 0 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index f95ad48c2a5..48c972e0cde 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -490,6 +490,10 @@ var/obj/mecha/M = the_target if (M.occupant) return 0 + if (istype(target,/obj/spacepod)) + var/obj/spacepod/S = target + if (S.occupant || S.occupant2) + return 0 return 1 /mob/living/simple_animal/update_fire() From 27b8adc426807ae4541e24595a8f2d4009f08e41 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 18:38:46 +0200 Subject: [PATCH 11/29] Fix compile error --- code/modules/mob/living/simple_animal/simple_animal.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 48c972e0cde..f6df572bbbe 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -490,8 +490,8 @@ var/obj/mecha/M = the_target if (M.occupant) return 0 - if (istype(target,/obj/spacepod)) - var/obj/spacepod/S = target + if (istype(the_target,/obj/spacepod)) + var/obj/spacepod/S = the_target if (S.occupant || S.occupant2) return 0 return 1 From 3c32dbd626423fa6f216b52e8dd4a6bb98d483d1 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 19:07:41 +0200 Subject: [PATCH 12/29] Vampire UI refresh fix --- code/modules/mob/living/carbon/human/life.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 11589af4b69..d51d1f9de64 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -160,6 +160,8 @@ var/global/list/brutefireloss_overlays = list("1" = image("icon" = 'icons/mob/sc if(mind && mind.vampire) handle_vampire() + if(life_tick == 1) + regenerate_icons() // Make sure the inventory updates /mob/living/carbon/human/calculate_affecting_pressure(var/pressure) From a57e10e93db7ae939e4f4cbb7c1f5d0e8c28ca50 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 19:08:05 +0200 Subject: [PATCH 13/29] Convert xenomorph shuttle to proper multishuttle --- _maps/map_files/cyberiad/cyberiad.dmm | 2 +- _maps/map_files/cyberiad/z2.dmm | 10 +- code/controllers/shuttle_controller.dm | 26 ++- code/game/machinery/computer/xenos_shuttle.dm | 158 ------------------ code/modules/shuttles/antagonist.dm | 35 +++- paradise.dme | 1 - 6 files changed, 62 insertions(+), 170 deletions(-) delete mode 100644 code/game/machinery/computer/xenos_shuttle.dm diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm index eea57bfc4b3..4151d2c30ff 100644 --- a/_maps/map_files/cyberiad/cyberiad.dmm +++ b/_maps/map_files/cyberiad/cyberiad.dmm @@ -8123,7 +8123,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDpbDpbDpbDpbDpbDpbDpbDpbD aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDpbDpbDpbDpbDpbDpbDpbDpbDpaaaaaaaaaaaaaaaaaaaaaaaabDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabRNbUQbUQbUQbRNbaDbYgbYhbYibYZbRQbYkbYlbZIbYnbYobYobYobYpbTCbTCbTCbVebTEbYqbWVbYrbWVbYsbTIbYtbWYbYubWYbYvbTIbYwbYxbYybTObYzbYAbYBbYCbYDbYEbYFbYGbYHbYIbYJbYKbYLbYMbYNbTTbSxbPAbPAbYObXrbXsbYPbYQbdCbVQbYSbYTbYUbekbYWbYXbYYbelbZabZbbZcbZcbVZbZdbUjbVkbZfbZgbZhbZibZjbZebXRbXNbZlbWlbWlbWlbZmbZnbXRbXSbZobQfbXUbXUbOxbZpbZqbOBbDbbZrbZsbZtbThbZubZvbZwbZxbZybZzbZAbTjbZBbZCbZDbTjbThbThbThbThbThbThbThbThaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabZEbUNbYcbUNbUNbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDpbDpbDpbDpbDpbDpbDpbDpbDpaaaaaaaaaaaaaaaaaaaaaaaaaaabDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqbDqaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaabTlbZFbZGbZHbTlbaDbaDbaDbNBbYjbZJbZJbZJbNBbNBbTCbZKbZKbZLbZNbTCcdabZObTEbYqbWVbWVbWVbZPbTIbYtbWYbWYbZQbZRbZSbZTbZUbZVbTObTObTObTObTObZWbTObTObZXbZYbTTbTTbZZbTTbTWbTTbTTbNRcaacaabNRbNRcabcaccadbemcafcagcahcaibencakcalbYYbelcancaocapcaqcarcasbUjcatcaucavcawcaxcaycazcaAcaBcaAbeobeobeocaAcaFcaAcaAcaGcaHbXUbXUbOxcaIbXVbOBcaJcaKcaLcaMcaNcaOcaPcaPcaQcaRcaScaTcaUcaVcaWcaXcaYcaZcbacbbcbccbdcbecbfcbgaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabUMbUNcbhcbicbibWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDpbDpbDpbDpbDpbDpbDpbDpbDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbjbRMcbkbRMcblcbmaabaaabNBbNBbaDbaDbaDbNBaaabTCcbqcbrcbscbtbYocbucbvbTEcbwcbxcbybWVcbzcbAcbBcbCcbDcbEcbFbTIcbGcbHcbIcbJcbKcbKcbKcbKcbLcbMcbNcbOcbOcbPcbPcbQcbRcbSbTRbNRcbTcbUcbVcbWbepbXscbYcadbeObeLccbcccbajbePcceccfccgcchcchccicchcchcchccjbUjcckcclccmccnccoccpccqcaAccrccscctccuccvccsccwccxccsccycczbQgbOxbOxccAccBccCccDccEccFccGccHccIccJccKccLccMccNccOccPccQccRccQccSccRccRccRccTccUccVccWccXaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabUNbUNccYbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbWHbUNbUNaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabccZbTCbTCbTCcqvbTCbTCcdbbTEcdccddcdecdfcdgcdhcdicdjbZkcdlcdmcbAcdncdocdpcdqcdrcdrcdrcdrcdscdtcducdvcdwcdvcdxcdycdzcdAcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNcdOcdPcdQcdRcdScdTcdTcdTcdUcdVcdWcdXcdYcdZcdZceacdZcebbffbgqbfRcaAcefcegcehceicehcejcekcelccsbOxcembOxbOxcenceobXVbzwbDbbThcepbThbThceqcercescetceuccRcevcewcexccKcexccKceyccKccKbThcezceAceBceCaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabUNbWHbWHbWHbWHbWHbWHceDbWHceEbWHbWHbWHbWHbWHbUNbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabDpbDpbDpbDpbDpbDpbDpbDpbDpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabaabccZbTCbTCbTCcqvbTCbTCcdbbTEcdccddcdecdfcdgcdhcdicdjbZkcdlcdmcbAcdncdocdpcdqcdrcdrcdrcdrcdscdtcducdvcdwcdvcdxcdycdzcdAcdBcdCcdDcdEcdFcdGcdHcdIcdJcdKcdLcdMcdNcdOcdPcdQcdRcdScdTcdTcdTcdUcdVcdWcdXcdYcdZcdZceacdZcebbffbgqbfRcaAcefcegcehceicehcejcekcelccsbOxcembOxbOxcenceobXVbzwbDbbThcepbThbThceqcercescetceuccRcevcewcexccKcexccKceyccKccKbThcezceAceBceCaabaabaabaabaabaabaabaabaaaaaaaaaaaaaaabUNbWHbWHbWHbWHbWHbWHceDbWHceEbWHbWHbWHbWHbWHbUNbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZceFceGceHbTCceIbTEceJceKcdkbYqceMceNceObYtbVfceQceRceNceSceTceUceVceVceWceXceYceZbWIcfbcfcbHTcfdbTRcfebHTbHTcffcfgcfhcficfjcdGcfkcflcfmcfncfocfpcfqcfrcfscfpcfpcftcfucfucfucfvcfucfwcfucfxcfycfzcfAcfBcfCcfDcfEcfFcaAcfGcfHcfIcfJcfIcfKcfLcehbhqcfNcfObzwcfPbzwceobXVbzwbDbcfQcfRcfSbThbThbThbThbThcfTccKcfUcfVceyccKcfWccKbXXccKcfXbThcfYcfZcgabThaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabUNcgbcgbcgbcgbcgbcgbcgcbWHcgdcgbceEbWHbWHbWHbWHbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZcgfcgecggbTCceIcghcghcghcghcghcghbTIbTIbTIbTIbTIbTIbTIcgicgjcgkcglcgmcgncgocgocgpcgqcfbbHTbHTcgrcgscgtbHTbHTbHTcgucgvcgwcdEcgxcgycgzcfucgAcgBcgCbQWcgBcgDcdTcdTcdTcdTcdTcdTcgBcdTcdTcdTbQWcgEcgFcgGcgHcgIcgJcgKcgLcaAcgMcgNcehcgOcehcgPcgQcgRcgScgTcgUcgVbzwcgWceobXVcgXbDbbDicgYcgZchabumbvWbvWbThchbchcchdchechfchgchhchichjchkchlbThchmchnchochpaacaacaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaachqbWFbWFbWFbWFbWFbWFbWFchrchsbWHbWHbWHbWHchtbdqbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaccZccZccZccZbTCceIccZaaaaaaaaaaaachuchvchwchxchychzchAchBchCchDchEbhrchGchHchIchIchJchKchLchMchMchMchMchNchMbHTbHTbNRchOchPchQchRchSchTcgIchUchVchWchXchYchZciacdTcdTcibcicbhsciebhscicbEDcifcigcigcihciicijcakcikcilcaAcimcinciocipciqcirciscaAcaAbDbcitbDbbDbbDbciucivciwbDbbvWcgYcixciybumbumbumbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThbThaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaabUNcbicbicbicbicbicbicizbWHcbhcbiciAbWHbWHbWHbWHbUNaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/_maps/map_files/cyberiad/z2.dmm b/_maps/map_files/cyberiad/z2.dmm index abe72f0c374..a073bf4338c 100644 --- a/_maps/map_files/cyberiad/z2.dmm +++ b/_maps/map_files/cyberiad/z2.dmm @@ -118,9 +118,9 @@ "cn" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 4; name = "thrower_escapeshuttletop(right)"; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space) "co" = (/turf/unsimulated/wall,/area/prison/solitary) "cp" = (/turf/simulated/wall/mineral/alien,/area/xenos_station/start) -"cq" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 8},/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "alienshutters"; name = "Alien Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/xenos_station/start) -"cr" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "alienshutters"; name = "Alien Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/xenos_station/start) -"cs" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor/shutters{density = 0; dir = 2; icon_state = "shutter0"; id_tag = "alienshutters"; name = "Alien Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/xenos_station/start) +"cq" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 8},/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor/shutters{color = "purple"; density = 0; dir = 2; icon_state = "shutter0"; id_tag = "alienshutters"; name = "Alien Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/xenos_station/start) +"cr" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 4},/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor/shutters{color = "purple"; density = 0; dir = 2; icon_state = "shutter0"; id_tag = "alienshutters"; name = "Alien Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/xenos_station/start) +"cs" = (/obj/structure/grille,/obj/structure/window/plasmareinforced,/obj/structure/window/plasmareinforced{dir = 1},/obj/machinery/door/poddoor/shutters{color = "purple"; density = 0; dir = 2; icon_state = "shutter0"; id_tag = "alienshutters"; name = "Alien Blast Shutters"; opacity = 0},/turf/simulated/floor/plating/airless,/area/xenos_station/start) "ct" = (/turf/simulated/floor/holofloor{tag = "icon-asteroid5"; icon_state = "asteroid5"; dir = 2},/area/holodeck/source_desert) "cu" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{tag = "icon-wood_siding6"; icon_state = "wood_siding6"; dir = 2},/area/holodeck/source_picnicarea) "cv" = (/turf/simulated/floor/holofloor/grass,/obj/structure/flora/ausbushes/grassybush,/turf/simulated/floor/holofloor{tag = "icon-wood_siding10"; icon_state = "wood_siding10"; dir = 2},/area/holodeck/source_picnicarea) @@ -153,7 +153,7 @@ "cW" = (/obj/structure/stool/bed,/turf/unsimulated/floor{icon_state = "floorscorched2"},/area/prison/solitary) "cX" = (/obj/effect/decal/cleanable/blood,/turf/unsimulated/floor{name = "plating"},/area/prison/solitary) "cY" = (/obj/machinery/door_control{id = "alienshutters"; name = "Alien Blast Shutter Control"; pixel_x = -26; pixel_y = -2; req_access_txt = "0"},/turf/simulated/floor/plating/airless,/area/xenos_station/start) -"cZ" = (/obj/machinery/computer/xenos_station,/turf/simulated/floor/plating/airless,/area/xenos_station/start) +"cZ" = (/obj/machinery/computer/shuttle_control/multi/xenos,/turf/simulated/floor/plating/airless,/area/xenos_station/start) "da" = (/turf/simulated/floor/plating/airless,/area/xenos_station/start) "db" = (/turf/simulated/floor/holofloor{tag = "icon-carpet2-0 (EAST)"; icon_state = "carpet2-0"; dir = 4},/area/holodeck/source_theatre) "dc" = (/obj/effect/step_trigger/thrower{affect_ghosts = 1; direction = 2; name = "thrower_throwdownside"; nostop = 1; stopper = 0; tiles = 0},/turf/space/transit/north/shuttlespace_ns11,/area/space) @@ -1805,7 +1805,7 @@ amaVbabdaYbfaTaXbbaWbeaZbgaUbcaSaTbfbebabdaXaZaYaUaWaeaqarasatauavbhaxbjbkboblbm adaYaWbgaXbcbaaTbebfaUbbaSbdaZaVbabcaUaWbgaTbbaXbdbfahbhbibjbkboblbmaDapaqarasatauavbhbiavbhbibjbmbnapaqarasatauavbhaxaLaMaYaWbgaXbcbaaTbebfaUbbaSbdaZaVbabcaUaWbgaTaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqbObqbqbqbsbPbQbPbQbPbsbIbIbIbIbIbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD alaXbfaSaTaZaWbaaUbcbdbeaVbgbbaYaWaZbdbfaSbabeaTbgbcagbmbnapaqarasataJavbhbibjbkboblbmbnasatauavatauavbhbibjbkboblbmaDaLaMaXbfaSaTaZaWbaaUbcbdbeaVbgbbaYaWaZbdbfaSbaaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqbqbRbSbqbsbTbTbTbTbTbsbUbUbUbUbVbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD aoaTbcaVbabbbfaWbdaZbgbWbXbYbWbWbfbbbgbcaVaWaUbaaSaZacbhbibjbkboblbmaDapaqarasatauavbhbibjbkboblbmbnapaqarasatauavbhaxaLaMaTbcaVbabbbfaWbdaZbgaUaYaSbeaXbfbbbgbcaVaWaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZbZbZbZbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpcabqbqbqbqbscbcccdcccebscfcgchcicfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsbLbMbMbMbNbD -abbaaZaYaWbebcbfbgbbcjbXckclcmcnbWbeaSaZaYbfbdaWaVbbaiarasatauavbhbiaybkboblbmbnapaqarasapaqarasbibjbkboblbmbnapaqaraHaLaMbaaZaYaWbebcbfbgbbaSbdaXaVaUaYbcbeaSaZaYbfaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZcpcqcrcscpbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqcabqbqctbscucccdcccvbscfcwcxcycfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD +abbaaZaYaWbebcbfbgbbcjbXckclcmcnbWbeaSaZaYbfbdaWaVbbaiarasatauavbhbiaybkboblbmbnapaqarasapaqarasbibjbkboblbmbnapaqaraHaLaMbaaZaYaWbebcbfbgbbaSbdaXaVaUaYbcbeaSaZaYbfaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZcpcqcscrcpbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqcabqbqctbscucccdcccvbscfcwcxcycfbsbxbxbJbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD aeaWbbaXbfaUaZbcaScBcCckclcmcDcDcEcFaVbbaXbcbgbfaYbeafboblbmbnapaqaraHatauavbhbibjbkbocGcHcIcJcKcLasatauavbhbibjbkboaBaLaMaWbbaXbfaUaZbccjcBcMcNcOcPcQbaaZaUaVbbaXbcaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcRcScTcocScUcocScVcocWcXcocScUcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZbZcpcpcYcZdacpcpbZbZaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqbEcabqbRbsbTbTbTbTbTbsdbcwcxcydbbsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD ahbfbeaTbcbdbbaZaVdcdddddedfckdgdgcFaYbeaTaZaSbcaXaUanbnapaqarasatauaKbhbibjbkboblbmbncIdhdidjdkdlavbhbibjbkboblbmbnaEaLaMbfbeaTbcbdbbcEcFdmdmdmdmdmcNdnbbbdaYbeaTaZaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcododpcodocXcododqcodocUcodocTcoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZcpcpdadadrdadacpcpbZaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqbqbqcabqbsdsdtdsdtdsbsducwcxcydubsbxbxbxbxbxbsbybybybybybsbzbzbzbzbzbsczbMbMbMcAbD agbcaUbaaZbgbebbaYdvdededwdxdyclcldzaXaUbabbaVaZaTbdakbjbkboblbmbnapaFarasatauavbhbibjdAdBdCdDdhdEaqarasatauavbhbibjazaLaMbcaUbaaZbgcBcFdmdmdmdmdmdmdmdFcBbfaXaUbabbaMaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNcocococococococococococococococoaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNaNbZcpdadadadadadadacpbZaNaNaNaNaNaNaNaNaNaNaNaNaNbpbqdGbqbqcabsbGbHbGbHbGbsducwcxcydubsbxbJbxbJbxbsbybybybybybsbzbKbzbKbzbsczbMbMbMcAbD diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 326bb1eaacb..563c94c8442 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -245,9 +245,31 @@ var/global/datum/shuttle_controller/shuttle_controller MS.interim = locate(/area/syndicate_station/transit) MS.warmup_time = 0 - shuttles["Syndicate"] = MS + shuttles["Xenomorph"] = MS + + //Xenos shuttle. + var/datum/shuttle/multi_shuttle/XS = new/datum/shuttle/multi_shuttle() + XS.origin = locate(/area/xenos_station/start) - //Vox Shuttle. + XS.destinations = list( + "Northwest of the station" = locate(/area/xenos_station/northwest), + "Northeast of the station" = locate(/area/xenos_station/northeast), + "East of the station" = locate(/area/xenos_station/east), + "Southwest of the station" = locate(/area/xenos_station/southwest), + "Southeast of the station" = locate(/area/xenos_station/southeast), + "West of the station" = locate(/area/xenos_station/west), + "Research Outpost" = locate(/area/xenos_station/researchoutpost) + ) + + XS.announcer = "NSV Icarus" + XS.arrival_message = "Attention, [station_name()], you have an unknown signature approaching the station - scanners detect an alien presence on board. It's somehow scrambling our weapons targetting system: brace for hostile visitors." + XS.departure_message = "The unknown ship appears to be pulling away from the station, [station_name()]. We're still unable to target them. Let's hope they stay away." + XS.interim = locate(/area/xenos_station/transit) + + XS.warmup_time = 0 + shuttles["Xenomorph"] = XS + + //Derelict Shuttle. var/datum/shuttle/multi_shuttle/WS = new/datum/shuttle/multi_shuttle() WS.origin = locate(/area/shuttle/derelict/ship/start) diff --git a/code/game/machinery/computer/xenos_shuttle.dm b/code/game/machinery/computer/xenos_shuttle.dm deleted file mode 100644 index 4f63578e51b..00000000000 --- a/code/game/machinery/computer/xenos_shuttle.dm +++ /dev/null @@ -1,158 +0,0 @@ -#define XENOS_SHUTTLE_MOVE_TIME 240 -#define XENOS_SHUTTLE_COOLDOWN 200 - -/obj/machinery/computer/xenos_station - name = "xenos shuttle terminal" - icon = 'icons/obj/computer.dmi' - icon_keyboard = "telesci_key" - icon_screen = "telesci" - req_access = list() - var/area/curr_location - var/moving = 0 - var/lastMove = 0 - unacidable = 1 - - -/obj/machinery/computer/xenos_station/New() - curr_location = locate(/area/xenos_station/start) - - -/obj/machinery/computer/xenos_station/proc/xenos_move_to(area/destination as area) - if(moving) return - if(lastMove + XENOS_SHUTTLE_COOLDOWN > world.time) return - var/area/dest_location = locate(destination) - if(curr_location == dest_location) return - - moving = 1 - lastMove = world.time - - for(var/obj/machinery/door/airlock/alien/A in world) - A.close() - A.locked = 1 - A.update_icon() - - for(var/mob/M in curr_location) - if(M.client) - spawn(0) - if(M.buckled) - M << "\red Sudden acceleration presses you into your chair!" - shake_camera(M, 3, 1) - else - M << "\red The floor lurches beneath you!" - shake_camera(M, 10, 1) - if(istype(M, /mob/living/carbon) && !isalien(M)) - if(!M.buckled) - M.Weaken(3) - - if(curr_location.z != dest_location.z) - var/area/transit_location = locate(/area/xenos_station/transit) - curr_location.move_contents_to(transit_location) - curr_location = transit_location - sleep(XENOS_SHUTTLE_MOVE_TIME) - - for(var/obj/machinery/door/airlock/alien/A in world) - A.close() - if(dest_location != locate(/area/xenos_station/start)) - A.locked = 0 - A.update_icon() - - var/list/dstturfs = list() - var/throwy = world.maxy - - for(var/turf/T in dest_location) - dstturfs += T - if(T.y < throwy) - throwy = T.y - - // hey you, get out of the way! - for(var/turf/T in dstturfs) - // find the turf to move things to - var/turf/D = locate(T.x, throwy - 1, 1) - //var/turf/E = get_step(D, SOUTH) - for(var/atom/movable/AM as mob|obj in T) - AM.Move(D) - if(istype(T, /turf/simulated)) - qdel(T) - - for(var/mob/living/carbon/bug in dest_location) // If someone somehow is still in the shuttle's docking area... - bug.gib() - - for(var/mob/living/simple_animal/pest in dest_location) // And for the other kind of bug... - pest.gib() - - curr_location.move_contents_to(dest_location) - curr_location = dest_location - moving = 0 - return 1 - - -/obj/machinery/computer/xenos_station/attackby(obj/item/I as obj, mob/user as mob, params) - return attack_hand(user) - -/obj/machinery/computer/xenos_station/attack_ai(mob/user as mob) - return attack_hand(user) - -/obj/machinery/computer/xenos_station/attack_alien(mob/user as mob) - return attack_hand(user) - -/obj/machinery/computer/xenos_station/attack_hand(mob/user as mob) - if(!allowed(user)) - user << "\red Access denied." - return - - if(!isalien(user) && !isrobot(user) && !isAI(user)) - user << "You do not know how to operate this terminal." - return - - user.set_machine(src) - - var/dat = {"Location: [curr_location]
- Ready to move[max(lastMove + XENOS_SHUTTLE_COOLDOWN - world.time, 0) ? " in [max(round((lastMove + XENOS_SHUTTLE_COOLDOWN - world.time) * 0.1), 0)] seconds" : ": now"]
- Alien Space
- North-West of SS13 | - North-East of SS13
- East of SS13
- South-West of SS13 | - South-East of SS13
- West of SS13
- North of Research Outpost
- Close"} - - user << browse(dat, "window=computer;size=575x450") - onclose(user, "computer") - return - - -/obj/machinery/computer/xenos_station/Topic(href, href_list) - if(..()) - return 1 - - if(!isliving(usr)) return - var/mob/living/user = usr - - if(in_range(src, user) || istype(user, /mob/living/silicon)) - user.set_machine(src) - - if(href_list["xenos"]) - xenos_move_to(/area/xenos_station/start) - else if(href_list["station_nw"]) - xenos_move_to(/area/xenos_station/northwest) - else if(href_list["station_ne"]) - xenos_move_to(/area/xenos_station/northeast) - else if(href_list["station_e"]) - xenos_move_to(/area/xenos_station/east) - else if(href_list["station_sw"]) - xenos_move_to(/area/xenos_station/southwest) - else if(href_list["station_se"]) - xenos_move_to(/area/xenos_station/southeast) - else if(href_list["station_w"]) - xenos_move_to(/area/xenos_station/west) - else if(href_list["station_ro"]) - xenos_move_to(/area/xenos_station/researchoutpost) - - add_fingerprint(usr) - updateUsrDialog() - return - -/obj/machinery/computer/xenos_station/bullet_act(var/obj/item/projectile/Proj) - visible_message("[Proj] ricochets off [src]!") //let's not let them fuck themselves in the rear \ No newline at end of file diff --git a/code/modules/shuttles/antagonist.dm b/code/modules/shuttles/antagonist.dm index 1f5dccefdc2..aaf5e6ace5c 100644 --- a/code/modules/shuttles/antagonist.dm +++ b/code/modules/shuttles/antagonist.dm @@ -6,7 +6,7 @@ warn_on_return = 1 /obj/machinery/computer/shuttle_control/multi/vox/attack_ai(user as mob) - user << "\red Access Denied." + user << "Access Denied." return 1 /obj/machinery/computer/shuttle_control/multi/syndicate @@ -16,5 +16,34 @@ is_syndicate = 1 /obj/machinery/computer/shuttle_control/multi/syndicate/attack_ai(user as mob) - user << "\red Access Denied." - return 1 \ No newline at end of file + user << " Access Denied." + return 1 + +/obj/machinery/computer/shuttle_control/multi/xenos + name = "alien control console" + shuttle_tag = "Xenomorph" + icon_keyboard = "telesci_key" + icon_screen = "telesci" + +/obj/machinery/computer/shuttle_control/multi/xenos/attack_hand(user as mob) + user << "You do not know how to operate this machinery." + return 1 + +/obj/machinery/computer/shuttle_control/multi/xenos/attack_ai(user as mob) + user << "Access Denied." + return 1 + +/obj/machinery/computer/shuttle_control/multi/xenos/attack_ghost(user as mob) + ui_interact(user) + +/obj/machinery/computer/shuttle_control/multi/xenos/attack_alien(user as mob) + ui_interact(user) + +/obj/machinery/computer/shuttle_control/multi/xenos/CanUseTopic(mob/user) + if(isalien(user)) + return STATUS_INTERACTIVE + + if(ishuman(user)) + return STATUS_CLOSE + + return ..() \ No newline at end of file diff --git a/paradise.dme b/paradise.dme index f90a049128f..4c6733710e9 100644 --- a/paradise.dme +++ b/paradise.dme @@ -503,7 +503,6 @@ #include "code\game\machinery\computer\store.dm" #include "code\game\machinery\computer\syndicate_specops_shuttle.dm" #include "code\game\machinery\computer\telecrystalconsoles.dm" -#include "code\game\machinery\computer\xenos_shuttle.dm" #include "code\game\machinery\doors\airlock.dm" #include "code\game\machinery\doors\airlock_control.dm" #include "code\game\machinery\doors\airlock_electronics.dm" From f09584e99a03bb42f5bc1fe4a331f3c6ba82bd3c Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 19:36:39 +0200 Subject: [PATCH 14/29] Fix amputees picking up items, make sure viruses don't affect robotic limbs --- code/game/objects/items.dm | 5 ++++- code/modules/virus2/effect.dm | 21 ++++++++++++--------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index ab0454b9c61..e14f8ef4406 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -138,8 +138,11 @@ var/obj/item/organ/external/temp = H.organs_by_name["r_hand"] if (user.hand) temp = H.organs_by_name["l_hand"] + if(!temp) + user << "You try to use your hand, but it's missing!" + return 0 if(temp && !temp.is_usable()) - user << "You try to move your [temp.name], but cannot!" + user << "You try to move your [temp.name], but cannot!" return 0 if (istype(src.loc, /obj/item/weapon/storage)) diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index 5cb0986fb88..242200d0c8d 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -218,7 +218,7 @@ var/mob/living/carbon/human/H = mob var/organ = pick(list("r_arm","l_arm","r_leg","r_leg")) var/obj/item/organ/external/E = H.organs_by_name[organ] - if (!(E.status & ORGAN_DEAD)) + if (!(E.status & ORGAN_DEAD) && !(E.status & ORGAN_ROBOT)) E.status |= ORGAN_DEAD H << "You can't feel your [E.name] anymore..." for (var/obj/item/organ/external/C in E.children) @@ -233,9 +233,10 @@ if(istype(mob, /mob/living/carbon/human)) var/mob/living/carbon/human/H = mob for (var/obj/item/organ/external/E in H.organs) - E.status &= ~ORGAN_DEAD - for (var/obj/item/organ/external/C in E.children) - C.status &= ~ORGAN_DEAD + if(!(E.status & ORGAN_ROBOT)) + E.status &= ~ORGAN_DEAD + for (var/obj/item/organ/external/C in E.children) + C.status &= ~ORGAN_DEAD /datum/disease2/effect/immortal @@ -245,7 +246,7 @@ if(istype(mob, /mob/living/carbon/human)) var/mob/living/carbon/human/H = mob for (var/obj/item/organ/external/E in H.organs) - if (E.status & ORGAN_BROKEN && prob(30)) + if (E.status & ORGAN_BROKEN && prob(30) && !(E.status & ORGAN_ROBOT)) E.status ^= ORGAN_BROKEN var/heal_amt = -5*multiplier mob.apply_damages(heal_amt,heal_amt,heal_amt,heal_amt) @@ -324,14 +325,14 @@ if(2) if(ishuman(mob)) for (var/obj/item/organ/external/E in H.organs) - if(pick(1,0)) + if(pick(1,0) && !(E.status & ORGAN_ROBOT)) E.droplimb(0,DROPLIMB_BLUNT) if(3) if(ishuman(mob)) if(H.species.name != "Skellington") mob << " Your necrotic skin ruptures!" for (var/obj/item/organ/external/E in H.organs) - if(pick(1,0)) + if(pick(1,0) && !(E.status & ORGAN_ROBOT)) E.createwound(CUT, pick(2,4)) if(prob(30)) if(H.species.name != "Skellington") @@ -453,13 +454,15 @@ if(istype(mob, /mob/living/carbon/human)) var/mob/living/carbon/human/H = mob for (var/obj/item/organ/external/E in H.organs) - E.min_broken_damage = max(5, E.min_broken_damage - 30) + if(!(E.status & ORGAN_ROBOT)) + E.min_broken_damage = max(5, E.min_broken_damage - 30) deactivate(var/mob/living/carbon/mob,var/multiplier) if(istype(mob, /mob/living/carbon/human)) var/mob/living/carbon/human/H = mob for (var/obj/item/organ/external/E in H.organs) - E.min_broken_damage = initial(E.min_broken_damage) + if(!(E.status & ORGAN_ROBOT)) + E.min_broken_damage = initial(E.min_broken_damage) /datum/disease2/effect/shakey name = "World Shaking Syndrome" From 9f6d46ddf021841f64a3bbf470b723aaf3743a1f Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 19:37:33 +0200 Subject: [PATCH 15/29] Close span tags --- code/game/objects/items.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index e14f8ef4406..d5d1705dae5 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -139,10 +139,10 @@ if (user.hand) temp = H.organs_by_name["l_hand"] if(!temp) - user << "You try to use your hand, but it's missing!" + user << "You try to use your hand, but it's missing!" return 0 if(temp && !temp.is_usable()) - user << "You try to move your [temp.name], but cannot!" + user << "You try to move your [temp.name], but cannot!" return 0 if (istype(src.loc, /obj/item/weapon/storage)) From fd3056792de8c34220f2a5409ea5d599df41a9ea Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 19:50:49 +0200 Subject: [PATCH 16/29] Enable NanoUI debugging properly --- code/controllers/verbs.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/verbs.dm b/code/controllers/verbs.dm index 40099fbd7b4..e182b2702dc 100644 --- a/code/controllers/verbs.dm +++ b/code/controllers/verbs.dm @@ -21,7 +21,7 @@ return -/client/proc/debug_controller(controller in list("Master","failsafe","Ticker","Air","Lighting","Jobs","Sun","Radio","Supply","Shuttles","Emergency Shuttle","Configuration","pAI", "Cameras","Garbage", "Transfer Controller","Event","Alarm","Scheduler")) +/client/proc/debug_controller(controller in list("Master","failsafe","Ticker","Air","Lighting","Jobs","Sun","Radio","Supply","Shuttles","Emergency Shuttle","Configuration","pAI", "Cameras","Garbage", "Transfer Controller","Event","Alarm","Scheduler","Nano")) set category = "Debug" set name = "Debug Controller" set desc = "Debug the various periodic loop controllers for the game (be careful!)" From bbf7fa4c0d728d7e00f5e3200fdb965a39ff4602 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 19:58:26 +0200 Subject: [PATCH 17/29] Prevent robot control href exploit --- code/game/machinery/computer/robot.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index da13f1afa6b..122d7945f65 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -119,11 +119,15 @@ // Antag AI checks if(!istype(user, /mob/living/silicon/ai) || !(user.mind.special_role && user.mind.original == user)) - user << "Access Denied" + user << "Access Denied." + return + + if(target.connected_ai != user) + user << "Access Denied. This robot is not linked to you." return if(target.emagged) - user << "Robot is already hacked." + user << "Robot is already hacked." return var/choice = input("Really hack [target.name]? This cannot be undone.") in list("Yes", "No") From cfe4fd4d88950e8af65249884c0ff5dddac30c0d Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 20:08:57 +0200 Subject: [PATCH 18/29] Fix slime feeding exploit --- code/modules/mob/living/carbon/metroid/powers.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/metroid/powers.dm b/code/modules/mob/living/carbon/metroid/powers.dm index cc55ac61572..fdbe54a9220 100644 --- a/code/modules/mob/living/carbon/metroid/powers.dm +++ b/code/modules/mob/living/carbon/metroid/powers.dm @@ -54,7 +54,7 @@ else icon_state = "[colour] baby slime eat" - while(Victim && M.health > -70 && stat != 2) + while(Victim && M.health > -70 && M.stat != DEAD && stat != DEAD) canmove = 0 if(Adjacent(M)) From f41b001a5dbd195c0c3fa8d1c1bc4d10399a1af1 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 20:30:28 +0200 Subject: [PATCH 19/29] Fix alert monitor console updates --- code/game/machinery/computer/atmos_alert.dm | 5 +---- code/game/machinery/computer/message.dm | 10 ++++++---- code/game/machinery/computer/station_alert.dm | 7 ++----- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/code/game/machinery/computer/atmos_alert.dm b/code/game/machinery/computer/atmos_alert.dm index 2ef07f0eac4..c93ae5cafc0 100644 --- a/code/game/machinery/computer/atmos_alert.dm +++ b/code/game/machinery/computer/atmos_alert.dm @@ -45,9 +45,6 @@ var/global/list/minor_air_alarms = list() ui.set_auto_update(1) /obj/machinery/computer/atmos_alert/update_icon() - ..() - if(stat & (NOPOWER|BROKEN)) - return var/list/alarms = atmosphere_alarm.major_alarms() if(alarms.len) icon_screen = "alert:2" @@ -57,7 +54,7 @@ var/global/list/minor_air_alarms = list() icon_screen = "alert:1" else icon_screen = "alert:0" - return + ..() /obj/machinery/computer/atmos_alert/Topic(href, href_list) if(..()) diff --git a/code/game/machinery/computer/message.dm b/code/game/machinery/computer/message.dm index be2e2f85614..8a7d4d170a8 100644 --- a/code/game/machinery/computer/message.dm +++ b/code/game/machinery/computer/message.dm @@ -64,19 +64,21 @@ MK.loc = src.loc // Will help make emagging the console not so easy to get away with. MK.info += "

£%@%(*$%&(£&?*(%&£/{}" - spawn(100*length(src.linkedServer.decryptkey)) UnmagConsole() + update_icon() + spawn(100*length(src.linkedServer.decryptkey)) + UnmagConsole() + update_icon() message = rebootmsg else user << "A no server error appears on the screen." /obj/machinery/computer/message_monitor/update_icon() - ..() - if(stat & (NOPOWER|BROKEN)) - return if(emag || hacking) icon_screen = hack_icon else icon_screen = normal_icon + + ..() /obj/machinery/computer/message_monitor/initialize() ..() diff --git a/code/game/machinery/computer/station_alert.dm b/code/game/machinery/computer/station_alert.dm index c16cc38f1d2..19a5d8e59ee 100644 --- a/code/game/machinery/computer/station_alert.dm +++ b/code/game/machinery/computer/station_alert.dm @@ -43,14 +43,11 @@ alarm_monitor.ui_interact(user) /obj/machinery/computer/station_alert/update_icon() - ..() - if(stat & (BROKEN|NOPOWER)) - return - if(alarm_monitor) var/list/alarms = alarm_monitor.major_alarms() if(alarms.len) icon_screen = "alert:2" else icon_screen = "alert:0" - return + + ..() \ No newline at end of file From 4252bd765bfcce6e000159188da5ad35ec6da0b5 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 20:41:21 +0200 Subject: [PATCH 20/29] Fix Syndicate Shuttle tag oversight --- code/controllers/shuttle_controller.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 563c94c8442..9c536931ce1 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -245,7 +245,7 @@ var/global/datum/shuttle_controller/shuttle_controller MS.interim = locate(/area/syndicate_station/transit) MS.warmup_time = 0 - shuttles["Xenomorph"] = MS + shuttles["Syndicate"] = MS //Xenos shuttle. var/datum/shuttle/multi_shuttle/XS = new/datum/shuttle/multi_shuttle() From 7ee077c17a6523fe0386a217ecce890feffca784 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 21:00:09 +0200 Subject: [PATCH 21/29] Fix unnecessary space --- code/modules/shuttles/antagonist.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/shuttles/antagonist.dm b/code/modules/shuttles/antagonist.dm index aaf5e6ace5c..13cccbc900f 100644 --- a/code/modules/shuttles/antagonist.dm +++ b/code/modules/shuttles/antagonist.dm @@ -16,7 +16,7 @@ is_syndicate = 1 /obj/machinery/computer/shuttle_control/multi/syndicate/attack_ai(user as mob) - user << " Access Denied." + user << "Access Denied." return 1 /obj/machinery/computer/shuttle_control/multi/xenos From b4301c3e76127e83d7a59fbf1dbd7547d10e6d09 Mon Sep 17 00:00:00 2001 From: Markolie Date: Sun, 9 Aug 2015 23:58:05 +0200 Subject: [PATCH 22/29] Let ghosts interact with requests consoles/turret controls, mecha bay console icon fix --- code/game/machinery/alarm.dm | 5 +++++ code/game/machinery/firealarm.dm | 7 +------ code/game/machinery/requests_console.dm | 9 ++++++++- code/game/machinery/turret_control.dm | 3 +++ code/game/mecha/mech_bay.dm | 1 + 5 files changed, 18 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index b9abe4e1c1d..f5ef29300f8 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -601,6 +601,11 @@ /obj/machinery/alarm/attack_robot(mob/user) return attack_ai(user) + +/obj/machinery/alarm/attack_ghost(user as mob) + if(stat & (BROKEN|MAINT)) + return + return ui_interact(user) /obj/machinery/alarm/attack_hand(mob/user) . = ..() diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm index 7d454f857c8..2c03a7a92e8 100644 --- a/code/game/machinery/firealarm.dm +++ b/code/game/machinery/firealarm.dm @@ -53,12 +53,7 @@ FIRE ALARM if(src.detecting) if(temperature > T0C+200) src.alarm() // added check of detector status here - return - -/obj/machinery/alarm/attack_ghost(user as mob) - if(stat & (BROKEN|MAINT)) - return - return ui_interact(user) + return /obj/machinery/firealarm/attack_ai(mob/user as mob) src.add_hiddenprint(user) diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm index 65096f6b938..133ce3814df 100644 --- a/code/game/machinery/requests_console.dm +++ b/code/game/machinery/requests_console.dm @@ -98,6 +98,12 @@ var/list/obj/machinery/requests_console/allConsoles = list() req_console_information -= department ..() +/obj/machinery/requests_console/attack_ghost(user as mob) + if(stat & NOPOWER) + return + + ui_interact(user) + /obj/machinery/requests_console/attack_hand(user as mob) if(..(user)) return @@ -132,7 +138,8 @@ var/list/obj/machinery/requests_console/allConsoles = list() ui.set_auto_update(1) /obj/machinery/requests_console/Topic(href, href_list) - if(..()) return + if(..()) + return 1 usr.set_machine(src) add_fingerprint(usr) diff --git a/code/game/machinery/turret_control.dm b/code/game/machinery/turret_control.dm index 798fc855f29..1f09153a78a 100644 --- a/code/game/machinery/turret_control.dm +++ b/code/game/machinery/turret_control.dm @@ -107,6 +107,9 @@ return ui_interact(user) + +/obj/machinery/turretid/attack_ghost(mob/user as mob) + ui_interact(user) /obj/machinery/turretid/attack_hand(mob/user as mob) if(isLocked(user)) diff --git a/code/game/mecha/mech_bay.dm b/code/game/mecha/mech_bay.dm index b9516d3619d..3f6b92c98ce 100644 --- a/code/game/mecha/mech_bay.dm +++ b/code/game/mecha/mech_bay.dm @@ -223,6 +223,7 @@ /obj/machinery/computer/mech_bay_power_console/proc/mecha_out() if(recharge_port) recharge_port.stop_charge() + update_icon() return /obj/machinery/computer/mech_bay_power_console/power_change() From 30541674e1c703dc85e19a6d60388a3aa4f320d0 Mon Sep 17 00:00:00 2001 From: Markolie Date: Mon, 10 Aug 2015 00:06:21 +0200 Subject: [PATCH 23/29] Let ghosts properly access turret controls --- code/game/machinery/turret_control.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/turret_control.dm b/code/game/machinery/turret_control.dm index 1f09153a78a..987d48011d4 100644 --- a/code/game/machinery/turret_control.dm +++ b/code/game/machinery/turret_control.dm @@ -68,7 +68,7 @@ user << "There seems to be a firewall preventing you from accessing this device." return 1 - if(locked && !(isrobot(user) || isAI(user))) + if(locked && !(isrobot(user) || isAI(user) || isobserver(user))) user << "Access denied." return 1 From f5b64a84be58a0c21532dd4295e38ec8decc870f Mon Sep 17 00:00:00 2001 From: Markolie Date: Mon, 10 Aug 2015 00:08:20 +0200 Subject: [PATCH 24/29] Add missing spans to robot control --- code/game/machinery/computer/robot.dm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index 122d7945f65..ba3727ee30b 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -55,11 +55,11 @@ if(!target || !istype(target)) return if(isAI(user) && (target.connected_ai != user)) - user << "Access Denied. This robot is not linked to you." + user << "Access Denied. This robot is not linked to you." return // Cyborgs may blow up themselves via the console if(isrobot(user) && user != target) - user << "Access Denied." + user << "Access Denied." return var/choice = input("Really detonate [target.name]?") in list ("Yes", "No") if(choice != "Yes") @@ -87,11 +87,11 @@ return if(isAI(user) && (target.connected_ai != user)) - user << "Access Denied. This robot is not linked to you." + user << "Access Denied. This robot is not linked to you." return if(isrobot(user)) - user << "Access Denied." + user << "Access Denied." return var/choice = input("Really [target.lockcharge ? "unlock" : "lockdown"] [target.name] ?") in list ("Yes", "No") @@ -123,7 +123,7 @@ return if(target.connected_ai != user) - user << "Access Denied. This robot is not linked to you." + user << "Access Denied. This robot is not linked to you." return if(target.emagged) @@ -145,11 +145,11 @@ // Arms the emergency self-destruct system else if(href_list["arm"]) if(istype(user, /mob/living/silicon)) - user << "Access Denied" + user << "Access Denied." return safety = !safety - user << "You [safety ? "disarm" : "arm"] the emergency self destruct" + user << "You [safety ? "disarm" : "arm"] the emergency self destruct." // Destroys all accessible cyborgs if safety is disabled else if(href_list["nuke"]) From a01d9e100c2c4dd2593dc2bfcfdc8fae7600d5c3 Mon Sep 17 00:00:00 2001 From: Markolie Date: Mon, 10 Aug 2015 00:17:32 +0200 Subject: [PATCH 25/29] Make sure ghosts always use their correct icon/overlays rather than the generic white spooky scary ghost --- code/modules/mob/dead/observer/observer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 84209d2ef37..6a824e8d0f6 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -592,7 +592,7 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp /mob/dead/observer/proc/updateghostimages() if (!client) return - if (seedarkness || !ghostvision) + if (!ghostvision) client.images -= ghost_darkness_images else //add images for the 60inv things ghosts can normally see when darkness is enabled so they can see them now From 68e8fb616266f3efd2ab588ab526d3783cd2590b Mon Sep 17 00:00:00 2001 From: DZD Date: Sun, 9 Aug 2015 10:22:07 -0400 Subject: [PATCH 26/29] Span changes --- code/modules/projectiles/projectile/magic.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index 9d7e8c90efc..9772d42dd99 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -262,7 +262,8 @@ proc/wabbajack(mob/living/M) S.icon = change.icon if(H.mind) H.mind.transfer_to(S) - S << "You are an animated statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [firer.name], your creator." + S << "You are an animated statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved!" + S << "Do not harm [firer.name], your creator." H = change H.loc = S qdel(src) From 92b69aec35c62b7bc6650dac8bf57be060a0f85a Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 9 Aug 2015 20:14:22 -0400 Subject: [PATCH 27/29] Explosion Performance Fix --- code/game/objects/explosion.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/game/objects/explosion.dm b/code/game/objects/explosion.dm index 9db5b923ef3..71ce05beffc 100644 --- a/code/game/objects/explosion.dm +++ b/code/game/objects/explosion.dm @@ -118,8 +118,7 @@ if(flame_dist && prob(40) && !istype(T, /turf/space) && !T.density) PoolOrNew(/obj/effect/hotspot, T) //Mostly for ambience! if(dist > 0) - spawn(0) - T.ex_act(dist) + T.ex_act(dist) //--- THROW ITEMS AROUND --- /* From 93927dd8ee53b24224c9cd8cdfee16e360ef1308 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 9 Aug 2015 21:13:28 -0400 Subject: [PATCH 28/29] Fixes Floragun for Security Bots --- code/game/machinery/bots/ed209bot.dm | 3 ++- code/game/machinery/bots/secbot.dm | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/game/machinery/bots/ed209bot.dm b/code/game/machinery/bots/ed209bot.dm index 579e0c818fb..a3670dd44c6 100644 --- a/code/game/machinery/bots/ed209bot.dm +++ b/code/game/machinery/bots/ed209bot.dm @@ -44,7 +44,8 @@ /obj/item/weapon/gun/energy/laser/redtag,\ /obj/item/weapon/gun/energy/laser/practice,\ /obj/item/weapon/melee/classic_baton/telescopic,\ - /obj/item/weapon/gun/energy/kinetic_accelerator) + /obj/item/weapon/gun/energy/kinetic_accelerator,\ + /obj/item/weapon/gun/energy/floragun) /obj/item/weapon/ed209_assembly diff --git a/code/game/machinery/bots/secbot.dm b/code/game/machinery/bots/secbot.dm index c8320bfc5d5..90784f970c1 100644 --- a/code/game/machinery/bots/secbot.dm +++ b/code/game/machinery/bots/secbot.dm @@ -37,7 +37,8 @@ /obj/item/weapon/gun/energy/laser/redtag,\ /obj/item/weapon/gun/energy/laser/practice,\ /obj/item/weapon/melee/classic_baton/telescopic,\ - /obj/item/weapon/gun/energy/kinetic_accelerator) + /obj/item/weapon/gun/energy/kinetic_accelerator,\ + /obj/item/weapon/gun/energy/floragun) /obj/machinery/bot/secbot/beepsky From deafc93baaf842fc3ac3f6409e3d089dedf41cc8 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Sun, 9 Aug 2015 22:11:37 -0400 Subject: [PATCH 29/29] Dismemberment Tweaks --- code/__DEFINES/mob.dm | 2 - code/game/dna/genes/goon_powers.dm | 2 +- code/modules/mob/living/carbon/human/death.dm | 2 +- code/modules/organs/organ_external.dm | 39 +------------------ code/modules/virus2/effect.dm | 2 +- 5 files changed, 5 insertions(+), 42 deletions(-) diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm index 0080658562b..fcb6e53c365 100644 --- a/code/__DEFINES/mob.dm +++ b/code/__DEFINES/mob.dm @@ -29,8 +29,6 @@ #define ORGAN_ASSISTED 4096 #define DROPLIMB_EDGE 0 -#define DROPLIMB_BLUNT 1 -#define DROPLIMB_BURN 2 #define AGE_MIN 17 //youngest a character can be #define AGE_MAX 85 //oldest a character can be diff --git a/code/game/dna/genes/goon_powers.dm b/code/game/dna/genes/goon_powers.dm index 1a014a35fc9..452a8cd6c8d 100644 --- a/code/game/dna/genes/goon_powers.dm +++ b/code/game/dna/genes/goon_powers.dm @@ -315,7 +315,7 @@ return usr.visible_message("\red [usr] [pick("chomps","bites")] off [the_item]'s [limb]!") playsound(usr.loc, 'sound/items/eatfood.ogg', 50, 0) - var/obj/limb_obj=limb.droplimb(0,DROPLIMB_BLUNT) + var/obj/limb_obj=limb.droplimb(0,DROPLIMB_EDGE) if(limb_obj) var/obj/item/organ/external/chest=usr:get_organ("chest") chest.implants += limb_obj diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 29dfa0aceed..4603778112c 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -25,7 +25,7 @@ // Only make the limb drop if it's not too damaged if(prob(100 - E.get_damage())) // Override the current limb status and don't cause an explosion - E.droplimb(1,pick(DROPLIMB_EDGE,DROPLIMB_BLUNT)) + E.droplimb(DROPLIMB_EDGE) if(!(species.flags & IS_SYNTHETIC)) flick("gibbed-h", animation) diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index d045017117d..fdccbd826a7 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -208,17 +208,10 @@ var/mob/living/carbon/owner_old = owner //Need to update health, but need a reference in case the below check cuts off a limb. //If limb took enough damage, try to cut or tear it off if(owner && loc == owner) - if(!cannot_amputate && config.limbs_can_break && (brute_dam + burn_dam) >= (max_damage * config.organ_health_multiplier)) - var/dropped - if(burn >= 20 && prob(burn / 2)) - if(body_part == HEAD) return - dropped = 1 - droplimb(0,DROPLIMB_BURN) - if(!dropped && prob(brute / 2)) + if(!cannot_amputate && config.limbs_can_break && (brute_dam) >= (max_damage * config.organ_health_multiplier)) + if(prob(brute / 2)) if(edge) droplimb(0,DROPLIMB_EDGE) - else - droplimb(0,DROPLIMB_BLUNT) if(owner_old) owner_old.updatehealth() return update_icon() @@ -610,16 +603,6 @@ Note that amputating the affected organ does in fact remove the infection from t "\The [owner]'s [src.name] flies off in an arc!",\ "Your [src.name] goes flying off!",\ "You hear a terrible sound of ripping tendons and flesh.") - if(DROPLIMB_BURN) - owner.visible_message( - "\The [owner]'s [src.name] flashes away into ashes!",\ - "Your [src.name] flashes away into ashes!",\ - "You hear the crackling sound of burning flesh.") - if(DROPLIMB_BLUNT) - owner.visible_message( - "\The [owner]'s [src.name] explodes in a shower of gore!",\ - "Your [src.name] explodes in a shower of gore!",\ - "You hear the sickening splatter of gore.") var/mob/living/carbon/human/victim = owner //Keep a reference for post-removed(). removed(null, ignore_children) @@ -663,24 +646,6 @@ Note that amputating the affected organ does in fact remove the infection from t throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30) dir = 2 return - if(DROPLIMB_BURN) - new /obj/effect/decal/cleanable/ash(get_turf(victim)) - qdel(src) - if(DROPLIMB_BLUNT) - var/obj/effect/decal/cleanable/blood/gibs/gore = new victim.species.single_gib_type(get_turf(victim)) - if(victim.species.flesh_color) - gore.fleshcolor = victim.species.flesh_color - if(victim.species.blood_color) - gore.basecolor = victim.species.blood_color - gore.update_icon() - gore.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30) - - for(var/obj/item/organ/I in contents) - I.loc = loc - if(istype(loc,/turf)) - I.throw_at(get_edge_target_turf(src,pick(alldirs)),rand(1,3),30) - qdel(src) - /**************************************************** HELPERS diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index 242200d0c8d..cf728cd50ed 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -326,7 +326,7 @@ if(ishuman(mob)) for (var/obj/item/organ/external/E in H.organs) if(pick(1,0) && !(E.status & ORGAN_ROBOT)) - E.droplimb(0,DROPLIMB_BLUNT) + E.droplimb(0,DROPLIMB_EDGE) if(3) if(ishuman(mob)) if(H.species.name != "Skellington")