From c98fe26816e455059106581d903616fe8e64a0d4 Mon Sep 17 00:00:00 2001 From: Kilakk Date: Wed, 12 Jun 2013 23:52:41 -0400 Subject: [PATCH 01/34] Adds access_xenoarch "Xenoarchaeology" * Tested this, it works with the ID computer and with scientists on spawn-in * Scientists hold on to their access to xenoarch for now --- code/game/jobs/access.dm | 9 ++++++--- code/game/jobs/job/science.dm | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/code/game/jobs/access.dm b/code/game/jobs/access.dm index 407ec98b84..82fe991ce0 100644 --- a/code/game/jobs/access.dm +++ b/code/game/jobs/access.dm @@ -64,6 +64,7 @@ /var/const/access_gateway = 62 /var/const/access_sec_doors = 63 // Security front doors /var/const/access_psychiatrist = 64 // Psychiatrist's office +/var/const/access_xenoarch = 65 //BEGIN CENTCOM ACCESS /*Should leave plenty of room if we need to add more access levels. @@ -209,7 +210,7 @@ access_hydroponics, access_library, access_lawyer, access_virology, access_psychiatrist, access_cmo, access_qm, access_clown, access_mime, access_surgery, access_theatre, access_research, access_mining, access_mailsorting, access_heads_vault, access_mining_station, access_xenobiology, access_ce, access_hop, access_hos, access_RC_announce, - access_keycard_auth, access_tcomsat, access_gateway) + access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) /proc/get_all_centcom_access() return list(access_cent_general, access_cent_thunder, access_cent_specops, access_cent_medical, access_cent_living, access_cent_storage, access_cent_teleporter, access_cent_creed, access_cent_captain) @@ -226,7 +227,7 @@ if(2) //medbay return list(access_medical, access_genetics, access_morgue, access_chemistry, access_psychiatrist, access_virology, access_surgery, access_cmo) if(3) //research - return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_rd) + return list(access_research, access_tox, access_tox_storage, access_robotics, access_xenobiology, access_xenoarch, access_rd) if(4) //engineering and maintenance return list(access_construction, access_maint_tunnels, access_engine, access_engine_equip, access_external_airlocks, access_tech_storage, access_atmospherics, access_ce) if(5) //command @@ -370,6 +371,8 @@ return "Mining EVA" if(access_xenobiology) return "Xenobiology Lab" + if(access_xenoarch) + return "Xenoarchaeology" if(access_hop) return "Head of Personnel" if(access_hos) @@ -412,7 +415,7 @@ return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Chef", "Botanist", "Quartermaster", "Cargo Technician", "Shaft Miner", /*"Clown", "Mime", */"Janitor", "Librarian", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer", "Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", - "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") + "Research Director", "Scientist", "Xenobiologist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer") /proc/get_all_centcom_jobs() return list("VIP Guest","Custodian","Thunderdome Overseer","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Supreme Commander") diff --git a/code/game/jobs/job/science.dm b/code/game/jobs/job/science.dm index 1b6179bbac..fbfe286e48 100644 --- a/code/game/jobs/job/science.dm +++ b/code/game/jobs/job/science.dm @@ -12,11 +12,11 @@ access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) minimal_access = list(access_rd, access_heads, access_tox, access_genetics, access_morgue, access_tox_storage, access_teleporter, access_sec_doors, access_research, access_robotics, access_xenobiology, access_ai_upload, - access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway) + access_RC_announce, access_keycard_auth, access_tcomsat, access_gateway, access_xenoarch) minimal_player_age = 7 equip(var/mob/living/carbon/human/H) @@ -44,8 +44,8 @@ spawn_positions = 3 supervisors = "the research director" selection_color = "#ffeeff" - access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology) - minimal_access = list(access_tox, access_tox_storage, access_research) + access = list(access_robotics, access_tox, access_tox_storage, access_research, access_xenobiology, access_xenoarch) + minimal_access = list(access_tox, access_tox_storage, access_research, access_xenoarch) alt_titles = list("Xenoarcheologist", "Anomalist", "Plasma Researcher") equip(var/mob/living/carbon/human/H) From 5660a551dc9de5de2e0ed3cc5989cb6a5f633543 Mon Sep 17 00:00:00 2001 From: Kilakk Date: Wed, 12 Jun 2013 23:55:15 -0400 Subject: [PATCH 02/34] Changed research outpost doors to access_xenoarch * Most (if not all) doors on the research outpost now require access to "Xenoarchaeology" ("65" for mappers) --- maps/tgstation.2.1.0.0.1.dmm | 132 +++++++++++++++++------------------ 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/maps/tgstation.2.1.0.0.1.dmm b/maps/tgstation.2.1.0.0.1.dmm index 939f481e3d..36437bdddd 100644 --- a/maps/tgstation.2.1.0.0.1.dmm +++ b/maps/tgstation.2.1.0.0.1.dmm @@ -3805,7 +3805,7 @@ "bvi" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/medical/research{name = "Research Division"}) "bvj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvk" = (/obj/machinery/light/small{dir = 1},/obj/machinery/camera{c_tag = "Research Shuttle Maintainance"; dir = 2},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bvl" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bvl" = (/obj/machinery/door/airlock/research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bvm" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bvn" = (/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) "bvo" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/shuttle/plating,/area/medical/research{name = "Research Division"}) @@ -3883,7 +3883,7 @@ "bwI" = (/obj/machinery/door/poddoor{density = 0; icon_state = "pdoor0"; id = "Biohazard"; name = "Biohazard Shutter"; opacity = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bwJ" = (/obj/machinery/light,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bwK" = (/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/medical/research{name = "Research Division"}) -"bwL" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) +"bwL" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bwM" = (/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/quartermaster/storage) "bwN" = (/obj/machinery/conveyor_switch/oneway{convdir = -1; id = "QMLoad"},/turf/simulated/floor,/area/quartermaster/storage) "bwO" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; on = 1},/turf/simulated/floor,/area/quartermaster/storage) @@ -5170,7 +5170,7 @@ "bVv" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{dir = 4; icon_state = "intact"; level = 2},/obj/machinery/door/airlock/external{frequency = 1379; icon_state = "door_locked"; id_tag = "toxin_test_inner"; locked = 1; name = "Engineering External Access"; req_access = null; req_access_txt = "13"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bVw" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/structure/sign/securearea{desc = "A warning sign which reads 'EXTERNAL AIRLOCK'"; icon_state = "space"; layer = 4; name = "EXTERNAL AIRLOCK"; pixel_x = 0; pixel_y = -32},/obj/machinery/atmospherics/unary/vent_pump/high_volume{dir = 8; frequency = 1379; id_tag = "toxin_test_pump"},/obj/machinery/airlock_sensor{frequency = 1379; id_tag = "toxin_test_sensor"; pixel_x = 0; pixel_y = 16},/turf/simulated/floor/plating,/area/maintenance/asmaint2) "bVx" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/embedded_controller/radio/airlock_controller{airpump_tag = "toxin_test_pump"; exterior_door_tag = "toxin_test_outer"; frequency = 1379; id_tag = "toxin_test_airlock"; interior_door_tag = "toxin_test_inner"; pixel_x = 0; pixel_y = 25; req_access_txt = "13"; sensor_tag = "toxin_test_sensor"},/turf/simulated/floor/plating,/area/maintenance/asmaint2) -"bVy" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) +"bVy" = (/obj/machinery/door/airlock/external{name = "Shuttle Airlock"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bVz" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/access_button{command = "cycle_exterior"; frequency = 1379; master_tag = "toxin_test_airlock"; name = "exterior access button"; pixel_x = -20; pixel_y = -20; req_access_txt = "13"},/turf/simulated/floor/plating/airless,/area) "bVA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating/airless,/area) "bVB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/external{name = "Toxins Test Chamber"; req_access_txt = "0"},/turf/simulated/floor/plating/airless,/area/toxins/test_area) @@ -6791,6 +6791,7 @@ "cAE" = (/obj/machinery/door/window{base_state = "right"; dir = 4; icon_state = "right"; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAF" = (/obj/machinery/door/window{dir = 8; name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "cAG" = (/obj/structure/closet/crate/medical,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/o2,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/toxin,/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) +"cAH" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso3) "cAI" = (/obj/item/weapon/weldingtool,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAJ" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) "cAK" = (/obj/item/weapon/crowbar,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor3"},/area/syndicate_station/start) @@ -8714,7 +8715,7 @@ "dlE" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dlF" = (/obj/structure/closet/crate/hydroponics,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/glass/bucket,/obj/item/weapon/minihoe,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weedkiller/triclopyr,/obj/item/nutrient/ez,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) "dlG" = (/obj/machinery/light/small,/turf/simulated/floor/plating,/area/research_outpost/maintstore1) -"dlH" = (/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "11;47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) +"dlH" = (/obj/machinery/door/airlock/external{id_tag = "riso2"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso2) "dlI" = (/turf/simulated/floor,/area/research_outpost/maintstore1) "dlJ" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/maintstore1) "dlK" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/obj/machinery/camera{c_tag = "Research Outpost Auxiliary Storage"; dir = 8; network = list("RD","SS13")},/obj/machinery/alarm{dir = 8; icon_state = "alarm0"; pixel_x = 24},/turf/simulated/floor,/area/research_outpost/maintstore1) @@ -8727,7 +8728,7 @@ "dlR" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dlS" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 9},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dlT" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) -"dlU" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dlU" = (/obj/machinery/door/airlock/external{id_tag = "riso1"; name = "Access Airlock"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso1) "dlV" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dlW" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 2; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/rack,/obj/item/clothing/suit/fire/heavy{desc = "A suit that protects against temperatures up to -50 C"; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "thermal protection suit"},/obj/item/clothing/gloves/black{desc = "These gloves are cold-resistant."; max_heat_protection_temperature = 273; min_cold_protection_temperature = 223; name = "warm gloves"},/obj/item/clothing/ears/earmuffs{cold_protection = 1; desc = "Protects your hearing from loud noises and keeps your ears warm."; min_cold_protection_temperature = 223},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) "dlX" = (/turf/simulated/wall/r_wall,/area/research_outpost/sample) @@ -8749,12 +8750,12 @@ "dmn" = (/obj/structure/window/reinforced{dir = 5; health = 1e+007},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dmo" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dmp" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) -"dmq" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"dmq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/gearstore) "dmr" = (/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dms" = (/obj/structure/sign/nosmoking_2{pixel_y = 32},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dmt" = (/obj/structure/table,/obj/machinery/light{dir = 1},/obj/machinery/reagentgrinder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dmu" = (/obj/structure/table,/obj/item/weapon/storage/box/solution_trays,/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/sample) -"dmv" = (/obj/machinery/door/window/westleft{dir = 1; name = "Sample Preparation Loading"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/research_outpost/sample) +"dmv" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dmw" = (/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{dir = 1; icon_state = "bluecorner"},/area/research_outpost/sample) "dmx" = (/obj/machinery/hydroponics/soil,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/grass,/area/research_outpost/maintstore1) "dmy" = (/obj/machinery/hydroponics/soil,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/grass,/area/research_outpost/maintstore1) @@ -8804,7 +8805,7 @@ "dnq" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 5},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dnr" = (/obj/machinery/atmospherics/pipe/simple/heat_exchanging{dir = 10},/turf/simulated/floor{icon_state = "dark"},/area/research_outpost/spectro) "dns" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; on = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) -"dnt" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "47"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dnt" = (/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dnu" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dnv" = (/obj/structure/table,/obj/structure/sign/nosmoking_2{pixel_x = 32},/obj/machinery/camera{c_tag = "Research Outpost Mass Spectrometry"; dir = 8; network = list("RD","SS13")},/obj/item/weapon/pen,/obj/item/weapon/clipboard,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/folder,/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 4; icon_state = "whitegreen"},/area/research_outpost/spectro) "dnw" = (/obj/machinery/chem_dispenser,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) @@ -8812,7 +8813,7 @@ "dny" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dnz" = (/obj/machinery/light/small{dir = 4},/obj/machinery/power/apc{dir = 4; name = "Sample Preparation APC"; pixel_x = 24; pixel_y = 0},/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dnA" = (/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) -"dnB" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/anomaly) +"dnB" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "65"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/tempstorage) "dnC" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dnD" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "dnE" = (/obj/machinery/atmospherics/unary/heat_reservoir/heater{dir = 4},/obj/structure/sign/nosmoking_1{pixel_x = -32},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -8839,7 +8840,7 @@ "dnZ" = (/obj/structure/table,/obj/item/weapon/storage/box/solution_trays,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/camera{c_tag = "Research Outpost Sample Preparation"; dir = 1; network = list("RD","SS13")},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "doa" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) "dob" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 2; icon_state = "whiteblue"},/area/research_outpost/sample) -"doc" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"doc" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dod" = (/obj/structure/disposalpipe/segment,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doe" = (/obj/machinery/alarm{dir = 2; pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dof" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitepurple"},/area/research_outpost/anomaly) @@ -8862,10 +8863,10 @@ "dow" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/mine/abandoned) "dox" = (/turf/simulated/mineral/random,/area/mine/explored) "doy" = (/obj/structure/lattice,/obj/structure/transit_tube{tag = "icon-S-NE"; icon_state = "S-NE"},/turf/space,/area) -"doz" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) +"doz" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doA" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/spectro) "doB" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/sample) -"doC" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) +"doC" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doD" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/wall/r_wall,/area/research_outpost/sample) "doE" = (/obj/structure/disposalpipe/segment,/obj/machinery/power/apc{dir = 8; name = "Anomalous Materials APC"; pixel_x = -24; pixel_y = 0},/obj/structure/rack,/obj/item/clothing/head/welding,/obj/item/weapon/weldingtool,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doF" = (/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -8874,7 +8875,7 @@ "doI" = (/obj/machinery/light/small{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "doJ" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "cafeteria"; dir = 2},/area/research_outpost/hallway) "doK" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) -"doL" = (/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) +"doL" = (/obj/machinery/door/window/westleft{dir = 8; name = "Locker room"; opacity = 0; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/turf/simulated/floor,/area/research_outpost/hallway) "doM" = (/obj/machinery/alarm{dir = 1; pixel_y = -22},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b"; initialize_directions = 6; level = 2; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "doN" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b"; level = 2; name = "pipe manifold"},/obj/machinery/light/small,/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "doO" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b"; level = 2; name = "pipe manifold"},/obj/machinery/meter,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) @@ -8907,7 +8908,7 @@ "dpp" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{dir = 8; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dpq" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) "dpr" = (/turf/simulated/wall/r_wall,/area/research_outpost/power) -"dps" = (/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor,/area/research_outpost/power) +"dps" = (/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) "dpt" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 5; icon_state = "intact-r"; level = 2},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dpu" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/wall/r_wall,/area/research_outpost/power) "dpv" = (/obj/structure/transit_tube{tag = "icon-N-S"; icon_state = "N-S"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r"; level = 2},/turf/simulated/floor/plating/airless/asteroid,/area/research_outpost/atmos) @@ -8929,12 +8930,12 @@ "dpL" = (/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dpM" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 10; icon_state = "intact-r-f"; initialize_directions = 10; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) "dpN" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) -"dpO" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dpO" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpP" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpR" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/stool/bed/chair,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dpS" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dpT" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dpT" = (/obj/machinery/door/window/westleft{dir = 1; name = "Locker room"; opacity = 0; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/hallway) "dpU" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "whitepurple"},/area/research_outpost/hallway) "dpV" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) "dpW" = (/obj/machinery/power/port_gen/pacman{anchored = 1},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8954,7 +8955,7 @@ "dqk" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dql" = (/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/vending/snack,/turf/simulated/floor/wood,/area/research_outpost/hallway) "dqm" = (/obj/structure/closet/secure_closet/xenoarchaeologist{req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/research_outpost/hallway) -"dqn" = (/obj/machinery/door/window/westleft{dir = 1; name = "Locker room"; opacity = 0; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/hallway) +"dqn" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) "dqo" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dqp" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) "dqq" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = 32},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/research_outpost/hallway) @@ -8962,11 +8963,11 @@ "dqs" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 5},/obj/item/weapon/clipboard,/obj/item/weapon/pen,/obj/item/weapon/folder,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dqt" = (/obj/structure/table,/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/obj/item/device/measuring_tape,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dqu" = (/obj/machinery/atmospherics/pipe/tank/nitrogen,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) -"dqv" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dqv" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "dqw" = (/obj/machinery/camera{c_tag = "Research Outpost Anomalous Materials Lab"; dir = 8; network = list("RD","SS13")},/obj/machinery/atmospherics/unary/cold_sink/freezer{current_temperature = 273; dir = 2; on = 0},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dqx" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/sign/science{desc = "A warning sign which reads 'ANOMALOUS MATERIALS'"; name = "\improper ANOMALOUS MATERIALS"; pixel_x = -32},/turf/simulated/floor{dir = 1; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dqy" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_pump{dir = 8; on = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellow"; tag = "icon-whitehall (WEST)"},/area/research_outpost/hallway) -"dqz" = (/obj/machinery/door/airlock/engineering{name = "Outpost Power"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/turf/simulated/floor/plating,/area/research_outpost/power) +"dqz" = (/obj/machinery/door/airlock/external{name = "Research Outpost Dock Airlock"; req_access_txt = "65"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dqA" = (/turf/simulated/floor/plating,/area/research_outpost/power) "dqB" = (/obj/machinery/power/terminal{dir = 4},/obj/structure/cable,/turf/simulated/floor/plating,/area/research_outpost/power) "dqC" = (/obj/machinery/power/smes{charge = 5e+006},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/obj/structure/cable{icon_state = "0-2"; pixel_y = 1; d2 = 2},/obj/structure/cable,/obj/structure/cable{icon_state = "0-2"; d2 = 2},/obj/structure/cable,/obj/machinery/light/small{dir = 4},/turf/simulated/floor/plating,/area/research_outpost/power) @@ -8983,15 +8984,15 @@ "dqN" = (/obj/structure/stool/bed/chair,/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dqO" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/wood,/area/research_outpost/hallway) "dqP" = (/turf/simulated/floor/wood,/area/research_outpost/hallway) -"dqQ" = (/obj/machinery/door/window/westleft{dir = 8; name = "Locker room"; opacity = 0; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/turf/simulated/floor,/area/research_outpost/hallway) +"dqQ" = (/obj/machinery/door/window/westleft{dir = 4; name = "laser testing"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) "dqR" = (/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/hallway) "dqS" = (/obj/structure/rack,/obj/item/clothing/suit/bio_suit/anomaly,/obj/item/clothing/head/bio_hood/anomaly,/obj/item/clothing/mask/breath,/obj/machinery/light/small{dir = 4},/obj/item/clothing/glasses/science,/obj/item/clothing/gloves/latex,/obj/machinery/camera{c_tag = "Research Outpost Hallway Starboard"; dir = 8; network = list("RD","SS13")},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dqT" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/machinery/firealarm{dir = 8; pixel_x = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dqU" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whitebluecorner"},/area/research_outpost/hallway) -"dqV" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dqV" = (/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dqW" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/power/emitter{anchored = 1; state = 2},/obj/structure/cable,/turf/simulated/floor/plating{dir = 5; icon_state = "warnplate"; nitrogen = 0.01; oxygen = 0.01; tag = "icon-warnplate (NORTHEAST)"},/area/research_outpost/anomaly) "dqX" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 4; icon_state = "whitered"},/area/research_outpost/anomaly) -"dqY" = (/obj/machinery/door/window/westleft{dir = 1; name = "Spectroscopy"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dqY" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "65"},/turf/simulated/floor,/area/research_outpost/entry) "dqZ" = (/obj/structure/window/reinforced{dir = 1},/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction,/turf/simulated/floor{dir = 8; icon_state = "whitered"},/area/research_outpost/anomaly) "dra" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 4; icon_state = "off"; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/camera{c_tag = "Research Outpost Hallway Engineering"; dir = 4; network = list("RD","SS13")},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "drb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 4; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 4; icon_state = "whiteyellowcorner"},/area/research_outpost/hallway) @@ -9048,16 +9049,16 @@ "dsa" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) "dsb" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) "dsc" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/turf/simulated/floor/plating,/area/research_outpost/entry) -"dsd" = (/obj/machinery/door/airlock/external{name = "Research Outpost Dock Airlock"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dsd" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "0"; req_one_access_txt = "65;5"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dse" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/entry) "dsf" = (/obj/structure/sign/science,/turf/simulated/wall,/area/research_outpost/entry) -"dsg" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "7"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) -"dsh" = (/obj/machinery/door/airlock/glass_research{name = "Outpost Primary Access"; req_access_txt = "7"},/turf/simulated/floor,/area/research_outpost/entry) +"dsg" = (/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/power) +"dsh" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dsi" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/hallway) "dsj" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 8; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dsk" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dsl" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/mob/living/carbon/monkey,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dsm" = (/obj/machinery/door/window/westleft{dir = 4; name = "laser testing"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/anomaly) +"dsm" = (/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso3) "dsn" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 2; on = 1},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dso" = (/obj/machinery/atmospherics/unary/vent_scrubber{on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/machinery/alarm{dir = 1; pixel_y = -25},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dsp" = (/obj/machinery/anomaly/fourier_transform,/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) @@ -9102,7 +9103,7 @@ "dtc" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/anomaly) "dtd" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dte" = (/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) -"dtf" = (/obj/machinery/door/airlock/engineering{name = "Power substation"; req_access_txt = "0"; req_one_access_txt = "47;10;24"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/power) +"dtf" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) "dtg" = (/obj/structure/transit_tube{tag = "icon-D-NE"; icon_state = "D-NE"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dth" = (/obj/structure/transit_tube{tag = "icon-E-NW"; icon_state = "E-NW"},/turf/simulated/floor{icon_state = "delivery"; name = "floor"},/area/research_outpost/hallway) "dti" = (/obj/structure/transit_tube/station,/obj/structure/sign/securearea{desc = "A warning sign which reads 'INTERNALS REQUIRED'."; name = "INTERNALS REQUIRED"; pixel_x = 32; pixel_y = 32},/turf/simulated/floor{icon_state = "bot"; dir = 1},/area/research_outpost/hallway) @@ -9123,17 +9124,17 @@ "dtx" = (/obj/structure/transit_tube{tag = "icon-D-SW"; icon_state = "D-SW"},/turf/simulated/floor{icon_state = "bot"},/area/research_outpost/entry) "dty" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/entry) "dtz" = (/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) -"dtA" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/door/airlock/glass_research{name = "Research Shuttle Dock"; req_access_txt = "47"},/turf/simulated/floor,/area/research_outpost/entry) +"dtA" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maint) "dtB" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/entry) "dtC" = (/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/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) "dtD" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/entry) -"dtE" = (/obj/machinery/door/airlock/glass_medical{id_tag = ""; name = "Medbay"; req_access_txt = "7"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) +"dtE" = (/obj/machinery/door/airlock/research{name = "Isolation room one"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso1) "dtF" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_CO2 = 0; scrub_N2O = 0; scrub_Toxins = 0},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dtG" = (/obj/machinery/firealarm{dir = 4; pixel_x = 24},/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/med) "dtH" = (/obj/machinery/light/small{dir = 8},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 6; icon_state = "intact-b-f"; initialize_directions = 6; level = 1; name = "pipe"},/obj/machinery/conveyor_switch{id = "anotempload"; name = "conveyor switch"; pixel_x = 0; pixel_y = 0},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dtI" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) "dtJ" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) -"dtK" = (/obj/machinery/door/airlock/research{name = "Temporary Storage"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dtK" = (/obj/machinery/door/airlock/research{name = "Isolation room two"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso2) "dtL" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 5; icon_state = "whitehall"},/area/research_outpost/hallway) "dtM" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dtN" = (/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) @@ -9203,10 +9204,10 @@ "duZ" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/machinery/firealarm{pixel_y = -24},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/hallway) "dva" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/sign/biohazard{pixel_y = -32},/turf/simulated/floor{dir = 2; icon_state = "whitepurplecorner"},/area/research_outpost/hallway) "dvb" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/obj/structure/disposalpipe/segment{dir = 2; icon_state = "pipe-c"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 6; icon_state = "whitepurple"},/area/research_outpost/hallway) -"dvc" = (/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) +"dvc" = (/obj/machinery/door/airlock/research{name = "Exotic Particles Collection"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dvd" = (/obj/machinery/atmospherics/pipe/manifold{color = "red"; dir = 1; icon_state = "manifold-r-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/turf/simulated/floor{dir = 8; icon_state = "warning"},/area/research_outpost/harvesting) "dve" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) -"dvf" = (/obj/machinery/door/airlock/external{name = "Primary Access"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) +"dvf" = (/obj/machinery/door/airlock/external{name = "Primary Access"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dvg" = (/obj/machinery/atmospherics/unary/vent_scrubber{dir = 8; on = 1; scrub_Toxins = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) "dvh" = (/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) "dvi" = (/obj/structure/table,/obj/item/weapon/anodevice{pixel_x = 3; pixel_y = 3},/obj/item/weapon/anodevice,/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/harvesting) @@ -9234,20 +9235,20 @@ "dvE" = (/obj/machinery/conveyor{dir = 9; id = "anotempload"},/turf/simulated/floor/plating{tag = "icon-warnplate (WEST)"; icon_state = "warnplate"; dir = 8},/area/research_outpost/tempstorage) "dvF" = (/turf/simulated/wall/r_wall,/area/research_outpost/maint) "dvG" = (/obj/structure/disposalpipe/segment,/turf/simulated/wall/r_wall,/area/research_outpost/maint) -"dvH" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maint) +"dvH" = (/obj/machinery/door/window/westleft{dir = 1; name = "Sample Preparation Loading"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{dir = 1; icon_state = "whiteblue"},/area/research_outpost/sample) "dvI" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso1) "dvJ" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) -"dvK" = (/obj/machinery/door/airlock/research{name = "Isolation room one"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso1) +"dvK" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dvL" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso2) "dvM" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/iso2) -"dvN" = (/obj/machinery/door/airlock/research{name = "Isolation room two"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso2) +"dvN" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "65"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) "dvO" = (/turf/simulated/wall/r_wall,/area/research_outpost/iso3) "dvP" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/iso3) -"dvQ" = (/obj/machinery/door/airlock/research{name = "Isolation Room Three"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.6; name = "Firelock North"},/obj/machinery/door/firedoor/border_only{layer = 2.6; name = "\improper Firelock South"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/iso3) -"dvR" = (/obj/machinery/door/airlock/maintenance{name = "Maintenance Storage"; req_access_txt = "0"; req_one_access_txt = "11;47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) +"dvQ" = (/obj/machinery/door/window/westleft{dir = 4; name = "Spectrometry Lab"; req_access_txt = "65"},/obj/machinery/door/window/westleft{dir = 8; name = "Spectrometry Lab"; opacity = 0; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "red"; dir = 4; icon_state = "intact-r-f"; level = 1},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/spectro) +"dvR" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Loading"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/anomaly) "dvS" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/maintstore2) "dvT" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) -"dvU" = (/obj/structure/disposalpipe/segment,/obj/machinery/door/airlock/research{name = "Long Term Storage"; req_access_txt = "47"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/longtermstorage) +"dvU" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/sample) "dvV" = (/obj/machinery/alarm{dir = 1; pixel_y = -25},/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/turf/simulated/floor,/area/research_outpost/harvesting) "dvW" = (/obj/machinery/firealarm{dir = 1; pixel_x = 0; pixel_y = -24},/obj/machinery/atmospherics/unary/vent_pump{dir = 1; on = 1},/turf/simulated/floor,/area/research_outpost/harvesting) "dvX" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'RADIOACTIVE AREA'"; icon_state = "radiation"; name = "RADIOACTIVE AREA"; pixel_x = -32; pixel_y = 0},/turf/simulated/floor{dir = 4; icon_state = "warning"},/area/research_outpost/harvesting) @@ -9262,9 +9263,9 @@ "dwg" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/transit_tube{tag = "icon-N-SW"; icon_state = "N-SW"},/turf/simulated/floor/plating,/area/research_outpost/entry) "dwh" = (/turf/simulated/wall,/area/research_outpost/entry) "dwi" = (/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/entry) -"dwj" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/door/airlock/glass_mining{name = "Expedition Prep"; req_access_txt = "47"},/turf/simulated/floor/plating,/area/research_outpost/entry) +"dwj" = (/obj/machinery/door/airlock/atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/atmos) "dwk" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/wall,/area/research_outpost/entry) -"dwl" = (/obj/machinery/door/airlock/research{name = "Temporary Storage Loading"; req_access_txt = "47"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{tag = "icon-vault (NORTHEAST)"; icon_state = "vault"; dir = 5},/area/research_outpost/tempstorage) +"dwl" = (/obj/machinery/door/airlock/research{name = "Spectrometry Lab"; req_access_txt = "65"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/machinery/atmospherics/pipe/simple{color = "blue"; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/spectro) "dwm" = (/obj/structure/plasticflaps/mining,/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating,/area/research_outpost/maint) "dwn" = (/obj/machinery/conveyor{dir = 5; id = "anosample"},/obj/machinery/light/small{dir = 1},/turf/simulated/floor/plating,/area/research_outpost/maint) "dwo" = (/obj/machinery/conveyor{dir = 4; id = "anosample"},/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating,/area/research_outpost/maint) @@ -9306,11 +9307,11 @@ "dwY" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/obj/structure/cable{d1 = 1; d2 = 4; icon_state = "1-4"; tag = ""},/turf/simulated/floor,/area/research_outpost/gearstore) "dwZ" = (/obj/machinery/alarm{pixel_y = 24},/obj/machinery/light{dir = 1},/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 8; icon_state = "manifold-b-f"; initialize_directions = 11; level = 1; name = "pipe manifold"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/gearstore) "dxa" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/gearstore) -"dxb" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Loading area"; req_access_txt = "47"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/tempstorage) +"dxb" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials Sample Preparation"; req_access_txt = "65"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dxc" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_y = 0; tag = ""},/turf/simulated/floor,/area/research_outpost/tempstorage) "dxd" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/power/apc{dir = 1; name = "Temporary Storage APC"; pixel_x = 0; pixel_y = 24},/obj/structure/cable{d2 = 8; icon_state = "0-8"},/turf/simulated/floor,/area/research_outpost/tempstorage) "dxe" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 9; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{dir = 1; icon_state = "warning"},/area/research_outpost/tempstorage) -"dxf" = (/obj/machinery/door/airlock/maintenance{req_access_txt = "0"; req_one_access_txt = "12;47"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) +"dxf" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; tag = ""},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) "dxg" = (/obj/machinery/conveyor{dir = 2; id = "anotempload"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dxh" = (/obj/structure/sign/securearea{desc = "A warning sign which reads 'MOVING PARTS'."; name = "\improper MOVING PARTS"; pixel_y = 32},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) "dxi" = (/obj/machinery/conveyor{dir = 1; id = "anosample"},/turf/simulated/floor/plating{tag = "icon-warnplate (EAST)"; icon_state = "warnplate"; dir = 4},/area/research_outpost/maint) @@ -9354,9 +9355,9 @@ "dxU" = (/obj/machinery/power/apc{dir = 8; name = "Maintenance APC"; pixel_x = -24; pixel_y = 0},/obj/structure/cable{icon_state = "0-4"; d2 = 4},/turf/simulated/floor/plating,/area/research_outpost/maint) "dxV" = (/obj/machinery/atmospherics/valve,/obj/machinery/computer/security/telescreen{desc = "Used for watching the isolation room cameras."; layer = 4; name = "Isolation Room Telescreen"; network = list("isolation"); pixel_x = 32; pixel_y = 0},/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maint) "dxW" = (/obj/machinery/atmospherics/pipe/simple{color = "cyan"; dir = 1; icon_state = "intact-c-f"; level = 1},/turf/simulated/wall/r_wall,/area/research_outpost/iso1) -"dxX" = (/obj/machinery/door/airlock/external{id_tag = "riso1"; name = "Access Airlock"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso1) -"dxY" = (/obj/machinery/door/airlock/external{id_tag = "riso2"; name = "Access Airlock"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso2) -"dxZ" = (/obj/machinery/door/airlock/external{id_tag = "riso3"; name = "Access Airlock"; req_access_txt = "47"},/obj/machinery/door/firedoor/border_only{layer = 2.8; name = "\improper Firelock South"},/obj/machinery/door/firedoor/border_only{dir = 1; layer = 2.8; name = "Firelock North"},/obj/machinery/atmospherics/pipe/simple{color = "red"; icon_state = "intact-r-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/iso3) +"dxX" = (/obj/machinery/door/airlock/research{name = "Anomalous Materials"; req_access_txt = "65"},/obj/machinery/door/firedoor/border_only{dir = 8; layer = 2.6; name = "Firelock West"},/obj/machinery/door/firedoor/border_only{dir = 4; layer = 2.6; name = "Firelock East"},/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/anomaly) +"dxY" = (/obj/machinery/door/airlock/glass_atmos{name = "Outpost Atmospherics"; req_access_txt = "0"; req_one_access_txt = "65;10;24"},/turf/simulated/floor,/area/research_outpost/power) +"dxZ" = (/obj/machinery/door/airlock/maintenance{name = "Auxiliary Storage"; req_access_txt = "0"; req_one_access_txt = "65;12"},/turf/simulated/floor{icon_state = "white"},/area/research_outpost/maintstore1) "dya" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/obj/machinery/light{icon_state = "tube1"; dir = 8},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0; tag = ""},/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dyb" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/space_heater,/turf/simulated/floor/plating,/area/research_outpost/maintstore2) "dyc" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/wall/r_wall,/area/research_outpost/longtermstorage) @@ -9376,7 +9377,6 @@ "dyq" = (/obj/structure/transit_tube{tag = "icon-D-NW"; icon_state = "D-NW"},/turf/simulated/mineral,/area/mine/explored) "dyr" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 4; layer = 2.4; on = 1},/turf/simulated/floor,/area/research_outpost/gearstore) "dys" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/turf/simulated/floor,/area/research_outpost/gearstore) -"dyt" = (/obj/machinery/atmospherics/pipe/simple{color = "blue"; dir = 4; icon_state = "intact-b-f"; level = 1; name = "pipe"},/obj/machinery/door/airlock/glass_mining{name = "Equipment storage"; req_access_txt = "47"},/turf/simulated/floor,/area/research_outpost/gearstore) "dyu" = (/obj/machinery/atmospherics/pipe/manifold{color = "blue"; dir = 4; icon_state = "manifold-b-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor,/area/research_outpost/gearstore) "dyv" = (/turf/simulated/floor,/area/research_outpost/gearstore) "dyw" = (/obj/machinery/recharge_station,/turf/simulated/floor,/area/research_outpost/gearstore) @@ -10607,8 +10607,8 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbqMbqNbqObqPbkHbkHbkHbqQbqQbqQbqQbnTbkHbkHbkHbmubqRbcqbqSbqTbqUbqVbqWbeAbcqbqXbqYbeCbpFbqZbrabrbbrcbrdbrebrfbrgbrhbofabHbribrjbmSbpQbrkbpQbmSbrlbrmbmXbrnbrobrpbrqbagbrrbmYbrsbqabovaIJaIJbgsbUDbUJbUWbUYbVabVbbVcbVdbVebVfbVgbVSbVfbVebVWbVVbVYbVXbWlbWibWQbWPbWTbWSbWVbWUbgzbgzbXjbXlbjPbXibjSbrTbrUbrVbrWbrXbjYbrYbqwbqwbqwbrZbjZbsabgJbsbbsbbscbgObsdbsebsfbsgbkmbshbgObiEbsibgQaabaaaaaaaaaaaaaabbsjbskbqIbqJbqIbslbpiaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbsmbsnbsmbsobspbkHbkHbkHbkHbkHbkHbnTbkHbsqaZOaZObsrbcqbcqbssbstbsubsvbeAbcqbcqbswaIJbpFbsxbsybszbsAbsBbsCbsDbsEbsFbofabHbrmbrmbsGbsHbsIbmSbsJbsKbsLbsMbsNbsObsObsObsObsObsObsPbsQbsRaGWaGWbgsbSTbjwbjwbSSbTFbhXbSUbSXbRRbTUbTJbTTbRSbRRbRQbRPbSwbStbRXbRWbSMbSLbSGbDwbSQbSPbSObSNbTWbTXbTWbTYbUabtqbtqbtrbtsbttbjYbtubjZbjZbtvbtwbjZbtxbjYbtybtzbtAbtBbtCbtDbtEbtFbtGbgObgObtHbgQbgQbtIbtJbtJbtJbtKbkfbqGbqJbqIbqJbqJbqKbqGaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaagaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbtNbkHbkHbkHbqQbqQbqQbqQbnTbkHbtObtPaZObtQbcqbcqbssbtRbtSbsvbtTbtUbpxbtVbtWbtXbovaRrbszbtYbtZbuabubbucbudbuebufbugbuhbuibujbrkbujbsKbukbulbulbsNbumbunbuobupbuqburbusbutdKMaIJaIJbPKbPGbPHbPIbPJbQjbhXbnobQqbPLbPMbPNbPAbQMbPLbAXbRebQHbQGbQIbgtbgtbRLbRObRMbRqbgxbRrbxCblJblKblLbPFbisbuQbuRbuSbuTbuTbjYbuUbuVbuWbjYbuXbjZbuYbuZbvabvbbvcbvdbvebvfbvgbvhbvibsbbkgbvjbvkbvlbvmbvnbvnbvnbvnbvobvpbphbpibvqbpibphbvraabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbvsbqNbvtbvubkHbkHbkHbkHbkHbkHbkHbnTbkHbtObvvaZObvwbdFbcqbvxbpxbvybpxbvzbcqbqXbpEbeCaIJbovaRrbszbofbvAbvBbvCbvDbvEbogbvFbvGbvHbvIbsLbvJbvKbvLbvMbvNbvObsNbvPbvQbvRbvSbvTbvTbvUbvVbvWaIJbPybxLbxFbPxbPtbPwbPDbPEbnobPCbPibPBbPzbPAbPlbPibPhbBUbOBbFYbFYbFYbFYbFYbFYbGgbPsbGgbGgbwmbwmbwmbwmbwmbqrbisbwtbwubwtbwtbjYbjYbjYbjYbjYbwvbwwbwxbwybwzbwAbwBbwCbwCbwDbwEbnCbwFbwGbwHbvjbnCbvlbwIbnCbwJbnCbwKbkfbtIbtJbtKbVybkfaaaaaaaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbwMbwNbkHbkHbwObwPbwQbwPbwRbwPbwSbwTbfPbwUbwVbkQbwWbkQbwXbkRbwVbwYbwZbqYbeCaIJbxabxbbxcbofbxdbxebxfbxgbxhbogbxibxjbxkbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxvbxvbxwbxxbxybxzbsQbxAaIJaIJceacebceAbgxbOwcdUcdVbnobQqcdWcdXcdYcdZcfxcdWbAXbBUcfWcfycgdceMceMceLbFYceNcfpceObGgcfwcgicgjcggcghcgkcgnbxWbxXbwCbwCbxYbxZbwCbyabybbycbydbyebwCbyfbygbyhbyibyjbykbylbylbylbylbylbtHbymbgQbtIbtKbkfbnCbvnbynbyobwLbypbyqbyraaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbvsbqNbvtbvubkHbkHbkHbkHbkHbkHbkHbnTbkHbtObvvaZObvwbdFbcqbvxbpxbvybpxbvzbcqbqXbpEbeCaIJbovaRrbszbofbvAbvBbvCbvDbvEbogbvFbvGbvHbvIbsLbvJbvKbvLbvMbvNbvObsNbvPbvQbvRbvSbvTbvTbvUbvVbvWaIJbPybxLbxFbPxbPtbPwbPDbPEbnobPCbPibPBbPzbPAbPlbPibPhbBUbOBbFYbFYbFYbFYbFYbFYbGgbPsbGgbGgbwmbwmbwmbwmbwmbqrbisbwtbwubwtbwtbjYbjYbjYbjYbjYbwvbwwbwxbwybwzbwAbwBbwCbwCbwDbwEbnCbwFbwGbwHbvjbnCbvlbwIbnCbwJbnCbwKbkfbtIbtJbtKbwLbkfaaaaaaaabaaaaaaaaaaaaaaaaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbtLbtMbtLbwMbwNbkHbkHbwObwPbwQbwPbwRbwPbwSbwTbfPbwUbwVbkQbwWbkQbwXbkRbwVbwYbwZbqYbeCaIJbxabxbbxcbofbxdbxebxfbxgbxhbogbxibxjbxkbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxvbxvbxwbxxbxybxzbsQbxAaIJaIJceacebceAbgxbOwcdUcdVbnobQqcdWcdXcdYcdZcfxcdWbAXbBUcfWcfycgdceMceMceLbFYceNcfpceObGgcfwcgicgjcggcghcgkcgnbxWbxXbwCbwCbxYbxZbwCbyabybbycbydbyebwCbyfbygbyhbyibyjbykbylbylbylbylbylbtHbymbgQbtIbtKbkfbnCbvnbynbyobVybypbyqbyraaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbysbytbysbyubyvbywbywbywbywbywbyxbyybkHbtObyzaZObyAbyBbyCbyDbyEbnXbyFbyGbyHaZUaZUbyIaIJbyJbyKbszbofbyLbyMbyNbvBbyObogbyPbyQbyRbySbyTbyUbyVbyWbyXbyYbyZbsNbzabzbbzcbzdbxxbxybxzbsQccRccWccPccQccZcdaccXccYccaccccbYcbZbPibPiccdccObPibPibAXcbScbXcbWcbVcbUcbmcblbFYcbkcbRcbPcbGcbncdbcdccddcdecdHcdTbzFbzGbvebvebzHbvebzIbvebvfbvebvebvebvebzJbzKbzLbzMbzNbzObzPbzQbzRbzSbylbiEbzTbmiaabaabbkfbzUbvnbyobyobvobzVbzWbzXaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPbzYbzZbAaaZOaZObAbbqNbqNbqNbAcaZOaZObAdbAebAfaZObAgbAgbAgbAhbAgbAibAjbAkbAlbAmbAibeCaIJbAnbAoaTVbofbuebApbAqbAqbArbAsbAtbAtbAubAtbAvbAwbAxbAybAzbAzbAzbAAbsObsObsObsObsObsObsObsQdKTaXudKUbxFbxFbZzbHebxFbZvbgxbfdbZxbZjbZlbZmbZucbecaVcbgcbfcascarcaucatcancamcaqcapbZUbZAcabcaabZibuNbuNbZgbqrbAZbAZbAZbAZbAZbBabAZbAZbBbbBcbBdbBebBebBfbBgbvjbBhbzMbBibBjbBkbBlbBmbBnbylbiEbzTbpfaaaaaabkfbBobBpbkfbvobkfbkfbvobkfaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLbqLaaaaagaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabnPbnPbnPbnPbnPbnPbnPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabBqaabaaaaaaaaaaaabAgbBrbBsbBtbBubAibBvbBwbBxbBybAibeCaIJbBzbBAbBBbBAbBCbBDbBEbBFbBGbBHaXubBIaXubBJbBKbBLbBMbBNbBOaIJaMcbBPaMdbcSbBEbBQbBRaIJbBSbBTbzeaIJdKRbYQbIPbKzbAIbYPbYObgxbfdbYCbYBbYzbYzbYAbYybYxbYwbYubYmbFYbYlbYjbXTbXSbXQbXPbXNbXobGgbXnbuNbuNbuNbXmbqrbAZbCtbCubCvbCwbCxbCybCzbBbbCAbCBbCCbBebBebCDbvjbBhbCEbCFbCGbCHbCIbCJbCKbylbiEbzTbgQbgQbgQbgQbgQbkfbkfaaaaaaaabaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabaabaabaaaaaaaaaaaaaabaabaabaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaGmaaaaaaaaaaaaaaaaaaaaaaaa @@ -11547,27 +11547,27 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadktdkEdkFdkrdkrdkrdkrdkrdkrdkGdkGdkGdkHdkIdkAdkrdkrdkrdkJdkKdkLdkLdkLdkMdkNdkOdkPdkPdkvdkQdkRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkSdkFdkrdkrdkrdkrdkrdkrdkrdkGdkTdkUdkVdkHdkIdkWdkGdkXdkYdkZdladladladlbdlcdladladladladlddledkRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdlgdlgdlgdlgdlgdlgdlgdlgdlhdlidljdlkdlldlmdlndlodlpdlqdlrdlsdlqdltdlbdlqdludlrdlaaabdlvdlwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdlydlzdlAdlBdlCdlDdlEdlgdlFdlGdlidlHdlIdlIdlIdlJdlKdlqdlLdlMdlNdlbdlbdlOdlMdlLdlaaabaabdlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlQdlAdlRdlSdlTdlUdlVdlWdlgdlXdlXdlXdlXdlYdlIdlZdmadmbdlqdlqdlqdlqdmcdmddmedmedmedmedmedmfdmgdmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmidmjdmiaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdlxdlxdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdlxaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdmkdmldmldmmdmndmodmpdmqdmrdmsdmtdmudmvdmwdmxdmydmzdlqdmAdmBdlqdmCdmDdmEdmFdmGdmHdmIdmJdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdlydlzdlAdlBdlCdlDdlEdlgdlFdlGdlidxZdlIdlIdlIdlJdlKdlqdlLdlMdlNdlbdlbdlOdlMdlLdlaaabaabdlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdkrdkrdkrdlxdlxdkrdkrdkrdkrdlxdlxdlxdlxdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkraaaaaaaaaaaaaaaaaaaaaaaaaaadlfdlQdlAdlRdlSdlTdvNdlVdlWdlgdlXdlXdlXdlXdlYdlIdlZdmadmbdlqdlqdlqdlqdmcdmddmedmedmedmedmedmfdmgdmhaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmidmjdmiaaaaaaaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdkrdlxdlxdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdlxaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdmkdmldmldmmdmndmodmpdvKdmrdmsdmtdmudvHdmwdmxdmydmzdlqdmAdmBdlqdmCdmDdmEdmFdmGdmHdmIdmJdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadmMdmNdmMaabaaaaaaaaadkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdlxdlxdlxdlxdlxdkrdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaadlfdlgdmkdmOdmOdmmdmndmPdmQdlgdmRdmrdmSdmTdmUdmVdmWdmXdmYdmZdnadnbdncdnddnedmednfdngdnhdnidnjdnkdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldnmdnndnoaabaaaaaadkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaadktdnpdlQdnqdlRdnrdnsdntdnudnvdlgdnwdmSdnxdnydnzdnAdnAdnAdnBdnAdnAdnAdnAdnCdnDdmednEdngdnFdnGdnHdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnIdnJdnJdnKdnLdnMdmMaabaaaaaadkrdkrdkrdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaabdnNdnOdkPdkPdkPdnPdnQdlgdnRdnSdnTdlBdnUdnVdnWdlgdnXdnYdnZdoadobdocdoddoedofdogdohdoidnAdojdokdmedoldomdondnGdmedoodopaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoqdordosdotdoudovdowaabaabdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaabdoydnQaabaabaabaabaabdlgdlgdlgdlgdlgdlgdozdoAdlgdlXdlXdoBdoCdoDdnAdoEdoFdofdoGdoHdoIdnAdoJdoKdoLdoMdoNdoOdoPdmedoQdoRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdnJdnJdoTdoUdnMdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdlqdoXdlbdoYdoZdpadpbdpcdpddpedpfdpgdphdnAdpidpjdpkdpldpmdpndpodppdpqdprdprdprdpsdptdpudpvdpwdpwdpxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdpydpzdpAdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdpBdpCdpDdpEdpFdpGdpHdpIdpJdpKdpLdpMdpNdpOdpPdpQdpRdpSdpSdpSdpTdpUdpVdprdpWdpXdpYdpZdprdqadoRdoRdoRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqbdqcdqddqedoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqfdqgdqhdqidqjdqkdqldqmdqndqodladqpdqqdnAdqrdqsdqtdqudqvdqwdnAdqxdqydqzdqAdqAdqBdqCdqDdqEdqFdqGdqGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqHdqIdqJdoVdqKdqLdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqMdqgdlbdqidqNdqOdqPdqQdqRdqSdladqTdqUdnAdqVdnAdqWdqXdqYdqZdnAdradrbdprdrcdrddredrfdrgdrhdridrjdrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnldnmdnndnoaabaaaaaadkrdkrdkrdkrdkrdkrdkrdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaaaaadktdnpdlQdnqdlRdnrdnsdvQdnudnvdlgdnwdmSdnxdnydnzdnAdnAdnAdvRdnAdnAdnAdnAdnCdnDdmednEdngdnFdnGdnHdmKdmLaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadnIdnJdnJdnKdnLdnMdmMaabaaaaaadkrdkrdkrdkrdlxdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaabdnNdnOdkPdkPdkPdnPdnQdlgdnRdnSdnTdlBdnUdnVdnWdlgdnXdnYdnZdoadobdxbdoddoedofdogdohdoidnAdojdokdmedoldomdondnGdmedoodopaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoqdordosdotdoudovdowaabaabdlxdlxdkrdkrdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaabdoydnQaabaabaabaabaabdlgdlgdlgdlgdlgdlgdwldoAdlgdlXdlXdoBdvUdoDdnAdoEdoFdofdoGdoHdoIdnAdoJdoKdwjdoMdoNdoOdoPdmedoQdoRaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadoSdnJdnJdoTdoUdnMdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxdoxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdlqdoXdlbdoYdoZdpadpbdpcdpddpedpfdpgdphdnAdpidpjdpkdpldpmdpndpodppdpqdprdprdprdxYdptdpudpvdpwdpwdpxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaadksdksdksdksdksaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdpydpzdpAdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoxaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdpBdpCdpDdpEdpFdpGdpHdpIdpJdpKdpLdpMdpNdxfdpPdpQdpRdpSdpSdpSdxXdpUdpVdprdpWdpXdpYdpZdprdqadoRdoRdoRaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaadksdksdksdksdksaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqbdqcdqddqedoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqfdqgdqhdqidqjdqkdqldqmdpTdqodladqpdqqdnAdqrdqsdqtdqudpOdqwdnAdqxdqydpsdqAdqAdqBdqCdqDdqEdqFdqGdqGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdqHdqIdqJdoVdqKdqLdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdqMdqgdlbdqidqNdqOdqPdoLdqRdqSdladqTdqUdnAdoCdnAdqWdqXdozdqZdnAdradrbdprdrcdrddredrfdrgdrhdridrjdrjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrkdrldrmdrndrodrpdmidovdrqdoVdrrdrsdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadlfdoWdoWdoWdoWdoWdoWdoWdlqdqgdlbdrtdrudrvdrwdrxdrydrzdladrAdrBdrCdrDdnAdrEdrFdrGdrHdnAdrIdrJdrKdrLdrMdrNdrOdrPdrhdqGdqGdqGaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrQdrRdrldrSdrTdrUdrVdrWdrqdrXdrsdrYdrrdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadrZdsadsbdscdsddsadsbdsedsfdsgdshdlqdsidlqdladladladladladsjdskdsldrDdnAdsmdsndsodspdnAdsqdsrdssdstdsudsvdswdsxdsydszdladsAdnOdkPdkPdkPdkPdkPdkPdkQdsBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsCdrQdsDdrQdrmdrmdqKdsEdrTdoVdqedsFdoVdrsdsGdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadsHdsIdsJdsJdsKdsLdsLdsMdsNdsOdsLdsPdsQdsRdsSdsTdsUdsVdsWdsXdsYdsZdtadnAdnAdtbdtcdnAdnAdtddtedprdprdtfdprdprdprdtgdthdtidtjdtkdtldtldtmdtldtldtldtndlwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdtodtpdrmdtqdtrdrmdpAdtsdrUdttdtudtvdoVdoVdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaadtwdtxdsJdsJdtydsJdtzdtAdtBdtCdtDdtEdtFdtGdsSdtHdtIdtJdtKdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdtXdtYdtZduadtXdubdtXdtUducdudduedufdugduhduidujdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdrQdrRdrldrSdrTdrUdrVdrWdrqdrXdrsdrYdrrdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadrZdsadsbdscdqzdsadsbdsedsfdqndqvdlqdsidlqdladladladladladsjdskdsldrDdnAdqQdsndsodspdnAdsqdsrdssdstdsudsvdswdsxdsydszdladsAdnOdkPdkPdkPdkPdkPdkPdkQdsBaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadsCdrQdsDdrQdrmdrmdqKdsEdrTdoVdqedsFdoVdrsdsGdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxaaaaaaaaaaaaaaaaaadsHdsIdsJdsJdsKdsLdsLdsMdsNdsOdsLdsPdsQdsRdsSdsTdsUdsVdsWdsXdsYdsZdtadnAdnAdtbdtcdnAdnAdtddtedprdprdsgdprdprdprdtgdthdtidtjdtkdtldtldtmdtldtldtldtndlwaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabdtodtpdrmdtqdtrdrmdpAdtsdrUdttdtudtvdoVdoVdoVdoVdoVdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaadtwdtxdsJdsJdtydsJdtzdqYdtBdtCdtDdsddtFdtGdsSdtHdtIdtJdqVdtLdtMdtNdtOdtPdtQdtRdtSdtTdtUdtVdtWdtXdtYdtZduadtXdubdtXdtUducdudduedufdugduhduidujdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabduldumdundrmdtrduodrSdupdrTduqdoVdurdusdoVdutdrqduuduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaaaaaduwduxdsJdsJduydsJduzduAduBduCduDduEduFduGdsSduHduIduJduKduLduMduNduOduPduQduRduSduTduUduRduSduVduWduRduVduXduYduZdvadvbdvcdvddvedvfdvgdvhdvhdvidtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdlxdlxdoVdrpdvjdvkdvldundvmdvndrUdvodmidovdvpdoVdutdqedrqduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdvqdvqdvqdvqdvqdvqdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaadvrdvsdsJdvtdvudvvdvwdvxdvydvzdvAdvBdvCdvDdsSduHdsTdvEdvFdvFdvFdvGdvHdvIdvJdvKdvIdvLdvMdvNdvLdvOdvPdvQdvOdvOdvRdvSdvTdvUdtldvVdvWdtldvXdvhdvhdvYdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdoVdoVdoVdoVdoVdrodrTdvZdvjdrTdtsdwadvodvodrWdrqdurdoVdutdpAdwbduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdvqdwcdwcdwcdwcdvqdvqdvqdkrdkrdkrdkrdwddweaaaaaaaaadwfdwgdsbdscdwhdwhdwhdwhdwidwjdwkdlqdlqdlqdsSdwldvFdwmdvFdwndwodwpdwqdvIdwrdwsdwtdvLdwudwvdwwdvOdwxdwydwzdvOdwAdwBdvTdwCdwDdtldtldtldwEdwFdwGdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdwHdovdrUdwIdoVdwJdwKdwLdoVdttdoVdwMdwNdwOdoVdovdwPdmNdwQdpAdqddmNdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdkrdkrdwRdwSdkPdkPdkPdkPdnPdnQaabaabdwTdwUdwVdwWdwXdwYdwZdxadxbdxcdxddxedxfdxgdxhdxidxjdxkdxldxmdxndxodxpdvLdxqdxrdxsdvOdxtdxudxvdvOdxwdxxdxydxzdxAdxBdxCdtldtldtldtldtldxDdnpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdoVdwHdpAdovdrSdttdwPdvjdxEdvjdxFdovdovdxGdrqdovdpAdpAdoVdmNdxHdpAdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdxIdxJdxKdkraaaaaaaaaaaaaaaaaaaabdwTdwUdxLdxMdxNdxOdxPdxQdxRdxRdxSdsSdvFdwmdvFdxTdvFdxUdxVdxWdvIdxXdvIdvLdvLdxYdvLdvOdvOdxZdvOdvOdyadybdycdyddyedyedyfdwDdygdkudkPdkPdyhdyiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdoVdwHdyjdpAdpAdttdpAdwbdqKdpAdykdxFdwbdvpdyldpAdymdqedoVdvjdmNdwPdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdyndwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdyodvqdypdyqdvqdvqaaaaaaaaaaaaaaaaaaaabdwTdwUdyrdysdytdysdyudyvdywdxRdyxdsSdyydyzdyAdyBdvFdyCdyDdyEdyFdyGdyHdyIdyJdyKdyLdyMdyNdyOdyPdvOdyQdyRdwDdySdyTdySdyTdwDdyUdyVdlxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaabaabdlxdlxdoVdrpdvjdvkdvldundvmdvndrUdvodmidovdvpdoVdutdqedrqduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdkrdvqdvqdvqdvqdvqdvqdkrdkrdkrdkrdkrdkrdkraaaaaaaaaaaadvrdvsdsJdvtdvudvvdvwdvxdvydvzdvAdvBdvCdvDdsSduHdsTdvEdvFdvFdvFdvGdtAdvIdvJdtEdvIdvLdvMdtKdvLdvOdvPdsmdvOdvOdshdvSdvTdtfdtldvVdvWdtldvXdvhdvhdvYdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdoVdoVdoVdoVdoVdrodrTdvZdvjdrTdtsdwadvodvodrWdrqdurdoVdutdpAdwbduvdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdvqdwcdwcdwcdwcdvqdvqdvqdkrdkrdkrdkrdwddweaaaaaaaaadwfdwgdsbdscdwhdwhdwhdwhdwidmvdwkdlqdlqdlqdsSdntdvFdwmdvFdwndwodwpdwqdvIdwrdwsdwtdvLdwudwvdwwdvOdwxdwydwzdvOdwAdwBdvTdwCdwDdtldtldtldwEdwFdwGdukdtldlPaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabdoVdwHdovdrUdwIdoVdwJdwKdwLdoVdttdoVdwMdwNdwOdoVdovdwPdmNdwQdpAdqddmNdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdkrdkrdwRdwSdkPdkPdkPdkPdnPdnQaabaabdwTdwUdwVdwWdwXdwYdwZdxadnBdxcdxddxedocdxgdxhdxidxjdxkdxldxmdxndxodxpdvLdxqdxrdxsdvOdxtdxudxvdvOdxwdxxdxydxzdxAdxBdxCdtldtldtldtldtldxDdnpaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdoVdwHdpAdovdrSdttdwPdvjdxEdvjdxFdovdovdxGdrqdovdpAdpAdoVdmNdxHdpAdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdvqdvqdxIdxJdxKdkraaaaaaaaaaaaaaaaaaaabdwTdwUdxLdxMdxNdxOdxPdxQdxRdxRdxSdsSdvFdwmdvFdxTdvFdxUdxVdxWdvIdlUdvIdvLdvLdlHdvLdvOdvOcAHdvOdvOdyadybdycdyddyedyedyfdwDdygdkudkPdkPdyhdyiaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdoVdwHdyjdpAdpAdttdpAdwbdqKdpAdykdxFdwbdvpdyldpAdymdqedoVdvjdmNdwPdovdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdyndwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdyodvqdypdyqdvqdvqaaaaaaaaaaaaaaaaaaaabdwTdwUdyrdysdmqdysdyudyvdywdxRdyxdsSdyydyzdyAdyBdvFdyCdyDdyEdyFdyGdyHdyIdyJdyKdyLdyMdyNdyOdyPdvOdyQdyRdwDdySdyTdySdyTdwDdyUdyVdlxaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdoVdwHdyWdrSdrodoVdyXdoVdyYdyZdoVdrUdoVdyYdyZdoVdrTdwPdoVdxGdzadmNdurdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdzbdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdzcdyndzddyndvqaaaaaaaaaaaaaaaaaaaaaaabdwTdyvdyvdyvdzedzfdzgdyvdzhdxRdzidsSdzjdzjdzjdzjdvFdzkdzldvIdzmdzndzodvLdzpdzqdzrdvOdzsdztdzudvOdzvdzwdzxdwDdwDdwDdwDdzydzzdkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdlxdlxdlxdoVdoVdoVdoVdoVdoVdyXdoVdzAdrqdrUdurdqedrTdvmdrTdtvdrSdoVdyYdzBdzCdzDdoVdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdyodwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdzEdzFdzGaaaaaaaaaaaaaaaaaaaaaaabaabdwTdzHdzIdzIdzJdzKdyvdzLdzMdxRdzNdsSdwcdwcdwcdwcdvFdzOdzPdvIdzQdzRdzSdvLdzTdzUdzVdvOdzWdzXdzYdvOdzZdAadzxdkrdlxdkrdAbdAcdAddkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaadlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdoVdyXdoVdrqdurdAedtsdnMdrSdrqdoVdrTdqedoVdAfdAgdAgdAhdoVdAidlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdlxdkrdvqdvqdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdwcdAjdAkdAlaaaaaaaaaaaaaaaaaaaabaabaabdwTdwTdAmdAndwTdAodApdAqdApdwTdArdwcdwcdwcdwcdwcdvFdvFdvFdvIdvIdvIdvIdvLdvLdvLdvLdvOdvOdvOdvOdvOdzxdzxdAsdAtdkLdkLdAudyVdkrdkrdlxdlxdlxaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa From 7df34d817f8327a99a6e2efbc88ce32b5a1a7a67 Mon Sep 17 00:00:00 2001 From: Kilakk Date: Thu, 13 Jun 2013 00:09:20 -0400 Subject: [PATCH 03/34] Updating the changelog --- html/changelog.html | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 4a8171a759..8c1b4d60a8 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,6 +57,18 @@ Stuff which is in development and not yet visible to players or just code relate (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit though. Thanks. --> +
+

13.06.2013

+

Kilakk updated:

+
    +
  • Added the Xenobiologist job. Has access to the research hallway and to xenobiology.
  • +
  • Removed Xenobiology access from Scientists.
  • +
  • Removed the Xenobiologist alternate title from Scientists.
  • +
  • Added "Xenoarchaeology" to the RD, Scientists, and to the ID computer.
  • +
  • Changed the Research Outpost doors to use "Xenoarchaeology" access.
  • +
+
+

12/06/2013

Zuhayr updated:

From 6b73b8ec2f4438d8487e9d4951e32674e4435328 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 13 Jun 2013 20:46:09 -0700 Subject: [PATCH 04/34] Adjusted kitchen knives. Added projectile pinning. Various tweaks. --- code/game/objects/items/weapons/kitchen.dm | 1 + code/game/objects/items/weapons/weaponry.dm | 2 +- code/modules/mob/living/carbon/human/human.dm | 7 +++- code/modules/mob/living/living_defense.dm | 34 ++++++++++++++++- code/modules/mob/living/living_defines.dm | 1 - code/modules/mob/mob.dm | 37 +++++++++++-------- code/modules/mob/mob_defines.dm | 1 + code/modules/mob/mob_movement.dm | 5 ++- .../projectiles/guns/projectile/bow.dm | 9 ++++- .../projectiles/guns/projectile/pneumatic.dm | 2 +- 10 files changed, 76 insertions(+), 23 deletions(-) diff --git a/code/game/objects/items/weapons/kitchen.dm b/code/game/objects/items/weapons/kitchen.dm index a68276a310..6fbdba918e 100644 --- a/code/game/objects/items/weapons/kitchen.dm +++ b/code/game/objects/items/weapons/kitchen.dm @@ -153,6 +153,7 @@ icon_state = "knife" desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come." flags = FPRINT | TABLEPASS | CONDUCT + sharp = 1 force = 10.0 w_class = 3.0 throwforce = 6.0 diff --git a/code/game/objects/items/weapons/weaponry.dm b/code/game/objects/items/weapons/weaponry.dm index 08af5cda28..92e6b78d75 100644 --- a/code/game/objects/items/weapons/weaponry.dm +++ b/code/game/objects/items/weapons/weaponry.dm @@ -146,5 +146,5 @@ item_state = "harpoon" force = 20 throwforce = 15 - w_class = 2 + w_class = 3 attack_verb = list("jabbed","stabbed","ripped") \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 63d685bfbd..fc93d905b6 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -45,7 +45,7 @@ if(istype(tmob, /mob/living/carbon/human)) for(var/mob/M in range(tmob, 1)) - if( ((M.pulling == tmob && ( tmob.restrained() && !( M.restrained() ) && M.stat == 0)) || locate(/obj/item/weapon/grab, tmob.grabbed_by.len)) ) + if(tmob.pinned.len || ((M.pulling == tmob && ( tmob.restrained() && !( M.restrained() ) && M.stat == 0)) || locate(/obj/item/weapon/grab, tmob.grabbed_by.len)) ) if ( !(world.time % 5) ) src << "\red [tmob] is restrained, you cannot push past" now_pushing = 0 @@ -1153,6 +1153,11 @@ affected.implants -= selection shock_stage+=10 + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + src.anchored = 0 + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. var/datum/wound/internal_bleeding/I = new (15) affected.wounds += I diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index a3bc884c17..f7b2caecae 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -61,7 +61,7 @@ P.on_hit(src, absorb) return absorb -/mob/living/hitby(atom/movable/AM as mob|obj,var/speed)//Standardization and logging -Sieve +/mob/living/hitby(atom/movable/AM as mob|obj,var/speed = 5)//Standardization and logging -Sieve if(istype(AM,/obj/)) var/obj/O = AM var/zone = ran_zone("chest",75)//Hits a random part of the body, geared towards the chest @@ -73,11 +73,43 @@ var/armor = run_armor_check(zone, "melee", "Your armor has protected your [zone].", "Your armor has softened hit to your [zone].") if(armor < 2) apply_damage(O.throwforce*(speed/5), dtype, zone, armor, O.sharp, O) + if(!O.fingerprintslast) return + var/client/assailant = directory[ckey(O.fingerprintslast)] if(assailant && assailant.mob && istype(assailant.mob,/mob)) var/mob/M = assailant.mob src.attack_log += text("\[[time_stamp()]\] Has been hit with [O], last touched by [M.name] ([assailant.ckey])") M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with [O]") log_attack("[src.name] ([src.ckey]) was hit by [O], last touched by [M.name] ([assailant.ckey])") + + // Begin BS12 momentum-transfer code. + + if(speed > 20) + var/obj/item/weapon/W = O + var/momentum = speed/2 + var/dir = get_dir(M,src) + visible_message("\red [src] staggers under the impact!","\red You stagger under the impact!") + + src.throw_at(get_edge_target_turf(src,dir),1,momentum) + + if(near_wall(dir,2) && W.w_class >= 3 && W.sharp) //If they're close to a wall and the projectile is suitable. + visible_message("[src] is pinned to the wall by [O]!","You are pinned to the wall by [O]!") + src.anchored = 1 + src.pinned += O + + +/mob/living/proc/near_wall(var/direction,var/distance=1) + var/turf/T = get_step(get_turf(src),direction) + var/i = 1 + while(i>0 && i<=distance) + if(T.density) //Turf is a wall! + return 1 + i++ + T = get_step(T,direction) + + return 0 + + +// End BS12 momentum-transfer code. \ No newline at end of file diff --git a/code/modules/mob/living/living_defines.dm b/code/modules/mob/living/living_defines.dm index 19d94b42f5..8d76b47513 100644 --- a/code/modules/mob/living/living_defines.dm +++ b/code/modules/mob/living/living_defines.dm @@ -24,7 +24,6 @@ //Allows mobs to move through dense areas without restriction. For instance, in space or out of holder objects. var/incorporeal_move = 0 //0 is off, 1 is normal, 2 is for ninjas. - var/t_plasma = null var/t_oxygen = null var/t_sl_gas = null diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 253e4ee43d..6e9beda1ba 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -583,24 +583,31 @@ var/list/slot_equipment_priority = list( \ pulling = null /mob/proc/start_pulling(var/atom/movable/AM) + if ( !AM || !usr || src==AM || !isturf(src.loc) ) //if there's no person pulling OR the person is pulling themself OR the object being pulled is inside something: abort! return - if (!( AM.anchored )) - if(pulling) - var/pulling_old = pulling - stop_pulling() - // Are we pulling the same thing twice? Just stop pulling. - if(pulling_old == AM) - return - src.pulling = AM - AM.pulledby = src - if(ismob(AM)) - var/mob/M = AM - if(!iscarbon(src)) - M.LAssailant = null - else - M.LAssailant = usr + if (AM.anchored) + return + + var/mob/M = AM + if(ismob(AM)) + if(!iscarbon(src)) + M.LAssailant = null + else + M.LAssailant = usr + if (M.pinned.len) + usr << "They're pinned, gtfo." + return + + if(pulling) + var/pulling_old = pulling + stop_pulling() + // Are we pulling the same thing twice? Just stop pulling. + if(pulling_old == AM) + return + src.pulling = AM + AM.pulledby = src /mob/proc/can_use_hands() return diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 9715e6ed20..140e5b6357 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -85,6 +85,7 @@ var/lastpuke = 0 var/unacidable = 0 var/small = 0 + var/list/pinned = list() //List of things pinning this creature to walls (see living_defense.dm) var/name_archive //For admin things like possession diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index cec9b06861..80d55c0a04 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -256,7 +256,6 @@ if(!mob.canmove) return - //if(istype(mob.loc, /turf/space) || (mob.flags & NOGRAV)) // if(!mob.Process_Spacemove(0)) return 0 @@ -279,6 +278,10 @@ src << "\blue You're restrained! You can't move!" return 0 + if(mob.pinned.len) + src << "\blue You're pinned to a wall by [mob.pinned[1]]!" + return 0 + move_delay = world.time//set move delay mob.last_move_intent = world.time + 10 switch(mob.m_intent) diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index a052f19842..25f4276d9a 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -7,7 +7,7 @@ item_state = "bolt" flags = FPRINT | TABLEPASS throwforce = 12 - w_class = 2.0 + w_class = 3.0 sharp = 1 /obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart.. @@ -33,7 +33,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "crossbow" item_state = "crossbow-solid" - w_class = 4.0 + w_class = 5.0 flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY slot_flags = SLOT_BELT | SLOT_BACK @@ -59,6 +59,7 @@ var/obj/item/stack/rods/R = W R.use(1) arrow = new /obj/item/weapon/arrow/rod(src) + arrow.fingerprintslast = src.fingerprintslast arrow.loc = src user.visible_message("[user] haphazardly jams [arrow] into [src].","You jam [arrow] into [src].") if(cell) @@ -156,6 +157,10 @@ else if(target == user) return + if(!tension) + user << "You haven't drawn back the bolt!" + return 0 + if (!arrow) user << "You have no arrow nocked to [src]!" return 0 diff --git a/code/modules/projectiles/guns/projectile/pneumatic.dm b/code/modules/projectiles/guns/projectile/pneumatic.dm index 7d2f0c3b49..fe6c2651bd 100644 --- a/code/modules/projectiles/guns/projectile/pneumatic.dm +++ b/code/modules/projectiles/guns/projectile/pneumatic.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/gun.dmi' icon_state = "pneumatic" item_state = "pneumatic" - w_class = 4.0 + w_class = 5.0 flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY slot_flags = SLOT_BELT max_w_class = 3 From 3cb36272cbe922403c081b2b442f7a4af47ed254 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 13 Jun 2013 22:18:26 -0700 Subject: [PATCH 05/34] Adjusted yank verb to apply to others as well as yourself. --- code/modules/mob/living/carbon/human/human.dm | 109 ++++++++++++------ .../projectiles/guns/projectile/bow.dm | 1 + 2 files changed, 76 insertions(+), 34 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index fc93d905b6..d0dd7f8e38 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1113,56 +1113,97 @@ del(feet_blood_DNA) return 1 -/mob/living/carbon/human/verb/yank_out_object() - set name = "Yank out object" +mob/living/carbon/human/verb/yank_out_object_test() + set category = "IC" + set name = "Yank out object (test)" set desc = "Remove an embedded item at the cost of bleeding and pain." - set category = "Object" + set src in view(1) if(!isliving(usr) || usr.next_move > world.time) return usr.next_move = world.time + 20 - var/list/valid_objects = get_visible_implants(1) + if(usr.stat == 1) + usr << "You are unconcious and cannot do that!" + return + + if(usr.restrained()) + usr << "You are restrained and cannot do that!" + return + +// /* + var/list/valid_objects = list() var/datum/organ/external/affected = null + var/mob/living/carbon/human/S = src + var/mob/living/carbon/human/U = usr - if(!valid_objects.len) - src << "You have nothing stuck in your wounds that is large enough to remove without surgery." - return + if(S == U) // Removing something from yourself. + valid_objects = get_visible_implants(1) - if(src.stat == 1) - src << "You are unconcious and cannot do that!" - return + if(!valid_objects.len) + src << "You have nothing stuck in your wounds that is large enough to remove without surgery." + return - if(src.restrained()) - src << "You are restrained and cannot do that!" - return + var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects - var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects + for(var/datum/organ/external/organ in organs) //Grab the organ holding the implant. Messy as Hell, TBD: fix. + for(var/obj/item/weapon/O in organ.implants) + if(O == selection) + affected = organ - for(var/datum/organ/external/organ in src.organs) //Grab the organ holding the implant. Messy as Hell, TBD: fix. - for(var/obj/item/weapon/O in organ.implants) - if(O == selection) - affected = organ + src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." + bloody_hands(S) - src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." - bloody_hands(src) + spawn(80) + visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") + selection.loc = get_turf(src) + affected.implants -= selection + shock_stage+=10 - spawn(80) - visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") - selection.loc = get_turf(src) - affected.implants -= selection - shock_stage+=10 + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + anchored = 0 - for(var/obj/item/weapon/O in pinned) - if(O == selection) - pinned -= O - src.anchored = 0 + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. + var/datum/wound/internal_bleeding/I = new (15) + affected.wounds += I + custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) + return 1 - if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. - var/datum/wound/internal_bleeding/I = new (15) - affected.wounds += I - src.custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) - return 1 + else // Removing something from someone else. + valid_objects = src.get_visible_implants(1) + + if(!valid_objects.len) + U << "[src] has nothing stuck in their wounds that is large enough to remove without surgery." + return + + var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects + + for(var/datum/organ/external/organ in src.organs) //Grab the organ holding the implant. Messy as Hell, TBD: fix. + for(var/obj/item/weapon/O in organ.implants) + if(O == selection) + affected = organ + + U << "You attempt to get a good grip on the [selection] in [S]'s [affected] with bloody fingers." + U.bloody_hands(S) + + spawn(80) + visible_message("[usr] rips [selection] out of [src]'s [affected] in a welter of blood.","[src] rips [selection] out of your [affected] in a welter of blood.") + selection.loc = get_turf(usr) + affected.implants -= selection + src.shock_stage+=10 + + for(var/obj/item/weapon/O in S.pinned) + if(O == selection) + S.pinned -= O + S.anchored = 0 + + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. + var/datum/wound/internal_bleeding/I = new (15) + affected.wounds += I + custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) + return 1 /mob/living/carbon/human/proc/get_visible_implants(var/class = 0) diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index 25f4276d9a..4c5c0c0b1c 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -61,6 +61,7 @@ arrow = new /obj/item/weapon/arrow/rod(src) arrow.fingerprintslast = src.fingerprintslast arrow.loc = src + icon_state = "crossbow-nocked" user.visible_message("[user] haphazardly jams [arrow] into [src].","You jam [arrow] into [src].") if(cell) if(cell.charge >= 500) From b30b1569506e2b42ce696c35fda857518bad80be Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Thu, 13 Jun 2013 22:59:13 -0700 Subject: [PATCH 06/34] Melee embedding fix. --- code/modules/mob/living/carbon/human/human_damage.dm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 1cf951c53b..5d4e1da9b6 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -226,12 +226,16 @@ //Embedded projectile code. if(!organ) return if(istype(used_weapon,/obj/item/weapon)) - var/obj/item/weapon/W = used_weapon + var/obj/item/weapon/W = used_weapon //Sharp objects will always embed if they do enough damage. if(damage > (5*W.w_class) && (prob(damage/W.w_class) || sharp)) //The larger it is, the harder it needs to hit to stick. - W.loc = src //Sharp objects will always embed if they do enough damage. organ.implants += W visible_message("\The [W] sticks in the wound!") W.add_blood(src) + if(ismob(W.loc)) + var/mob/living/H = W.loc + H.drop_item() + W.loc = src + else if(istype(used_weapon,/obj/item/projectile)) //We don't want to use the actual projectile item, so we spawn some shrapnel. if(prob(50) && damagetype == BRUTE) var/obj/item/weapon/shard/shrapnel/S = new() From 084b1414c3efef47f723b277b63820c29a9f1f06 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 12:42:25 -0700 Subject: [PATCH 07/34] Bloody footprint resprites. --- icons/effects/footprints.dmi | Bin 2391 -> 12508 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/effects/footprints.dmi b/icons/effects/footprints.dmi index ede9c8e17d65338ff60e108aeefb62c6e011c179..b849de00fff38637dc85b5fdd75c71bb722164b0 100644 GIT binary patch literal 12508 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 JPDHLkV1jStReS&d From 7a19d6165bc96d98a42ba58ea532da78b171fe2b Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 13:03:03 -0700 Subject: [PATCH 08/34] Projectile shrapnel tweak for ease of forensics identification. --- code/modules/mob/living/carbon/human/human_damage.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index 5d4e1da9b6..78038f5c84 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -238,7 +238,10 @@ else if(istype(used_weapon,/obj/item/projectile)) //We don't want to use the actual projectile item, so we spawn some shrapnel. if(prob(50) && damagetype == BRUTE) + var/obj/item/projectile/P = used_weapon var/obj/item/weapon/shard/shrapnel/S = new() + S.name = "[P.name] shrapnel" + S.desc = "[S.desc] It looks like it was fired from [P.shot_from]." S.loc = src organ.implants += S visible_message("The projectile sticks in the wound!") From 73d35bcd4f0e7d9bdc7851f2ffc6f57b93095391 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 13:17:21 -0700 Subject: [PATCH 09/34] Minor changes/sanity checks in yank-out verb. --- code/modules/mob/living/carbon/human/human.dm | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d0dd7f8e38..ff3b6508ce 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1113,9 +1113,9 @@ del(feet_blood_DNA) return 1 -mob/living/carbon/human/verb/yank_out_object_test() +mob/living/carbon/human/verb/yank_out_object() set category = "IC" - set name = "Yank out object (test)" + set name = "Yank out object" set desc = "Remove an embedded item at the cost of bleeding and pain." set src in view(1) @@ -1154,7 +1154,10 @@ mob/living/carbon/human/verb/yank_out_object_test() src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." bloody_hands(S) - spawn(80) + do_after(80) + if(!selection || !affected || !S || !U) + return + visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") selection.loc = get_turf(src) affected.implants -= selection @@ -1188,7 +1191,10 @@ mob/living/carbon/human/verb/yank_out_object_test() U << "You attempt to get a good grip on the [selection] in [S]'s [affected] with bloody fingers." U.bloody_hands(S) - spawn(80) + do_after(80) + if(!selection || !affected || !S || !U) + return + visible_message("[usr] rips [selection] out of [src]'s [affected] in a welter of blood.","[src] rips [selection] out of your [affected] in a welter of blood.") selection.loc = get_turf(usr) affected.implants -= selection From 030290d3a753c6719593702892929ee5d56af475 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 13:25:20 -0700 Subject: [PATCH 10/34] Learn to test compile when using new procs, idiot. --- code/modules/mob/living/carbon/human/human.dm | 64 ++++++++++--------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index ff3b6508ce..551783798a 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1154,24 +1154,26 @@ mob/living/carbon/human/verb/yank_out_object() src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." bloody_hands(S) - do_after(80) - if(!selection || !affected || !S || !U) - return + if(!do_after(80)) + return - visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") - selection.loc = get_turf(src) - affected.implants -= selection - shock_stage+=10 + if(!selection || !affected || !S || !U) + return - for(var/obj/item/weapon/O in pinned) - if(O == selection) - pinned -= O - anchored = 0 + visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") + selection.loc = get_turf(src) + affected.implants -= selection + shock_stage+=10 - if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. - var/datum/wound/internal_bleeding/I = new (15) - affected.wounds += I - custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + anchored = 0 + + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. + var/datum/wound/internal_bleeding/I = new (15) + affected.wounds += I + custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) return 1 else // Removing something from someone else. @@ -1191,24 +1193,26 @@ mob/living/carbon/human/verb/yank_out_object() U << "You attempt to get a good grip on the [selection] in [S]'s [affected] with bloody fingers." U.bloody_hands(S) - do_after(80) - if(!selection || !affected || !S || !U) - return + if(!do_after(80)) + return - visible_message("[usr] rips [selection] out of [src]'s [affected] in a welter of blood.","[src] rips [selection] out of your [affected] in a welter of blood.") - selection.loc = get_turf(usr) - affected.implants -= selection - src.shock_stage+=10 + if(!selection || !affected || !S || !U) + return - for(var/obj/item/weapon/O in S.pinned) - if(O == selection) - S.pinned -= O - S.anchored = 0 + visible_message("[usr] rips [selection] out of [src]'s [affected] in a welter of blood.","[src] rips [selection] out of your [affected] in a welter of blood.") + selection.loc = get_turf(usr) + affected.implants -= selection + src.shock_stage+=10 - if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. - var/datum/wound/internal_bleeding/I = new (15) - affected.wounds += I - custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) + for(var/obj/item/weapon/O in S.pinned) + if(O == selection) + S.pinned -= O + S.anchored = 0 + + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. + var/datum/wound/internal_bleeding/I = new (15) + affected.wounds += I + custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) return 1 /mob/living/carbon/human/proc/get_visible_implants(var/class = 0) From 52433df15486235f7d3f1ba5fd090236b2c68ba6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 13:41:06 -0700 Subject: [PATCH 11/34] Runtime fix (argh) and removal of vox from the station race whitelist. --- code/modules/client/preferences.dm | 6 +----- code/modules/mob/living/carbon/human/human.dm | 4 ++-- code/modules/mob/new_player/new_player.dm | 4 ---- 3 files changed, 3 insertions(+), 11 deletions(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 8d5376c313..754e65924d 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -792,10 +792,6 @@ datum/preferences if(is_alien_whitelisted(user, "Skrell")) //Check for Skrell and admins new_species += "Skrell" whitelisted = 1 - if(is_alien_whitelisted(user, "Vox")) //Check for Skrell and admins - new_species += "Vox" - whitelisted = 1 - if(!whitelisted) alert(user, "You cannot change your species as you need to be whitelisted. If you wish to be whitelisted contact an admin in-game, on the forums, or on IRC.") @@ -803,7 +799,7 @@ datum/preferences new_species += "Tajaran" new_species += "Unathi" new_species += "Skrell" - new_species += "Vox" + species = input("Please select a species", "Character Generation", null) in new_species if(prev_species != species) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 551783798a..b59c0d2bcd 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1154,7 +1154,7 @@ mob/living/carbon/human/verb/yank_out_object() src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." bloody_hands(S) - if(!do_after(80)) + if(!do_after(U, 80)) return if(!selection || !affected || !S || !U) @@ -1193,7 +1193,7 @@ mob/living/carbon/human/verb/yank_out_object() U << "You attempt to get a good grip on the [selection] in [S]'s [affected] with bloody fingers." U.bloody_hands(S) - if(!do_after(80)) + if(!do_after(U, 80)) return if(!selection || !affected || !S || !U) diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 686007c717..5ba8a959b9 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -349,10 +349,6 @@ if(is_alien_whitelisted(src, "Skrell"|| !config.usealienwhitelist)) new_character.dna.mutantrace = "skrell" new_character.skrell_talk_understand = 1 - if(client.prefs.species == "Vox") - if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist)) - new_character.dna.mutantrace = "vox" - new_character.vox_talk_understand = 1 if(ticker.random_players) new_character.gender = pick(MALE, FEMALE) From 1e1426fa8ae5839f1b43306650d4eb187c8ec01c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 16:36:55 -0700 Subject: [PATCH 12/34] Minor vox sprite fix, added vox to Create Admin verb. --- baystation12.dme | 1 + code/modules/admin/topic.dm | 20 +++-- code/modules/admin/verbs/one_click_antag.dm | 95 +++++++++++++++++++- code/modules/admin/verbs/vox_raiders.dm | 66 ++++++++++++++ icons/mob/human_races/r_def_vox.dmi | Bin 2013 -> 2036 bytes icons/mob/human_races/r_vox.dmi | Bin 2013 -> 2033 bytes 6 files changed, 172 insertions(+), 10 deletions(-) create mode 100644 code/modules/admin/verbs/vox_raiders.dm diff --git a/baystation12.dme b/baystation12.dme index 68d5ab3d3d..78f5814999 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -710,6 +710,7 @@ #include "code\modules\admin\verbs\striketeam_syndicate.dm" #include "code\modules\admin\verbs\ticklag.dm" #include "code\modules\admin\verbs\tripAI.dm" +#include "code\modules\admin\verbs\vox_raiders.dm" #include "code\modules\assembly\assembly.dm" #include "code\modules\assembly\bomb.dm" #include "code\modules\assembly\helpers.dm" diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 292327ca27..6303e8d0da 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -11,31 +11,31 @@ if("1") log_admin("[key_name(usr)] has spawned a traitor.") if(!src.makeTraitors()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("2") log_admin("[key_name(usr)] has spawned a changeling.") if(!src.makeChanglings()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("3") log_admin("[key_name(usr)] has spawned revolutionaries.") if(!src.makeRevs()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("4") log_admin("[key_name(usr)] has spawned a cultists.") if(!src.makeCult()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("5") log_admin("[key_name(usr)] has spawned a malf AI.") if(!src.makeMalfAImode()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("6") log_admin("[key_name(usr)] has spawned a wizard.") if(!src.makeWizard()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("7") log_admin("[key_name(usr)] has spawned a nuke team.") if(!src.makeNukeTeam()) - usr << "\red Unfortunatly there were no candidates available" + usr << "\red Unfortunately there weren't enough candidates available." if("8") log_admin("[key_name(usr)] has spawned a ninja.") src.makeSpaceNinja() @@ -44,8 +44,10 @@ src.makeAliens() if("10") log_admin("[key_name(usr)] has spawned a death squad.") - if(!src.makeDeathsquad()) - usr << "\red Unfortunatly there were no candidates available" + if("11") + log_admin("[key_name(usr)] has spawned vox raiders.") + if(!src.makeVoxRaiders()) + usr << "\red Unfortunately there weren't enough candidates available." else if(href_list["dbsearchckey"] || href_list["dbsearchadmin"]) var/adminckey = href_list["dbsearchadmin"] var/playerckey = href_list["dbsearchckey"] diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 8ef53eb023..823d1adc2f 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -17,6 +17,7 @@ client/proc/one_click_antag() Make Cult
Make Malf AI
Make Wizard (Requires Ghosts)
+ Make Vox Raiders (Requires Ghosts)
"} /* These dont work just yet Ninja, aliens and deathsquad I have not looked into yet @@ -429,4 +430,96 @@ client/proc/one_click_antag() ticker.mode.traitors += new_syndicate_commando.mind new_syndicate_commando.equip_syndicate_commando(syndicate_leader_selected) - return new_syndicate_commando \ No newline at end of file + return new_syndicate_commando + +/datum/admins/proc/makeVoxRaiders() + + var/list/mob/dead/observer/candidates = list() + var/mob/dead/observer/theghost = null + var/time_passed = world.time + var/input = "Disregard shinies, acquire hardware." + + var/leader_chosen = 0 //when the leader is chosen. The last person spawned. + + //Generates a list of candidates from active ghosts. The admin picks which players to respawn as the vox. + for(var/mob/dead/observer/G in player_list) + spawn(0) + if(is_alien_whitelisted(src, "Vox") || !config.usealienwhitelist) + switch(alert(G,"Do you wish to be considered for a vox raiding party arriving on the station?","Please answer in 30 seconds!","Yes","No")) + if("Yes") + if((world.time-time_passed)>300)//If more than 30 game seconds passed. + return + candidates += G + if("No") + return + else + return + + sleep(300) //Debug. + + for(var/mob/dead/observer/G in candidates) + if(!G.key) + candidates.Remove(G) + + if(candidates.len) + var/raiders = 1 + //Spawns vox raiders and equips them. Two raiders, two engineers. + for (var/obj/effect/landmark/L in world) + if(L.name == "Response Team") + if(raiders<=0) + break + + var/mob/living/carbon/human/new_vox = create_vox_raider(L, leader_chosen) + + while((!theghost || !theghost.client) && candidates.len) + theghost = pick(candidates) + candidates.Remove(theghost) + + if(!theghost) + del(new_vox) + break + + new_vox.key = theghost.key + new_vox << "\blue You are a Vox Primalis, fresh out of the Shoal. Your crew has arrived at the NSV Exodus to begin pillaging! Your current goal is: \red [input]" + new_vox << "\red Don't forget to turn on your nitrogen internals!" + + raiders-- + if(raiders >= 4) + return 0 + else + return 0 + return 1 + +/datum/admins/proc/create_vox_raider(obj/spawn_location, leader_chosen = 0) + var/mob/living/carbon/human/new_vox = new(spawn_location.loc) + + new_vox.gender = pick(MALE, FEMALE) + var/datum/preferences/A = new() //Randomize appearance for the raider. + A.randomize_appearance_for(new_vox) + new_vox.h_style = "Short Vox Quills" + new_vox.regenerate_icons() + + var/sounds = rand(2,10) + var/i = 0 + var/newname = "" + + while(i<=sounds) + i++ + newname += pick(list("ti","hi","ki","ya","ta","ha","ka","ya","chi","cha","kah")) + + new_vox.real_name = capitalize(newname) + new_vox.name = new_vox.real_name + new_vox.age = rand(12,20) + + new_vox.dna.ready_dna(new_vox) // Creates DNA. + new_vox.dna.mutantrace = "vox" // Actually makes the vox! How about that. + new_vox.mind_initialize() + new_vox.mind.assigned_role = "MODE" + new_vox.mind.special_role = "Vox Raider" + + //Adds them to current traitor list. Which is really the extra antagonist list. + ticker.mode.traitors += new_vox.mind + new_vox.equip_vox_raider() + + usr << "\red Returning vox." + return new_vox \ No newline at end of file diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm new file mode 100644 index 0000000000..4aa9b323a9 --- /dev/null +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -0,0 +1,66 @@ +/mob/living/carbon/human/proc/equip_vox_raider() + + var/obj/item/device/radio/R = new /obj/item/device/radio/headset/syndicate(src) + R.set_frequency(SYND_FREQ) //Same frequency as the syndicate team in Nuke mode. + equip_to_slot_or_del(R, slot_ears) + + equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes(src), slot_w_uniform) + equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES. + equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves) // AS ABOVE. + + switch(rand(1,4)) // Come up with a better way of doing this - ticker of some sort maybe. + if(1) // Vox raider! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/carapace(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/carapace(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/melee/telebaton(src), slot_belt) + equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/device/chameleon(src), slot_l_store) + + var/obj/item/weapon/crossbow/W = new(src) + W.cell = new /obj/item/weapon/cell/crap(W) + W.cell.charge = 500 + equip_to_slot_or_del(W, slot_r_hand) + + if(2) // Vox engineer! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/pressure(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) + equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/weapon/storage/box/emps(src), slot_l_store) + + equip_to_slot_or_del(new /obj/item/weapon/pickaxe/plasmacutter(src), slot_r_hand) + + if(3) // Vox saboteur! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/carapace(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/carapace(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) + equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal/monocle(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/weapon/card/emag(src), slot_l_store) + + var/obj/item/weapon/storage/pneumatic/W = new(src) + W.tank = new /obj/item/weapon/tank/nitrogen(W) + equip_to_slot_or_del(W, slot_r_hand) + + if(4) // Vox medic! + equip_to_slot_or_del(new /obj/item/clothing/suit/space/vox/pressure(src), slot_wear_suit) + equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/vox/pressure(src), slot_head) + equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full(src), slot_belt) // Who needs actual surgical tools? + equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(src), slot_glasses) // REPLACE WITH CODED VOX ALTERNATIVE. + equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray(src), slot_l_store) + + equip_to_slot_or_del(new /obj/item/weapon/circular_saw(src), slot_l_hand) + equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/toxin(src), slot_r_hand) + + equip_to_slot_or_del(new /obj/item/clothing/mask/breath/vox(src), slot_wear_mask) + equip_to_slot_or_del(new /obj/item/weapon/tank/nitrogen(src), slot_back) + equip_to_slot_or_del(new /obj/item/device/flashlight(src), slot_r_store) + + var/obj/item/weapon/card/id/syndicate/W = new(src) + W.name = "[real_name]'s Legitimate Human ID Card" + W.icon_state = "id" + W.access = list(access_cent_general, access_cent_specops, access_cent_living, access_cent_storage, access_syndicate) + W.assignment = "Trader" + W.registered_name = real_name + equip_to_slot_or_del(W, slot_wear_id) + + return 1 \ No newline at end of file diff --git a/icons/mob/human_races/r_def_vox.dmi b/icons/mob/human_races/r_def_vox.dmi index 4dad2129d5081210cc8b17f09b135559b390776b..2024f52583b50e825812a2bc3ec746d95564adb2 100644 GIT binary patch delta 1774 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 MGu{pN#GaJ;7t?4TGynhq From e3acd6e72811a90948749faf414271850b006114 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 16:38:36 -0700 Subject: [PATCH 13/34] Minor tweak to previous commit. --- code/modules/admin/verbs/one_click_antag.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 823d1adc2f..80e58110e4 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -462,8 +462,8 @@ client/proc/one_click_antag() candidates.Remove(G) if(candidates.len) - var/raiders = 1 - //Spawns vox raiders and equips them. Two raiders, two engineers. + var/raiders = 4 + //Spawns vox raiders and equips them. for (var/obj/effect/landmark/L in world) if(L.name == "Response Team") if(raiders<=0) From 4ea1e16863cb4ef49478f680d73395f02dbf271d Mon Sep 17 00:00:00 2001 From: MisterBook Date: Fri, 14 Jun 2013 21:24:28 -0500 Subject: [PATCH 14/34] With a brand new spanking BEF pull. --- code/modules/mob/living/carbon/monkey/life.dm | 17 ++++++++++++++++- code/modules/mob/living/damage_procs.dm | 4 ++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 45e57a3da7..5e215b6966 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -438,21 +438,36 @@ if(!reagents.has_reagent("inaprovaline")) adjustOxyLoss(1) Paralyse(3) + if(halloss > 100) + src << "You're in too much pain to keep going..." + for(var/mob/O in oviewers(src, null)) + O.show_message("[src] slumps to the ground, too weak to continue fighting.", 1) + Paralyse(10) + setHalLoss(99) if(paralysis) AdjustParalysis(-1) blinded = 1 stat = UNCONSCIOUS + if(halloss > 0) + adjustHalLoss(-6) else if(sleeping) + handle_dreams() + adjustHalLoss(-6) sleeping = max(sleeping-1, 0) blinded = 1 stat = UNCONSCIOUS - if( prob(10) && health ) + if( prob(10) && health && !hal_crit ) spawn(0) emote("snore") + else if(resting) + if(halloss > 0) + adjustHalLoss(-6) //CONSCIOUS else stat = CONSCIOUS + if(halloss > 0) + adjustHalLoss(-2) //Eyes if(sdisabilities & BLIND) //disabled-blind, doesn't get better on its own diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 78b04c9245..333cc07380 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -28,7 +28,7 @@ return 1 -/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/def_zone = null, var/blocked = 0, var/halloss = 0) +/mob/living/proc/apply_damages(var/brute = 0, var/burn = 0, var/tox = 0, var/oxy = 0, var/clone = 0, var/halloss = 0, var/def_zone = null, var/blocked = 0) if(blocked >= 2) return 0 if(brute) apply_damage(brute, BRUTE, def_zone, blocked) if(burn) apply_damage(burn, BURN, def_zone, blocked) @@ -64,7 +64,7 @@ return 1 -/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/blocked = 0, var/agony = 0) +/mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/agony = 0, var/blocked = 0) if(blocked >= 2) return 0 if(stun) apply_effect(stun, STUN, blocked) if(weaken) apply_effect(weaken, WEAKEN, blocked) From 04be69a0b42a6d561bc1a78c954c9f706af7581c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Fri, 14 Jun 2013 20:07:16 -0700 Subject: [PATCH 15/34] Magboots and gloves for vox, removed a debug string, tweaked vox. --- code/modules/admin/verbs/one_click_antag.dm | 2 - code/modules/admin/verbs/vox_raiders.dm | 4 +- code/modules/clothing/spacesuits/alien.dm | 54 ++++++++++++++++++- code/modules/mob/living/carbon/human/life.dm | 10 ++-- code/modules/mob/say.dm | 2 +- icons/mob/feet.dmi | Bin 5873 -> 6074 bytes icons/mob/hands.dmi | Bin 10854 -> 11257 bytes icons/obj/clothing/gloves.dmi | Bin 9828 -> 10117 bytes icons/obj/clothing/shoes.dmi | Bin 7080 -> 7657 bytes 9 files changed, 61 insertions(+), 11 deletions(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 80e58110e4..099443ade4 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -517,9 +517,7 @@ client/proc/one_click_antag() new_vox.mind.assigned_role = "MODE" new_vox.mind.special_role = "Vox Raider" - //Adds them to current traitor list. Which is really the extra antagonist list. ticker.mode.traitors += new_vox.mind new_vox.equip_vox_raider() - usr << "\red Returning vox." return new_vox \ No newline at end of file diff --git a/code/modules/admin/verbs/vox_raiders.dm b/code/modules/admin/verbs/vox_raiders.dm index 4aa9b323a9..93f6af6eb5 100644 --- a/code/modules/admin/verbs/vox_raiders.dm +++ b/code/modules/admin/verbs/vox_raiders.dm @@ -5,8 +5,8 @@ equip_to_slot_or_del(R, slot_ears) equip_to_slot_or_del(new /obj/item/clothing/under/vox/vox_robes(src), slot_w_uniform) - equip_to_slot_or_del(new /obj/item/clothing/shoes/sandal(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES. - equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves) // AS ABOVE. + equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/vox(src), slot_shoes) // REPLACE THESE WITH CODED VOX ALTERNATIVES. + equip_to_slot_or_del(new /obj/item/clothing/gloves/yellow/vox(src), slot_gloves) // AS ABOVE. switch(rand(1,4)) // Come up with a better way of doing this - ticker of some sort maybe. if(1) // Vox raider! diff --git a/code/modules/clothing/spacesuits/alien.dm b/code/modules/clothing/spacesuits/alien.dm index 3a8824e644..c17f1b5aea 100644 --- a/code/modules/clothing/spacesuits/alien.dm +++ b/code/modules/clothing/spacesuits/alien.dm @@ -104,4 +104,56 @@ desc = "Weird and flowing!" icon_state = "vox-casual-2" color = "vox-casual-2" - item_state = "vox-casual-2" \ No newline at end of file + item_state = "vox-casual-2" + +/obj/item/clothing/gloves/yellow/vox + desc = "These bizarre gauntlets seem to be fitted for... bird claws?" + name = "insulated gauntlets" + icon_state = "gloves-vox" + item_state = "gloves-vox" + siemens_coefficient = 0 + permeability_coefficient = 0.05 + color="gloves-vox" + +/obj/item/clothing/gloves/yellow/vox/mob_can_equip(M as mob, slot) + var/mob/living/carbon/human/U = M + if(U.dna.mutantrace != "vox") + U << "This clearly isn't designed for your species!" + return 0 + return ..() + +/obj/item/clothing/shoes/magboots/vox + + desc = "A pair of heavy, jagged armoured foot pieces, seemingly suitable for a velociraptor." + name = "vox boots" + item_state = "boots-vox" + icon_state = "boots-vox" + + toggle() + name = "Toggle Floor Grip" + + if(src.magpulse) + src.flags &= ~NOSLIP + src.magpulse = 0 + usr << "You relax your deathgrip on the flooring." + else + src.flags |= NOSLIP + src.magpulse = 1 + usr << "You dig your claws deeply into the flooring, bracing yourself." + + + examine() + set src in view() + ..() + var/state = "loosely" + if(src.flags&NOSLIP) + state = "tightly" + usr << "The wearer seems to be gripping the floor [state]." + + +/obj/item/clothing/shoes/magboots/vox/mob_can_equip(M as mob, slot) + var/mob/living/carbon/human/U = M + if(U.dna.mutantrace != "vox") + U << "This clearly isn't designed for your species!" + return 0 + return ..() \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 5d8dc1055b..0db1f949c5 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -470,7 +470,7 @@ reagents.add_reagent("plasma", Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) toxins_alert = max(toxins_alert, 1) else if(O2_pp > vox_oxygen_max && src.dna.mutantrace=="vox") //Oxygen is toxic to vox. - var/ratio = (breath.oxygen/vox_oxygen_max) * 10 + var/ratio = (breath.oxygen/vox_oxygen_max) * 1000 adjustToxLoss(Clamp(ratio, MIN_PLASMA_DAMAGE, MAX_PLASMA_DAMAGE)) toxins_alert = max(toxins_alert, 1) else @@ -490,7 +490,7 @@ if( (abs(310.15 - breath.temperature) > 50) && !(COLD_RESISTANCE in mutations)) // Hot air hurts :( if(status_flags & GODMODE) return 1 //godmode - if(breath.temperature < 260.15) + if(breath.temperature < 260.15 && dna.mutantrace != "vox") //Vox are resistant to cold. if(prob(20)) src << "\red You feel your face freezing and an icicle forming in your lungs!" else if(breath.temperature > 360.15) @@ -501,10 +501,10 @@ if(-INFINITY to 120) apply_damage(COLD_GAS_DAMAGE_LEVEL_3, BURN, "head", used_weapon = "Excessive Cold") fire_alert = max(fire_alert, 1) - if(120 to 200) + if(120 to 200 && dna.mutantrace != "vox") //Vox are resistant to cold. apply_damage(COLD_GAS_DAMAGE_LEVEL_2, BURN, "head", used_weapon = "Excessive Cold") fire_alert = max(fire_alert, 1) - if(200 to 260) + if(200 to 260 && dna.mutantrace != "vox") //Vox are resistant to cold. apply_damage(COLD_GAS_DAMAGE_LEVEL_1, BURN, "head", used_weapon = "Excessive Cold") fire_alert = max(fire_alert, 1) if(360 to 400) @@ -602,7 +602,7 @@ if(HAZARD_LOW_PRESSURE to WARNING_LOW_PRESSURE) pressure_alert = -1 else - if( !(COLD_RESISTANCE in mutations) && src.dna.mutantrace!="vox") + if( !(COLD_RESISTANCE in mutations) && src.dna.mutantrace!="vox") //Vox are resistant to pressure loss. adjustBruteLoss( LOW_PRESSURE_DAMAGE ) pressure_alert = -2 else diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index 9f3660eb7c..4f2ab37106 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -81,7 +81,7 @@ if (is_speaking_tajaran) return "mrowls, \"[text]\""; if (is_speaking_vox) - return "chirps, \"[text]\""; + return "shrieks, \"[text]\""; //Needs Virus2 // if (src.disease_symptoms & DISEASE_HOARSE) // return "rasps, \"[text]\""; diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi index 81c75323041f2ad1bcf93cf25fe95362f1420486..d994f6a63c1375660e24683ddbdaffbe73ca54e5 100644 GIT binary patch delta 5500 zcmZu!c|4Tg+a66BS&Qt3ij;ksjA*QdERlW7K8R4VXLv}GEoEP_C1D7WU1Q%uW8WD} z5|gZBAM=~u_xH#5+xtHM+~+*cIp_I&uIpU)echX4^%AcIsPsNvkvJu%qM~AIYWncu zLl7AR>H`^F=XX^V^SL9X&JTidfi9f`A*DeLQlgw75Qxg#K-UnY{A0q2GA>I9JS7O+ zHfHN*y$lhYC~E135A5u8C|g|0KTLq$iR*%3W4`Fj`K}+`svu2tiJ2GZBsB_3=n-zL z8vS+zwi_e)HPNqw8$GT4S0&ix0=_o7x}4Xjs}M(UXgG^#(T=Y`pKM2b*c(icnp0U& zwlf!8p|_%HMe7R3DS78`)O}tN<`D(%nK=nXptI~y?+)468r10tw7Ibf&)K)B?U&S$ z*^Q?Tu6!EtX}x6=!qHKDG`_gVaN(AdoSHOcTS+19{U-j-(R>}7sPMV#CUT98EL{(z zhBNzE_a;K@tc0R+-Lg3pvlL`!JUe0GF!@qympK=W@A3A(m8M+M7(Yh8@KWlqe$Zd*^h^Cm ziE=I++#?L_UxO@4m37gU3_vd9;O7jSC!ad z$>g}_Dag&OSf1_c4X*v{>$d^!ZXmxG={La$A@W%?Tl&h2$>f1REY_O0RgC=Ku4P6B zUg%2ejJ{*m)@PRP_WfGCgZ8)F+Lg5KQ@3875#^2#d5OPokDw`E0=F?U-}==)N2Hn* zfS(<==!|MNU^y$CY(WrhVt&b!|A5)Gk!Ds$>f_}H;fnvSJF1!oGg6h|Gq*v z54%)hzMYz^RrS3>n(#>TjYF3Bv0Qx=R?Vk9ud1r*D)dXcVwZ$-XO)Ntm~(9?$_>+v*1*AZ6z1qlNxlzy*N!Z&#}EhI5{h~NZw0^YUS zyhHEDCp!pcx<{D|qHCy09{qitI!61wMyxjC<5d5oL|gZ&ALt@y=Hv3}m1A0-5*PV( zXLxz+aqtAwv!t2x6Lx&6)4z#F+^rY;ydrG#6Q*0LeX$Ip{vPwDX;3%9#!Ry~mI0NM zF{!*I&Z$JRb>=s4uEg6H#(f7@@B^aK;su`6dzMqJ!lXkT$kZ+;$@yzp8JXKNk5%=A zrqY}cnvW2&=U`I4lI-d99^~Y=s~@q$2RT=SyjKQ!i`|S%(rr*hO|dU=w+~R(PCMbx zW|$9GTf-JxT3uCBezsN<1N5PEAKYTULPmQL8TSukNr^!1*9Q(eWtrPv-=dnB`j*E_ ztVG62t!`E0(yMG(Z1{a5#ob(#L`2$DQ~G|=9h9m*;2Je~QA{`0-0GTF`jU2-u>I9X zH1S&*ip0I==Nn91smquzPE_vpcL*} zn>6f928mJwg0)UIG0Xg?{=&3;V&n~u=_qu4^Apa?$ocqWf)5oJM=EWqKP*{;bNl|8 zV5aLk-KryGPm5r>*uABI#?=ZrLT1#=KCjK|{!QxFUk?>-A5g{)@N*+K%&|%fn69ol zaF9~hJ}=*q+`yhFc5ffpue^sXtE3!9mLJ$oW5nStN76XtCMK}#T1}1-UzfQO%79`I z6hd_Mexa*sAXsjUeJU=?pJeHSx8y~b z6mey01hJiMlDFN__W6YN6c1PCyLVmcgWvSRow!z4mXAhd0VEgR=}YvdlaJ|}MOAMq z+{CpNaeAEv^nF#Yv3t?9)7f#U0+`R&CGWNuM6wkOV)urh^j&h58f!9!VXpXNY~B%5 zO85T)4>TVVM9KiSFVltu{x=?BG$1drtjeb8vLJ|xDa4P)WCBk&bQfr(x;yO(bw)p2ukDy3M$19J5~yhz*I zE)WI%RK|q_CS#>Bv6#*p=|uN3dN-{E0`^^p%P#SeXBn4~dD>u&-)qA5_w^54gwRHf` zTX;;E?SsB(dT(&1DPmyV!{l)Um2%Ps2BKJhMl&XM>IUR;^d%Lx`Ul=UpLD!?##8GD z7WdqYQF?rMLE$FGnafD=Px+?z&W3BVTcG+(Ivg@OK8~*qHCt%f*N@x*#?+Xc#s4ef zBy78z{^T*6e7+wgp)!I4m$}VYeh8(~m-ve(_B2P4rY}ZXFH%13E;)}aTIKRU8)(_U zYxP{n*;|Eb5kDKuQ*zAHItx zx@o|J*T>eQG-{YxEXA$PN4^h3lZhTd*R4@c9nI8{6Uklq*I^mqgvz7iRNDEju~tU7 z2FxO(C{ip%u_3Ob`E;cdXMf*|0fL%BK9)Dkz)Bhf0{+d{c8~vwMqW@{*`thWY|$}P z$O*D&Jrsu*@d#`*6Lw#wyU223YbRFsn4)nkz5^3%4Q`M}d0fQdr}cl~;pGl_ScdO` zsG%mz+B6?!b;9JxZ!a(<33x7-uHE$Ap>XHQhWke*0C@Sxas%6cQURh{m4x|*zJXb* z;M?i$m9C4;r?X>sj`P$`qb&m$vu3Zuph=ykqDflQelMZZOJmn7jYWxjE>>_^nQb*T zOx>#t^2gS+RCI^w!F_)0VT~3(fnlJGI|nxd>M*dW3q2HNxP9TzvO;fhZ#d>^R*4A; z@SPZMniN`fQ|-nzVJEW0t?XEx;}+aeCY1Meub1Cptn5>cS^I@@NBlH{*z>i$7ods4 zfyzb^HJj#kHsl|+83=ab+J&1-Wwq{>^b}SUj93+x9QL`gp}6rTB5R;;_d>qe%%I^f z*w2ovtVP{P<(s42iyZoPL%Eqt@&GFKZ^?w5X~UfKw={$NPWwJ9NCn&e`OCaZ6O_Ky z+5dlL&4J)-NBC>fHwOqfZI)sL&t^@xaf6P&kQu3c1Lwedzm^z6f{3wURM^T?TZzih zoX)>3h1ry7q8WMjIe?{Jlz+_TN}5iPl!R-`vlybbA}0vA+6_d6`BdG200E~cbgb>> zdG^ld6L;kwVc;dx%B(kM@y);KXPtLRNb*TgwfycHj?6+}WXlS0itGEi_j`6bCP2sV zP_IKz)9M`^Ii_^cSs%LTe{ukZFhzwym=I({5&8b{+YvROmG}s(r(^~H>4G=!$rssO z3$`Plu-oLI{TDh&M>Z4C;pT!?=j;Sd(wqWTfjeEjsz7ye_iOW)z?k~W!pC&zD4RsW z%MOXQ6l=wc42X>_?FEV0`W;hF|BVoRQvnMyJSS~Z^uFn@gvJN34Yewb#{I9+8a*=a zRW{0)bFBe0w!(V+k!<8W3D4qxYXJnZZ8<$s6P-1GfQP7U(E5Qc9WXSpQv`D0h$@qY zY{V~9vmsl`&p61Z7KUtmP?#`8*j$njA9uIhd>9V-}Qzw=0 z;d3B@VP7DNJgM|2UKcBXf!iC-xwVWsr^!ASo$Q%glvu**25yTU-v3!%$5AT;AUl zSOa3$V_nOhSF9z4Mlf;us2T0= z8L>7=jGvFrTlj>(svDJX^%WmooWae_QsC&r?Lv0F@nup3B}(AIe?c4qgoPaM4l+Hf zspT(+-RR~~J~!kC+E+e@>8EruErxxJ)Lj&aq3aCaeI)(&?v5Q=o$k`3cx%UvFMDYW z2+!wL!R#$7Fp35^QQ6bY2^5q&y}*#kVUByl|3>=%2O1E4NwgM{KJLW2id$6}K2yO>}}_iyI97zK*_Dar`1sX~!=tv~^KKd|nV z8GV+#G5lxZ;OWU-$1s-!zQ2kQgE_=h@;pKIU z`61`MPaLTaXwLivf3p(s;sphHLsKj?beTSrINehJ;({MdF#bzunkXg0ymxshR%MmT zE+;A1D~mg|-!o!f_Ewg&R1pvT=^7a3|8|z^4DC8GP^=e6U-+SVQkK#Uo~XzB$$nmE zvDky`?cB9{FNR={YH5M(mP<(&n1P_hUvf#Cz1d#QVi6pd)q-L!t^V{dFi#p>ell4S zprf5{@x(lhSo6MHN{_u-0gy!Vv$gTJZO`>PBC8MD&i8t%I;?Dky0bB6Dg>HvU#s~5 zPyUuQOpO-viSg1B5JPaUBwrLAkwtPjs%QVPeL8s-=-ev>3>1Io{IO6HARV_nfqvp( z(8&9dG_4;Ne4;9q8VYEGvSlizC`^Zax8t@O11R^nt(ckeSVN>N?CAoOO`QmZUu zGBuLY|3IpEU@PhFVtk>3#t&xMV7FItEE1^he<9mWpr z*s2eV_p?b(Jbdx7<^he=ZcBL(q&d16!Wd^|hQ6oFqpo^%E|T}B+>V&RdG^l7j5}N@ zq2H}Ma^NAMS@_k^W-rO-V>e1gKbz3=@bP7*UPxeh!mVxE;B9$Zt;i_8YojE1+{ZQ+ znTwyDoz0J4d^eTO)siow1=n90ltL7f;c1Zo=Xx@q-l%du^I*suOy&UV74$}ocp#1Y zd<5Uhq0*tG3hDL&HxbxbI6h=|7F18aZ_O@qyQ+-yMRC@(lJe>d zxei)M5J@y1pTNGf0aFb2jOS?mRsRlXu#B2T(rLPET~>I$HTHKcc8xD85;h%B5b8WS z!V_lpPh>w9ko6rQT~`IW+-p?pygg9l;w{5b-^Wkh0mpzCwNTKEGgtvAZQI%L_F-te zMmkW6R?*sUWfSB!Tz4msWJy-`uCb2WUZNqe!PqeWz>LAyE;>3SG{ zTo*5@1HenIzdT(_ul2p_Aw*i0@gxc7YnLX3FOPUCIH3&5saf>`;%_uN65WD}Y_bHQ zCO^#ObACUYYES>Z+QnDgnZ(;IOKsI-VS4ji*Fbn|zB79NMs?_r((JC`uoJ}UsleS8 zKGm#2{F&}p?;nRgE(1Qq&Kwb$p(WlCDQ_38B&jc!d;->}3O^l!?C=lW>oN{~7bbf? fIK8}L8bOA9=))l~R<;d))T61Ud%INC_St^`OAU?$ delta 5297 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 diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi index 44dfaabf477477bc3ff18d35db2a75a52bb078af..6e2862349be97143bf9e31b9f91b40ebff7e48e2 100644 GIT binary patch literal 11257 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 literal 10854 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 AO8@`> diff --git a/icons/obj/clothing/gloves.dmi b/icons/obj/clothing/gloves.dmi index 9a8ee374dd349c3a0f2461ba8a3f09977a4e5790..8160eefd314b6a8f80642f58cfa7d660b9fd4e40 100644 GIT binary patch literal 10117 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 J3aNKr{sTkL*<=6! literal 9828 zcmai4by!-=%1ScmC`2d#003Q1R#Fvq&3t|%A;LaGhb>rOmu+`-ZD&a{ zrw@)+_Rdyzwg7-@YWTR2Z6`Y#!pbZ^LNtWsuFjo-1eYv^3AcJs-bTAWGmf{x3j{~1 z@EQAL6)rOS>csno;5|Euj0??RD&@t=)y+m@cp`RY@HGB3f+@Lt%Z6WIX7D04Z-z^m zo;KIT$w4DqH+k{42#xlRd9lEc+(8T~=5G_uw-k;KJ(~D>Sq3gKsLAvU(so>V-Ea1# zw0`F_W6!d*tSx#2ud)<>z7;5cH(3Ab<2-|7Dp5k0LZd2lL7R9>^-z)WYl`#w4zbRB z`>)S)$?{K6bRN8^hy)Qi_XzL(35P}-8e#i;4Um%*Q+G{0O!Lww*=*Tqt70AyfD=cf z_}SIm>q`*xQ~O<|T;y-=!%48!q~5Q`>Y$nYDgT}i9!CwjpN~sxr&6ar;hgBM*Mv`n zO6z?lwys2+kIjY4je3FoTJ}XkCGnEcSDmE$-V?N{&LK{$Kj~Aq-ol=o_YkgOyTseG zlx;Wjs~;PV4HXsNacgDU;6fvL5`161?8Y9U%+`k2mBdvL4gGG4Z23}!8IFZAgeFr; z^7nfUiTOIa#O|wfA&=amPt(j&Qc|BDKF`;_^LWVGWBK$@xCzP^f=b*f>D=G_5TCAY z4en3(v7&SlueDod9jFYWmJ<^@J3rs#bJ{Ar)Ya9cXJ$@4GZIx%i6$~)(lIf~O3lcK z+~U5yy;UPymaT+6^K6UTyJo3lJtCAcOOvzI7;{r#Gg%G`Kc^Ym$5lI|j&<~KJt&CY zPTAXooaQqQPb63Cb^n!*ipu}u!Wr;Ur)U3iY-|jk-Heh*PE%c-+HSr!eDaspuhRiA z7`8g@v4{K`v0Q#aWEUv2I?lhBw0**?Gx#jcQF?F3+NFsyDa!6hu_D~Lkl!OK2Y=2Z zZd#2ZoA>Dp^cwK}npI=i$4(dBn(N&6N5+!_0%UkNkw(t+>R=Y~lUsr1+EuW+x;iR4 z`lUK6RQyGJeEbKfDXlnco6K_9F3Vm#)>9=a0}2WX49v_Q=W9QUZQk9$&X+uvgU+wd zT{9fA?c~0>+Lrv~vPm(3Dm99?L_xt>E%;l*eum^|H+aZ; z0&%spRN14qB6IqR%`OatgoG2AWSR(qbNVH=oj2Rd%Iyyio`kOj1c;TDY(~Dt;lY*yt{$1cF!}FaTa(=&W-Vhnjr+~-UNX#9G#R}dEeW_g#|+We z8g7t!TnrL;>eV&;@Yy`wowc~QSUmkHDrW^I6CV>(Xh{ikjhHBUiBQ9w4HZ(2&n7s2 zFPJFu&mVEO>!Zbkr4|qH+S9|fh*ln1TPImf-@UPV?I!Dt3;Q10LHL;!JsItoH)8JMjdq#ZDc8L@7C0`w9@pa zoWbtCO2{0fIdj>iez~pB4<@HXf>~u{B}_;T_>h%siqARHX42mu4a@P%rxi3cHAgHN za03GaEBh?f@Y+gB!YV5{zaB4bD;60UuK}|YNugfr$Zl$?VXZS z2!N-7*DCnQyILx}UlVQVjb< z`BI*{36eD%9w$LQ1oW;W>nu%81@*3*Y(bLi7j2sj?Pe6|IgPBW7|hJf^4Aj+5`vgT zydQY;^71yewp7*CC3SRkW)us-Jd|NpVS6E8HOn;-X-ue}g~Q4FZV{=}N@Tf!3ga@#1S`_Ie0hw?!P*B7V;Tpi4*EzHb{ zsFISoEQ+^?5WX}m9?VwBI5sU(EJI3kswUcD>%v@M<9t@2!w|#TRJ>fmP=!b!ydWWX9bdqjEfal%UkdTo2?R1ZcMyf;uc?E_3 z;b9&@Tk7_mOmU`c^R{-&vf~wpV9qnrqF;D+=R`hz>p_nz-~F!zRz2Bd-_Py1(b~fJVN> zkK~J7ixC(-FGtbV)~2tiu4cCwA`v9REG;elL^rX1s;r?AIOY79GEE6(ys)EGHxPpv z`y0+W8Q7^03tgx3BQdbBY^Hl0iKXoR>BiSlVKb?}p^W`(xK1w62%A|+m-pi|AebmA zOdJ99V?e!6t~(q=T+J+Z)vxmCm>z|FJF-SU@ZYZ_ylJF)z_*qD5O5W&50xJRv2YqNz6IQQP_- zaxdEo3+ZKBD|A9f83jaIxmFfzc z9pM64=&f$>(X8juFp6w@NJnDMth#Jx)sseCiXXlvIrg0NTI0!-odw5|iw zQQvq#@%i4anO}TzrPyA!r_^nJ`S@-8a^xG93fqvgkn?NlVs{7DEeTNF!e$)E%Qyqh zfnj7Bj?3$00X2mE*60iP(Fu3f9g5iIW2T<_ez`d8Q%-h#7$aEZ$*f@ESgSG}T1gzS z%m0MqPS9cMeshqfq@&MxIfgV^efB8y;W^-!fK>l4;=ic=PXAxig8x7SHJJj1IX~D5 zf0Yk^stVRp^mw?UJDa#E!o+*;@h~NmuDL$!eX+D_L~dWX-}x>;wwEX7ASE&_W?j{B z(*2Rt3|~r|s(&t{FLpYTRbNVOzB_tEwi3pd;6x(#sRhNS&I*~XS=hM#a+RnSm+J|$ zPCxDvZm?_lM3d%tG3kp6EV$Ex6X~c6?~6S=c8}?S`K-i5u%W{Yu*x;UQfX%HyV-Qc zm*Lbnn;ZjclU}Vqg&7|f+izy=#rJ_%-n;Cm7-3~Vi)!J8gYwL&rjbjyn$z=$2EJx) zkA)k|1U8L*153~7%P{Kk#C--kMmSow?B~$EJ8((j-T2P%fWs+Nq=xkNwr? z#hov@UWk>Km=42kC$Zs&j&IEz`<>i24Cep1^K$L9z7VXj5y#$Hw{!g!Lte^1IO$|- zvOcdtvh-7k78+E?_`J5_L%5yR>A}N~=U~k3(qckNVN%cUca|UX9G>T$Q-14<|FQq_ zBG|AjDJnp``B#+%@zhJ~pkGwHnzKZz;+>apv1GiYux&kvEc}^+2xjVyG9n1m6}N-Q5r{|p<_ zPZJU-#AHBf5H=nwS9;c>eaR*_QEgaR2m@#8>j_3R@jp3(@{6>9-0irBIijYy2X-!#HTasw!)L5iNnR4^XcI^xJLYtF1j*(NEvtgWr7 zPQQicPlIqzU52jLFWuc*Hr+Ao1~sK7!1%1KSmmXq;m^ygquvIvn{yO1&FQ2^iTcRQ z)?=gm-^gzt#^9K@J@LwYbO9WpDh8uUkV;pWrBTqJH3=K90f}J|rue&Vj~=;g2j&@V zwXkvFjllN(-%*?&Pd9rT$lcT6>1CCkvw(mK$`E%E57$6y>E>+xO#JsY!QxCtaw(h@ zNOakSiFeAs|7{|$EhWk9)I!pk)LSPJzZ0E>>PUe352KnvgRH^ z+R2ONGuT&RVlt%8Tl0ob{O~#ceSMC9<$sn3e}gq^$~2ovWX6)#Y3qbDZKL1oB#2c- ztbd#WrOG~tG>MSlJjD{8v(dNqeRN=G_#j<3+0qin6Q4Qgyo&XCmj*4k@8iBjIO!td zQt8UbK#r5gI>p?W0s%&Jzaxnpj2z~;5gN7GgU;s9!y)~pn1%Ot9Mp1@r{7@rJjpk@ zvt16b6ZHqv;uvKn4nxw=AM-TWvMi?|>S2b$TrO`f5;a=_vJJS@INWa`3$r6ex|i4? zUoQ_|AQKde;O)iaCB7@cEO=^rE$NZ%+3dz!b$VI(PUAuOu|at(V6XRwLV0bO<@>lu zI-^3UKE0Lr<$711mY!BM9k@4^P2Gnz?oHNR;M&-)Ql>ea%`9pt8%*)J>!H!bhCg@R zcSOU~FUJ(8B|xUR#fj#Xn4|?oC=FYZ@9NcS!LTrwyY)f?7qfzKdM%^w@*!L^YPyiSiZjLcD_|~NkmM{77`#G z)6%wW!e?z8qFY{EwEmaG>3W%gE$L;>l=aR7WpuXN0hGpT``Nv|)H{_0muMr41H zS#1C(F;erWD8E(zc56!ghb46~{V)Wge$CCpGd?qeq-gN=O^jk(L5Y6J(LS$=f`%H1 z{mbl#ET;-t)oY2xZEO4SkzHWVaL_smePw#|$2&)%`+-P6EWXM|A*%kKxcx#ll~!{; z9axpc6{BcWw%zw~^ZdQ0OInjS2>N@X)tXS9k7vViEFgJG*SGZu2mgduTK~kMwRtX5(q>Q zW&*wc5Bb30ZguW2VNCy`NkSle<9sJBUx-o|UtZZ32YYO12>qVHJ;YHi%vGvElr4P* zBT%#T?o8Os_@z=;w0p+z-H*ReCPnv;sh%EbPA;xzuEj6Y1~CMuA&%b+1%H#GlzM8s zBh4+*C()Fwd8&Kl__qfJDUoxaa{hVddYlOTCs!#AJ@Ee_Tl{0*0h>tn)MQ8^X&wIq zN!C~8EIgGeBjY#IT1HC+VV*L3pStzx8HEr2cdF@mYI?`H_tb{I7@D*%4)0L zqrpA=nH)0uFY3?JUH^`%UIJp*e(?gtd7nU|vaQOG^_ept5fKBvzFMSI=JWx*H$-`ySZ z_p^XsD0S)n=F^fBpeLsyHBh?zWb3^&L+<(0*q`dTe|gj=n5GuHrVD^A$zYzU%&O zni^$5^hY;~d9$e!@>1>lCwiqcs1)ZDQ&d6%EihHY2b%2##V$}g0^a$O1A6sYck7f2 zND#W(_bIZ}4g3_`GO!Hcr>{^uv+*G>CD9dJnt*pP*uqG~ z7q-@N2HB(IZ!ApQThWG#D-40}Ul)c>l3glT8ps%|C{%kWYnSdfa_<7%4n^Yd`V(S4 zBu0F!vc1SamN1m}FeuL;B%r(CqXzvZuT<-j2`JSyh>*#puw2UxLrqgt z!PfShV0u8C-EgeaTLZ4My#QOg_(pDW9$+IU3+gVF^+y3~HH^divyBNnoWzk5<)P1* z;F6XfbTWp^W%v6TB~jvKmvxIh=X$jx%gd2{U;WOvhZX4Fr^mS*%yc|nFN5hgR~ZbG z6?x+&lnNgDZ9s4J-tZZWrjikKE$(hF`FS1t(4yovqN1VFt8Kt#W#i2ODh1cl*b~`_k^;p4JX*$L}5Rl_&qq+R&h^sTn$+3;{8b z(b|8)m&o>MqxWCsID#QPj_+_0hSQDrUW1TEN7nGHE?i}j$csm`X4xK%lQ8AZZ##qQ1k%nVX>ex`iwfex zUMZEpcCP@!B#Z05l3cTNo7s)a!6Bu-Y*%%|a=~my_9WU#;Q}s)5!`*|v>N4f1PsYY zcp87-nb7ujcH_LxI5b5Z5x;ptrMASPG-J+Q@ZpOTo(mt)==sAX5RGs4da@yUZ$Wal z@;6JvQUymtQ##9-iLEU3JIqPR>d%BFrM=GHU#lFok<1$Os(OqkeVBhPa7)1*P*sG< z@;`Z3B(_NE_6C`L%qwrDxpZHJ=sP0or|U9nv=QmE)~X%y#XX=LuxV86Mv%xa`L#FU z1sxmp)%9$~Ox5d;9a3$IiGQLd?wm`R;1@W)5w_N6wIa_U)M!peOX0CgP)ZlHV*K@a zsadBH>sIvT2Z?-AH>5lF2WFB6th_-boM>BHg$T-U=jHnv#vOG*-kC2O22PYm3lcVq_LPtTBvMy$8S z2O)1{&8yelQoKV1I6C3~TB9*He03!Og7r@}SY|GMkd*NYF`Cjh6dP%505cIyt>ZKH zw6Z*m5VX?DUe~^oYSu-1sP?<8%FIO%tIUYP^fSXvG&EM{1nNtP#5})w?+}N!ml7r9 z2x`BvD+X$tTfwIbEe3xC_9J3Ccc8>U4NB`GXS6}3i{9@1cc)iqXD3Dr%_jx45gzxl z7Z@YSJ1fE~%soIXBo1`02`Fs=(5cAijQWR`ZEkC8dOYTKtmD3SOsyyP$1CiExf%ss z*q&V4PKXvk>D%EvnhyNzT6lH}V|)p7DdJb;YUGRw@^i+I%u)$4MhukZaIkHxh_wAe zVvx*{cCts$`4CSeYoNj$|9}E7!?^OoMmJtUZr-)+Y~+kD!^7y+V{25R0q~F9&9!Ls z0L|>TLdzR_WkU5CfYI^mGy^a7jQuXei>vz`o0G~zb>cRVyE{k@Soy8afOVIn>f9F= z(PLnO%)~fjC`;llL_NIJsu4E-L}WHyW)RbtdG~fWUC8MX4QrkJrG2( zi0p^(abv8Q;eAVk_Lz}lr zxtu)jalpB!`SXr(3YF47VGX^HIgSp^hU~xX1Wzvr`nNrgyk@^#fAP_xG(c)fQ<{zB zye%=n<0QN>&Gx4-RuN5pQXoA!U-qS3i9l_@<596HPZ>s#g|6!swEzNm4X32dBDR~MlE6TqxmSPG>beYYS~|;zv}4J3+8<(?d}e;Q z@{wpGcYidFwLe^R99?_5D^Qx<2Fbi()aFVlYTZscbfZ5(SAlkHE9`6&|N1OhM z+z`0tGrRM3H3q`^Ic*5cQaVVvsImZWWM+7+j)`=n?L==n90EVW-}XAfvbHzt7)e!# zWv#@GTJ6TfaZd!S?|UyVf*8V|=Bkt$+Q`?|jR%Ns3em5cUb7+|wV<2l`*$MRCA9m# zAhsp65X*_YE#)1D=U;XNqh)z=Lvbr!)Z?0|@cO1GZ|H@@Am{j+t}xm^&Ic;&JS1W# zcbM>AQ#fn<@nc$v$+JK30a%^%gF5hiyYzRy_?43kL5VaW9hW)Qth~_urnIvYcGs2@ z9?XwJDwWIW_$HeCo`>gA1RzH?{RZr8oRyaKmD7%VHX4Y8LY*SaVv4 zae>0E08gpe3?l1-MI7bUH~auJxLsf1NsjD|oV^e~A99+JmjUeuvKK)nOFUv%qNipR z7e4UVXqf(kh_%sM>o!L=o5LHmA?4%bTCGMa=puQPV;i~3#bERm;PgZ2t9(QPIrw~m@*W`&AT z>}9d00??c<8xU@Vi@np_BFLs7%MPGVZ$Sgd&F;JT{D%z-pB1`zZ}#?c;Ks)jwg4x( z_Gv^XD4yy1D!A!2l|i%*7H=gg;$2n&nK`R(*~j`V;lg==q8m2o3`4m-;&e&U01cDo z=;GI)$1Ao6004pc`M&^FT!cSNOjbnwgb29!u z07Fo*$}5ZnWyw@D79WIV{z4HD@QZz=YJWgzxi3>C1viHIEd@BMWbLaO+{ASIw+xB( z;HX&8hHssP>Z(9vRtt{l82$>e;@YIq^vGJ^0Gt0Wr`Y;8LO&)3U}fb12yb)0qfk^ZHIAILHUi|5j7WM$^rnHZ<5+8p=QZK>0J~8 z=WC>pYJnMhIh2e6#cgnaWW8B#wCf6XTplOg_wzea&X!C2t$I~^D08X@j_QXMY|seE z-+=uMAOfz!#m@_1dSJiK^O}YXJBOkc-87q)q|G=*?P$l3f`KqY$UkI^Q{MVD4Z_-o zSVFR(A*dwcy#;nkYr5zJV^C6eOo@i)k#v$1L#{r&!Do7(fL9b8>7Y1@PhR}!+aRlJ zbO~B^v?7PE{IT#CH$i>X-J>&k%;IW#<1(`uP08asE8rW+LaAL~D;gxZOCZ)v`(pG;(eH2CasL<2+a_sWT=DL#qUi?JA562q9+7I~F# zk_%d5MSW1mzRPmO7#l0!o{mR0H3pQm5-3f&j8Bnuj?p;no{M3gG@-~Urgv>WB^fhk z5(iy*R7goNr9C_W5`dTOgqEL99m>Yuzvr5W$8gy3Abk^mzhXxZjOSnJ72T$m>G)>O zYnY2hZG-)AWT>5lDnVu`m6?vQ z`HYVyXMcQM!Y4+BhTweoMQ-Lb*gRNMpbIcMvP7EMLI*$}S>y|7Lsd#Y&O5h;<6lO% zKlqp!b6W;K?VY%B*T3O?%R247S#K%e{1%{sW#$jH-8t|bqLq#CzcRFk_$FVAc81E6 z$`GNk^=>l8=yzkjV}w?D7^r%ZTwFRktd)a*+QpQhH7*|7mt}=kp|e!iU2x3I%N(uo z>(dA^8#IIsO}$EB4WJ9rAM<~&eHKXdP+G5GQc)DnE5q!`XP`sPOK9mIbOr~#6T|#s z;RPY69*6n>t37}x!y}irfP{A)O|e@NhkbrNL!ed2ITjuQ`lj*|Txu!29)43$C;i%L!z;#$chbGm|nv%OL7(7R< zS~5_^(31i3+(IODBZxp_Joj8{>z6}(8)0LFQnYM9yUvSiH|gnus#QnQ)T&PQMp=o(k3;mT&CcJndaw0KhjpB^l|`!%CqrvB9hL#yh31{YvM4RDcSc&0sB- z4Ow1q_Ty~Fzv{bT{RzSMAESaKPNxG$KTS?n=D*-S6(??)Jb+5Pw4UZJW4t~4@-W(^ z%6_32kI1X&i4>Q}5Py^Q%LB1(rGuAVmh|q%n528!QS2#SpVg#R`%)K3q$_9Gk0$)F z+GlJ^D|$OD`;p*~hJSdH-g+eN8J`4XgH5NGg5WK{+d$W>Al&*OO``i7WwG9e10PJ` zI;m!h(d(%gFSiwP{Njl>86b|~<1CxpHopGl?)oA=mZ{j9-*kSa`PMej39-V+RO0;5fuWo_5{K!>yHk0=Nz=Tj$ zkbU8sy_e&!_u@Qbpp%edon487%!+l@lQWa+bNp0#R!oBck=ke&{dD+qhqj-u&Q*~E z+rLw()-p5gYSpFI+oVR+b*m9DY5pGMb(7 z)C1PjcMQ*su(erS$~ewl8oj<<7(YZe^+Z5IS(DX%x|ss9q}-f<+++d(R+PtOr6D6i zXo>u92dJrsv!-CB*82@SL`?L@f@{;Au+gy99y)w{eC9YRDk{#~&a3URnrkR8@3EVR z%e#&N1VaiMcREjO>zkDYaeIa-u_40S-(ZUQU3^+2NOU2a1SUI~IWYn9nVhsgm! zy{CEtkNDDwt&01f#yQ*VAroEK@5su^;*5-shcCD&zo1zPu5WBCDk~$&$jDGpRdr`_ ztT&ka`IEB@JUl$C2Zwh=?+qq$Y;JAIy0{1s6B9Fex0}R6q%UM%QEtLNTVq7&HXA`g zp|?J_ck`P;-%JQcReYHJhjE#1)l4YCc|rdEt<+#!gp1DuBq8b^?(-Ly1s$@WgRaFT@$lQbkpmsLqlW3v@z6VuYTqcP{+4zn#`!K{Z+R+p5m!lStJOEQxFoGkd_t^ z6%|!=+u5i)Qa61xp{ajE*opnNFQw6EFs=mr##hGM6i)co1E9E}NW{g(Ayno+9~1KO;-jL7W9~_aI$`9N2^|Q1Dci1i1oysFE%>vFNb1P5 z^0dx_QJNYWO4tDCiGR`x4Iu9N4cgRHO?zA0`on@`SB%Hc&yVSgH}>c5W$~YoZ0_tF z|4t(O-F<#`7QWkA{Q+XZ(>A+sxgj^WugvG{>%XHX#)uGc(U6Vd{J-G%|BiHd4AouE zmn;HlqnEz&v}TRZI=OEpf>NdAAF)9=5v-+GZclj)h)&24D+kEA%B9{iT$~x2xmWBQ zQCH%R2azz{xIN{dj8Rts*xXJ<&__3oxz^N`Ueaj~(?ZYdbFV?8c&xv0o=fpz(17E< z>7Nyteff#q)fS97c>xo3hnMr*Ho;=4BT)L5kQ33<>3-V^&U{ynTP?g z*k|AN^Mn*^1b$6*#%0-+8@y#fxB@glx>#V#+RU+OV3<#x0apolYQFQmbx8~k&`S!x z=1<$LGHzJ=eI%4#{Dxo^BWl{+f2UbpgR)$&I;6O`I9P}vZcTG;VIg*L(S(zmn}e5k z#NA0=9`vfhXec1Es}dl`D2?=9V>4j03zt11K>9nVzVa%Hy1S6&CS$HWo`v92etgQb z`xE`@AvJ7FH z_j{9}9bG~FeQf9B5>h&Krh}usBT`Zqs-@)jZ=!XPJEwksQZcv(vBsCa-0Y+?q!(_tBYJ?aQKT^KMCDSCjE>m1$Q?-gC~I z+uPmE9w=O@;0fN{Mqw4QAf44^b01|aBP4Yl@N6tTixFkegxbng`pMI3y(AmWn}8Ab z_W!N?@f~qs!X0nwPl`F+JoS^Qn?US+Da-cu*%*^QZhNajSmoyy6!O^IL|O2fWNy*mnJm*}3$xA5kI&M}+o$gh#yVo4dNt zFHbczhPl#U^1@~_sN&J+g`6Nb$;Tk&3SRayvh$EVeP`O8}`RIkS~B?FvAt|U!Wa0R7O4vvDF zh%7&@37l5@u+t{+zOJyEHVu;MMMB@p`o<(5tSo=flr{(QaP-w39eKkGD|+@Y4c`1c zW9;%0-#nSCHVuNUrY&860a;p+kNX96IMmGj9_Cp;U-l4v6Dsk@)2N|m3i7c}*}R{| zR$#CtRk}{n|H%h=yiX;6byqFE*^J%tFZv%y0bTvEjEPrB8=x;PmZI0fcRl6xOy*<9 z?z49Pa~C?K;n!DAOC32LjUX9pA)$baJb3{hHnc5StDVTK_S`zxHbG|;IcwxGE02{WPtJMum z@s=zdFCv@7Y)R{8cFoUmwV_MY3+}TnwI&wTKavWi6gPU5n|cZtT787eer=m;s;UM< zug~`8tf}RGj+`rC+DsNYSGFsc%g~7q1rc+dUCw(38+KcB!JlZC(}{fD1XvqLn92yJ zc1Orv$yrla;E|t68A*TK*R=|2mj-cvy&a@Kxc?TOu<0pIurI($`#>###ZoN)Y|ex( z5$C&9ud&ZU*wW$*ZH=q@VKnG>);*xXWnoxHN2khb=M`53I4U~&Zax8E1mo#1M%zyO z)lVo&(oilBJ6ng9Y~ljTd)!IkA0vD{s?0mRzWngsd9mEM-t|-DwFF?L4#2%C%jg%5 zW%E_5#jB-fJ6zb?9~hjZrlF&&C1Vuz{fZfiicYV06DUm5SR3LZ6aBnh98thFwUmdk z{Vq`GO$J4%T=>}T{jMhkh*5V1ACK8Dd9yMuX_p;UK6&-G9m)Efzbkb**h|w_bAlxS zn13qPBpU*I`0ybGBV#lc2LvxKpL%S>7`FR)#U~HGgCe~%3VzuPn6A?Lx0zO$&rE$a zlCG$DpFbz>Lp8hF(Gr;=0_#}H^7&~xFOR1i)O-`||6U9K zkR|JhLI za5yil&7|_+j@0=B3@XGH5DTOKY@U9tHDQ8Q2(8PsxZ(wt^#Eom~fdk*IxdKt)Bp_h?FTxk(rAj&iVX+wO3J1B zTY5%D3C^CXmHeir^yfL^zfeM4A5!N)9~ka zt;YGSWhAJ%xg*`Zfx&co8;D@G(@Yg|M=?vCYkwIT>fLpHCPjw%%LgnsM`05}pM^80 zz@rc=TU*QScSM_;n_aWDwv%&n(c|M9dVI8LYq*~=vs1M*(!)0-VA(}a<|d(iex`%r z4-JhQPZup)J%^6kHm#SxPR@WXdQ2fJaZuS<5%0aQ){Ltv;w?%cADGC3^-}MpM z=Yv?VAT9&pAf+F7OP*u;&Z~~bC)lhB5zLdc)nUgMY@2&9a(62A7tm%1mwGw? z2z;$u7+=cS-QV|SI&dEHuDeR3zIwd*V7)hzy6JKwtGP%yeieIf=j`0K{j03GqC&va z%PUwYys(g6W7}pSW!Y4qln^WQPXA}T{9jZ~B+mP8{&JScLX5}&c!RQqgoT8JAcW=c zvQlETXl035sV-+j`wS1cIXMwR6NMomxLl3kzr5ppP=}_ zy0;Pe;*vU~J?lUpYL+sl{2Gliw66 zN#T0GNC&C|W4)SMzl06(gp7R(NKL=P?;W2@Eh(&Vowvpw?FGOK^*L@}yQ?VUF*4&p62#7|@6m zUNLT8xqVu9N!=(y%MzI>A1LmoOVZEpxmXj?RdcKqMi`T0C0Yi>E)fwCRxAEf3A0Y# zOw@Po;A4g4*_k&s)%i=jRKZeY_$IwsK8sKzjrnpmQDiNO1GP6`1aSf$Ub7I;-QjKx z5+E?U?Rr;8@0ms5ws)g2!?Jd6oBlw&VQ)pPO6)D8agN47A!R7e$=X>ud-h$ymDb2( z?c6m33<1zE96>puSbF@G<3mmUeAI$_r-tsJ#DHw^EV(0-OZ-B5ZPvQZN0z0e~ z_D@tM^#u@Y+C=vyT79mrro`&GrlW91CTn16n=w|Y^w)OP4Y5kG9W<)}@5j;%YetsH zT7BgtW=vHDi zxfGQv(AJgwNc512G={N5DQH4fA%6XK?%MD$F8-LXp0s68MzrDHU_VRzv4jUWs4_4+ z78aNhVadg6S#u0ou00M{GdE`&868!q?F)fwW*>sl$;mV#hJ10$bXsM<1cwDLQ-8A* zwd8I)Lt z@q{8Fz(jIDoDbAE3^k`&(6+`7_o*H!fpkhC#9-IYpDf^cSaO(Li_P7KU3cRLz|XMO z5&pP4eY1PncwJcv+uqqp%+B5wYIARl9{J_)n3Mpty0+GHcEFEQ{^Yv$GnvdoE$t&F z3rovjLEU459ZUg%w2*V3#~qc}ShDHBZ)k3*IfSa)6edF62or8Q2gLMv-04J}mmIDv zl>p(`<%0fGu20Xf?F?h)_SrCHoUAe0Ob^l}H26=@=FPQwtQgJZ?5(zzRu@*#AANrY zb?-i&ntJ71Ti?(iS2^vmGxgQ7`&cWG`n5D1KS2nY5wYM&Ahwtp@%(8@LJbMll{3C5 z)L=STvI^w8Q&~WQU}cY-VAJ~X))w(^)?^PM47+Xs%|6Js?dpW4U1(?rWUK$CdiEN@tKR ztHV)99tCud>#;og=0XkCalP*mfX1}jM@Eb-bOd4Gvz;I;W~M5PNr3s~2%WJ`OU|)%=XVNRDIp6b5mv0ay$>U3C8$67rT?zb&ZJ}!dI z1Hvfym9+XNoYB0r_XBYLL>4q!t@pn8!VnMQd(u}v)ET3e#|fUuwg@28o;X3iF$TX6 zMoMi`Q&Zz~DFPO#RDH~5`0CMG6bv;Lr?gItzHLoB>erc$9XCw3zG-4pT9zCS-zOP~7TZrOjptx*ms zFXuDz`t?%a^J;BP4O1`}P*qi>7q(IV7DD+UH#cslqLsY4xjF8bK!=MQ?N%dC^3x9a z)nO{XrG?>PN>pShI({}_`xwclrGD!X$t{C{$5lA+F^>9NCG1)$x+snLaDA zuZt#r9*gwo&4tCHv=$lg&jy6Y=GvG5;VP?!np(&&hrZ%xX+|Ms1qC>k{V}peM%l_T z;qtb&+;J?h{lC8rGu#5@AjpGQR>)%mw=!}^z1Z0pY;oA_Bx?DxmVlR3oUh#EJ(5W1 z%tRMLCITPd=q&;M3{EW0%`qPKDRg%-@h8ZrZh32@6N2S)GK;t+`!N=+>*|JjJ^5Zc zQ`J~c4D5u56AXA%FF4c}*49#|K}`t|Rf<(uOpFIwE64OXzh?e?PMp_nL~Z8oHa$HJ zG9VLd0!=%=UW)I`yCq?6wiHGmPJU1?n#B9_A!&^OaZL>Aia!X8tax!3Nc*dW$4U-2 z_kU2Z?$a1e`N$L0wLX$2pGz3SiKW9?4j-rfr3rK&{qL0yJVkk_ z|D~7<*t8H>h2eiAU^iW1e8QNgO@0dCXc-s`_hMXmS??2Dcw&u_x3}lXdg{UT4kioM zpU1ayr&GZzVxmH@sHv$nwX}!>h%p-vFj8EadSt^Pq0g9pgO{^A7>|Mz+pM&6bd(?N zQ(}@{h_Uu~>14G7R1ur2)f@g2x0)OdWXdFE1?xKYsk!$k~}cOUnN&VS(oANXlU17N^b1EC4;$L)lu9A#7V%SC?FDiIQoeV^vCrd^B?Et!ZXx^ZYVRc_Erbc64-9 zT2=hP%5HaUtia2@%+4|S2PJuo*MK{++q3oXa#D{ zXLeWp8LUf8uLVKPe^adAg4iEnVvx94hD3b-uEQni?d>gx{o=+v_krcC5gB=&ixSq~ z15`Xhe&BM#2VaAa*zUY}^CtbmN22UJ(Vfs-QqVEh6^xIz%{!q#Xa?2z=jBKDRJv`kK4aI-}Nr4bkg8NEP9HM+B z5&@K#u&{J*<6*1Mfj3^@WZx{19U@~NTaL_=PIoYwFEngHoGAF>bt1U%*&<~me^$>r zrAxl8DN>)g!2z%>KcH)F%l<;x59~|M`X0FNfTGy+684U-?9(Y4HW!xuh&yVd5B)yp z);}$%OcC5TR4pNQNWv?L^(a3-KZTRrH;@~V(~5vwou7tT+?U5*C8 z+ctNFZt&(or7s>f_#BvEGa<;Z!3i06PXYjHZ6`K{M@DA9yeva}XDBzQf0(~;iMw(h z6gyA#N#g$f``NxjI_V_u4dE+dM~(%k{Go$Q&eHjOERTOSebRH0K}-Lx%sdHLp6iH!7Mn)WpL%?PsI73}vqFvf>=rJd Ms;Hq*A!ioy9|~}0*#H0l literal 7080 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 M3hGbca^@lb0bcn}w*UYD From b41b1fc2f3c101e83176a7bab53a65b489b526bf Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sat, 15 Jun 2013 04:09:49 -0700 Subject: [PATCH 16/34] Armalis simple_animal/sprite. --- baystation12.dme | 1 + code/datums/mind.dm | 4 ++ code/modules/client/preferences.dm | 4 -- code/modules/mob/living/simple_animal/vox.dm | 54 ++++++++++++++++++ code/modules/mob/new_player/new_player.dm | 6 +- code/modules/mob/say.dm | 2 +- .../projectiles/guns/projectile/bow.dm | 9 +++ icons/mob/vox.dmi | Bin 0 -> 4156 bytes 8 files changed, 70 insertions(+), 10 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/vox.dm create mode 100644 icons/mob/vox.dmi diff --git a/baystation12.dme b/baystation12.dme index 78f5814999..f002ef969d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -1002,6 +1002,7 @@ #include "code\modules\mob\living\simple_animal\parrot.dm" #include "code\modules\mob\living\simple_animal\shade.dm" #include "code\modules\mob\living\simple_animal\simple_animal.dm" +#include "code\modules\mob\living\simple_animal\vox.dm" #include "code\modules\mob\living\simple_animal\worm.dm" #include "code\modules\mob\living\simple_animal\friendly\cat.dm" #include "code\modules\mob\living\simple_animal\friendly\corgi.dm" diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 175e622788..4984b98283 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1220,5 +1220,9 @@ datum/mind mind.assigned_role = "Juggernaut" mind.special_role = "Cultist" +/mob/living/simple_animal/vox/armalis/mind_initialize() + ..() + mind.assigned_role = "Armalis" + mind.special_role = "Vox Raider" diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 75ead11e4c..e6a76d88e8 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -792,9 +792,6 @@ datum/preferences if(is_alien_whitelisted(user, "Skrell")) //Check for Skrell and admins new_species += "Skrell" whitelisted = 1 - if(is_alien_whitelisted(user, "Vox")) //Check for Vox and admins - new_species += "Vox" - whitelisted = 1 if(is_alien_whitelisted(user, "Kidan")) // Check for Kidan and admins new_species += "Kidan" whitelisted = 1 @@ -806,7 +803,6 @@ datum/preferences new_species += "Tajaran" new_species += "Unathi" new_species += "Skrell" - new_species += "Vox" new_species += "Kidan" species = input("Please select a species", "Character Generation", null) in new_species diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm new file mode 100644 index 0000000000..e73249f2bc --- /dev/null +++ b/code/modules/mob/living/simple_animal/vox.dm @@ -0,0 +1,54 @@ +/mob/living/simple_animal/vox/armalis/ + + name = "serpentine alien" + real_name = "serpentine alien" + desc = "A one-eyed, serpentine creature, half-machine, easily nine feet from tail to beak!" + icon = 'icons/mob/vox.dmi' + icon_state = "armalis" + icon_living = "armalis" + maxHealth = 500 + health = 500 + response_harm = "flails ineffectually at the" + harm_intent_damage = 0 + melee_damage_lower = 30 + melee_damage_upper = 40 + attacktext = "slammed its enormous claws into" + speed = -1 + wall_smash = 1 + attack_sound = 'sound/weapons/bladeslice.ogg' + status_flags = 0 + +/mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(O.force) + if(O.force >= 25) + var/damage = O.force + if (O.damtype == HALLOSS) + damage = 0 + health -= damage + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b [src] has been attacked with the [O] by [user]. ") + else + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red \b The [O] bounces harmlessly off of [src]. ") + else + usr << "\red This weapon is ineffective, it does no damage." + for(var/mob/M in viewers(src, null)) + if ((M.client && !( M.blinded ))) + M.show_message("\red [user] gently taps [src] with the [O]. ") + +/mob/living/simple_animal/vox/armalis/verb/fire_quill(mob/target as mob in oview()) + + set name = "Fire quill" + set desc = "Fires a viciously pointed quill at a high speed." + set category = "Alien" + + src << "\red You launch a razor-sharp quill at [target]!" + for(var/mob/O in oviewers()) + if ((O.client && !( O.blinded ))) + O << "\red [src] launches a razor-sharp quill at [target]!" + + var/obj/item/weapon/arrow/quill/Q = new(loc) + Q.fingerprintslast = src + Q.throw_at(target,10,15) \ No newline at end of file diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index f2859af519..7f1dbc9f31 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -349,12 +349,8 @@ if(is_alien_whitelisted(src, "Skrell"|| !config.usealienwhitelist)) new_character.dna.mutantrace = "skrell" new_character.skrell_talk_understand = 1 - if(client.prefs.species == "Vox") - if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist)) - new_character.dna.mutantrace = "vox" - new_character.vox_talk_understand = 1 if(client.prefs.species == "Kidan") - if(is_alien_whitelisted(src, "Vox"|| !config.usealienwhitelist)) + if(is_alien_whitelisted(src, "Kidan"|| !config.usealienwhitelist)) new_character.dna.mutantrace = "kidan" new_character.kidan_talk_understand = 1 diff --git a/code/modules/mob/say.dm b/code/modules/mob/say.dm index a0b765d8d4..2ed7f47a10 100644 --- a/code/modules/mob/say.dm +++ b/code/modules/mob/say.dm @@ -81,7 +81,7 @@ if (is_speaking_tajaran) return "mrowls, \"[text]\""; if (is_speaking_vox) - return "chirps, \"[text]\""; + return "shrieks, \"[text]\""; if (is_speaking_kidan) return "chitters, \"[text]\""; //Needs Virus2 diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index 4c5c0c0b1c..5981ae05c4 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -13,6 +13,15 @@ /obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart.. return +/obj/item/weapon/arrow/quill + + name = "vox quill" + desc = "A wickedly barbed quill from some bizarre animal." + icon = 'icons/mob/vox.dmi' + icon_state = "quill" + item_state = "quill" + throwforce = 15 + /obj/item/weapon/arrow/rod name = "metal rod" diff --git a/icons/mob/vox.dmi b/icons/mob/vox.dmi new file mode 100644 index 0000000000000000000000000000000000000000..6f0172bba7013eb7333b0debc4a8f8a1fe9a9e9b GIT binary patch literal 4156 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 Date: Sat, 15 Jun 2013 14:18:40 -0700 Subject: [PATCH 17/34] SHUT UP SPAMCAT. Bow fix, vox raider message fix. --- code/modules/admin/verbs/one_click_antag.dm | 2 +- code/modules/projectiles/guns/projectile/bow.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/admin/verbs/one_click_antag.dm b/code/modules/admin/verbs/one_click_antag.dm index 099443ade4..8bb15c1cb3 100644 --- a/code/modules/admin/verbs/one_click_antag.dm +++ b/code/modules/admin/verbs/one_click_antag.dm @@ -480,7 +480,7 @@ client/proc/one_click_antag() break new_vox.key = theghost.key - new_vox << "\blue You are a Vox Primalis, fresh out of the Shoal. Your crew has arrived at the NSV Exodus to begin pillaging! Your current goal is: \red [input]" + new_vox << "\blue You are a Vox Primalis, fresh out of the Shoal. Your ship has arrived at the Tau Ceti system hosting the NSV Exodus... or was it the Luna? NSS? Utopia? Nobody is really sure, but everyong is raring to start pillaging! Your current goal is: \red [input]" new_vox << "\red Don't forget to turn on your nitrogen internals!" raiders-- diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index 5981ae05c4..6a8c3510f8 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -77,7 +77,7 @@ user << "[arrow] plinks and crackles as it begins to glow red-hot." arrow.throwforce = 20 arrow.icon_state = "metal-rod-superheated" - + cell.charge -= 500 return if(istype(W, /obj/item/weapon/cell)) From 198fc21337436ef20063733c663851a040b543b6 Mon Sep 17 00:00:00 2001 From: jack-fractal Date: Sun, 16 Jun 2013 01:03:37 -0400 Subject: [PATCH 18/34] - adding Malsquando's cryobag reskin --- icons/obj/cryobag.dmi | Bin 3399 -> 1339 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/obj/cryobag.dmi b/icons/obj/cryobag.dmi index fe543fad642e06a19fd2ec546c87169f60a413a0..68255b8b2c3207d43840b79772a390855989d93d 100644 GIT binary patch delta 1331 zcmV-31|NqSY z|HkV5b8~ZjeSL$2gOHGr0RI3p%x3=pGt4tHz`(#+!TE8?`G32+yQrwBN4oeeu=fj@ z<`AXzC9L%amEa+(^+>w+VZ!*5*7~BNqE)~7H?;SK(fXjEpoWHqcgy*dl$4Q?k)xxd zuCA`Ft*!i_Qu+V@00DGTPE!Ct=GbNc004}7R9JLGWpiV4X>fFDZ*Bkpc$`yKaB_9` z^iy#0_2eo`Eq^M`%+FJ>RWQ*r;NmRLOex6#a*U0*I5Sc+(=$pSoZ^zil2jm5DJegt zGAS`VJ~=19I5ovkiHkEOv#1y-W5~ssR+N~V3SncYPs`6qNlhVIImCFPmFE|v<`J#9 z6pzWu3a)-G;D7-DM&VVAiJqHc000A;Nkl&B}HMwcUSyA{n2BA^&S?RY!iJGziu$HN@B#T;0w6}W`}U=QK;yf=~@mvg`i z_Qo*Fm}DdjNluXVY8QE)ssqjOXhj`V%cuhqiP@Lyz|)lsv*wlT$x?3M4*=EV zs48R($2KZixS_wtSIhI7&0PX?FS@JgMMOrDchffh`WVn1iI7t073V=4{~V*1s{X{f zaH2I}{L}cGZo28FhPv)o9PmvYCr#5VOMgFvD0M@)6cp{zSSrgLrzHY>sXCYtF`2-% zre{3hIN%?K;dDBi&5^KZH*sp*?K|9KmLalc=~w6_PG`=0xkBar^Td9!G| zPmTLMTZ8fl&X!0V zOSk4OLPGHNb~@oseSOCTYE@`?9VFO~f=tX8bFi9H|>dT+ABS~P%LV0Z(s`N p0k$OOUmn+zVV-EdU!MQ}slV7%eRFB}3!?x4002ovPDHLkV1f>ingsv= literal 3399 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 From 23299809f6113ebecc68aa2f754f214e739f791d Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 16 Jun 2013 00:38:40 -0700 Subject: [PATCH 19/34] Armalis sprites, simple animal/mob yank-out verb and embedding. --- code/modules/mob/living/carbon/human/human.dm | 107 +++++++----------- code/modules/mob/living/living_defense.dm | 12 +- .../mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/mob/living/simple_animal/vox.dm | 36 +++++- code/modules/mob/mob.dm | 63 +++++++++++ code/modules/mob/mob_defines.dm | 1 + .../projectiles/guns/projectile/bow.dm | 4 +- icons/mob/vox.dmi | Bin 4156 -> 2676 bytes icons/obj/weapons.dmi | Bin 18680 -> 19612 bytes 9 files changed, 150 insertions(+), 75 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 05f4b222a8..02fffec17b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -1119,8 +1119,8 @@ del(feet_blood_DNA) return 1 -mob/living/carbon/human/verb/yank_out_object() - set category = "IC" +mob/living/carbon/human/yank_out_object() + set category = "Object" set name = "Yank out object" set desc = "Remove an embedded item at the cost of bleeding and pain." set src in view(1) @@ -1137,89 +1137,62 @@ mob/living/carbon/human/verb/yank_out_object() usr << "You are restrained and cannot do that!" return -// /* var/list/valid_objects = list() var/datum/organ/external/affected = null var/mob/living/carbon/human/S = src var/mob/living/carbon/human/U = usr + var/self = null - if(S == U) // Removing something from yourself. - valid_objects = get_visible_implants(1) + if(S == U) + self = 1 // Removing object from yourself. - if(!valid_objects.len) + valid_objects = get_visible_implants(1) + + if(!valid_objects.len) + if(self) src << "You have nothing stuck in your wounds that is large enough to remove without surgery." - return - - var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects - - for(var/datum/organ/external/organ in organs) //Grab the organ holding the implant. Messy as Hell, TBD: fix. - for(var/obj/item/weapon/O in organ.implants) - if(O == selection) - affected = organ - - src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." - bloody_hands(S) - - if(!do_after(U, 80)) - return - - if(!selection || !affected || !S || !U) - return - - visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") - selection.loc = get_turf(src) - affected.implants -= selection - shock_stage+=10 - - for(var/obj/item/weapon/O in pinned) - if(O == selection) - pinned -= O - anchored = 0 - - if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. - var/datum/wound/internal_bleeding/I = new (15) - affected.wounds += I - custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) - return 1 - - else // Removing something from someone else. - valid_objects = src.get_visible_implants(1) - - if(!valid_objects.len) + else U << "[src] has nothing stuck in their wounds that is large enough to remove without surgery." - return + return - var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects - - for(var/datum/organ/external/organ in src.organs) //Grab the organ holding the implant. Messy as Hell, TBD: fix. - for(var/obj/item/weapon/O in organ.implants) - if(O == selection) - affected = organ + var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects + for(var/datum/organ/external/organ in organs) //Grab the organ holding the implant. + for(var/obj/item/weapon/O in organ.implants) + if(O == selection) + affected = organ + if(self) + src << "You attempt to get a good grip on the [selection] in your [affected] with bloody fingers." + else U << "You attempt to get a good grip on the [selection] in [S]'s [affected] with bloody fingers." - U.bloody_hands(S) - if(!do_after(U, 80)) - return + if(istype(U,/mob/living/carbon/human/)) U.bloody_hands(S) + + if(!do_after(U, 80)) + return if(!selection || !affected || !S || !U) return - + if(self) + visible_message("[src] rips [selection] out of their [affected] in a welter of blood.","You rip [selection] out of your [affected] in a welter of blood.") + else visible_message("[usr] rips [selection] out of [src]'s [affected] in a welter of blood.","[src] rips [selection] out of your [affected] in a welter of blood.") - selection.loc = get_turf(usr) - affected.implants -= selection - src.shock_stage+=10 - for(var/obj/item/weapon/O in S.pinned) - if(O == selection) - S.pinned -= O - S.anchored = 0 + selection.loc = get_turf(src) + affected.implants -= selection + shock_stage+=10 - if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. - var/datum/wound/internal_bleeding/I = new (15) - affected.wounds += I - custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) - return 1 + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + if(!pinned.len) + anchored = 0 + + if(prob(10)) //I'M SO ANEMIC I COULD JUST -DIE-. + var/datum/wound/internal_bleeding/I = new (15) + affected.wounds += I + custom_pain("Something tears wetly in your [affected] as [selection] is pulled free!", 1) + return 1 /mob/living/carbon/human/proc/get_visible_implants(var/class = 0) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index f7b2caecae..14137f0e84 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -77,8 +77,10 @@ if(!O.fingerprintslast) return + visible_message("Debug: checking client for [O.fingerprintslast]") var/client/assailant = directory[ckey(O.fingerprintslast)] if(assailant && assailant.mob && istype(assailant.mob,/mob)) + visible_message("Assailant has client: [assailant]") var/mob/M = assailant.mob src.attack_log += text("\[[time_stamp()]\] Has been hit with [O], last touched by [M.name] ([assailant.ckey])") M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with [O]") @@ -96,8 +98,14 @@ if(near_wall(dir,2) && W.w_class >= 3 && W.sharp) //If they're close to a wall and the projectile is suitable. visible_message("[src] is pinned to the wall by [O]!","You are pinned to the wall by [O]!") - src.anchored = 1 - src.pinned += O + if(!istype(src,/mob/living/carbon/human)) + O.loc = src + src.embedded += O + src.anchored = 1 + src.pinned += O + else + src.anchored = 1 + src.pinned += O /mob/living/proc/near_wall(var/direction,var/distance=1) diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index f7154694f7..74bd81ca93 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -96,7 +96,7 @@ AdjustParalysis(-1) //Movement - if(!client && !stop_automated_movement && wander) + if(!client && !stop_automated_movement && wander && !anchored) if(isturf(src.loc) && !resting && !buckled && canmove) //This is so it only moves if it's not inside a closet, gentics machine, etc. turns_since_move++ if(turns_since_move >= turns_per_move) diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm index e73249f2bc..55226823cf 100644 --- a/code/modules/mob/living/simple_animal/vox.dm +++ b/code/modules/mob/living/simple_animal/vox.dm @@ -8,7 +8,7 @@ icon_living = "armalis" maxHealth = 500 health = 500 - response_harm = "flails ineffectually at the" + response_harm = "flails ineffectually at the" harm_intent_damage = 0 melee_damage_lower = 30 melee_damage_upper = 40 @@ -50,5 +50,35 @@ O << "\red [src] launches a razor-sharp quill at [target]!" var/obj/item/weapon/arrow/quill/Q = new(loc) - Q.fingerprintslast = src - Q.throw_at(target,10,15) \ No newline at end of file + Q.fingerprintslast = src.ckey + Q.throw_at(target,10,15) + +/mob/living/simple_animal/vox/armalis/verb/message_mob() + set category = "Alien" + set name = "Commune with creature" + set desc = "Send a telepathic message to an unlucky recipient." + + var/list/targets = list() + var/target = null + var/text = null + + targets += getmobs() //Fill list, prompt user with list + target = input("Select a creature!", "Speak to creature", null, null) as null|anything in targets + text = input("What would you like to say?", "Speak to creature", null, null) + + if (!target || !text) + return + + var/mob/M = targets[target] + + if(istype(M, /mob/dead/observer) || M.stat == DEAD) + src << "Not even the armalis can speak to the dead." + return + + M << "\blue Like lead slabs crashing into the ocean, alien thoughts drop into your mind: [text]" + if(istype(M,/mob/living/carbon/human)) + var/mob/living/carbon/human/H = M + if(H.dna.mutantrace == "vox") + return + H << "\red Your nose begins to bleed..." + H.drip(1) \ No newline at end of file diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 6e9beda1ba..8a7a63cf55 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -895,3 +895,66 @@ note dizziness decrements automatically in the mob's Life() proc. /mob/proc/flash_weak_pain() flick("weak_pain",pain) + +mob/verb/yank_out_object() + set category = "Object" + set name = "Yank out object" + set desc = "Remove an embedded item at the cost of bleeding and pain." + set src in view(1) + + if(!isliving(usr) || usr.next_move > world.time) + return + usr.next_move = world.time + 20 + + if(usr.stat == 1) + usr << "You are unconcious and cannot do that!" + return + + if(usr.restrained()) + usr << "You are restrained and cannot do that!" + return + + var/mob/S = src + var/mob/U = usr + var/list/valid_objects = list() + var/self = null + + if(S == U) + self = 1 // Removing object from yourself. + + for(var/obj/item/weapon/W in embedded) + if(W.w_class >= 2) + valid_objects += W + + if(!valid_objects.len) + if(self) + src << "You have nothing stuck in your body that is large enough to remove." + else + U << "[src] has nothing stuck in their wounds that is large enough to remove." + return + + var/obj/item/weapon/selection = input("What do you want to yank out?", "Embedded objects") in valid_objects + + if(self) + src << "You attempt to get a good grip on the [selection] in your body." + else + U << "You attempt to get a good grip on the [selection] in [S]'s body." + + if(!do_after(U, 80)) + return + if(!selection || !S || !U) + return + + if(self) + visible_message("[src] rips [selection] out of their body.","You rip [selection] out of your body.") + else + visible_message("[usr] rips [selection] out of [src]'s body.","[src] rips [selection] out of your body.") + + selection.loc = get_turf(src) + + for(var/obj/item/weapon/O in pinned) + if(O == selection) + pinned -= O + if(!pinned.len) + anchored = 0 + return 1 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index c83909fd8a..0a41d0d60c 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -86,6 +86,7 @@ var/unacidable = 0 var/small = 0 var/list/pinned = list() //List of things pinning this creature to walls (see living_defense.dm) + var/list/embedded = list() //Embedded items, since simple mobs don't have organs. var/name_archive //For admin things like possession diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index 6a8c3510f8..ee2e0e20db 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -10,14 +10,14 @@ w_class = 3.0 sharp = 1 -/obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart.. +/obj/item/weapon/arrow/proc/removed() //Helper for metal rods falling apart. return /obj/item/weapon/arrow/quill name = "vox quill" desc = "A wickedly barbed quill from some bizarre animal." - icon = 'icons/mob/vox.dmi' + icon = 'icons/obj/weapons.dmi' icon_state = "quill" item_state = "quill" throwforce = 15 diff --git a/icons/mob/vox.dmi b/icons/mob/vox.dmi index 6f0172bba7013eb7333b0debc4a8f8a1fe9a9e9b..6abba5c9e0346d2624f49a6cee4a21cf3491b16f 100644 GIT binary patch literal 2676 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 R(HH;#002ovPDHLkV1lP6u3Z2C From b7c260d6ea1a8e70a719f9b01f1434749c8b63d1 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 16 Jun 2013 00:45:03 -0700 Subject: [PATCH 20/34] Removed some debug strings. --- code/modules/mob/living/living_defense.dm | 2 -- code/modules/mob/mob.dm | 2 -- 2 files changed, 4 deletions(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 14137f0e84..17e912e2b0 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -77,10 +77,8 @@ if(!O.fingerprintslast) return - visible_message("Debug: checking client for [O.fingerprintslast]") var/client/assailant = directory[ckey(O.fingerprintslast)] if(assailant && assailant.mob && istype(assailant.mob,/mob)) - visible_message("Assailant has client: [assailant]") var/mob/M = assailant.mob src.attack_log += text("\[[time_stamp()]\] Has been hit with [O], last touched by [M.name] ([assailant.ckey])") M.attack_log += text("\[[time_stamp()]\] Hit [src.name] ([src.ckey]) with [O]") diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 8a7a63cf55..02ea1aa4e7 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -596,8 +596,6 @@ var/list/slot_equipment_priority = list( \ M.LAssailant = null else M.LAssailant = usr - if (M.pinned.len) - usr << "They're pinned, gtfo." return if(pulling) From 2f8ef8f455b2482271d7edc2626afc2768238dd6 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 16 Jun 2013 13:14:58 -0700 Subject: [PATCH 21/34] Minor detective scanner resprite/flashing addition. --- code/modules/detectivework/scanner.dm | 16 +++++++++++++++- icons/obj/device.dmi | Bin 17886 -> 18563 bytes 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 7bafd4a31f..35371f16f9 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -34,9 +34,11 @@ attack(mob/living/carbon/human/M as mob, mob/user as mob) if (!ishuman(M)) user << "\red [M] is not human and cannot have the fingerprints." + flash_icon("forensic0") return 0 if (( !( istype(M.dna, /datum/dna) ) || M.gloves) ) user << "\blue No fingerprints found on [M]" + flash_icon("forensic0") return 0 else if (src.amount < 1) @@ -71,6 +73,7 @@ return if(istype(A,/obj/item/weapon/f_card)) user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" + flash_icon("forensic0") return add_fingerprint(user) @@ -81,6 +84,7 @@ if(!isnull(A.blood_DNA)) for(var/blood in A.blood_DNA) user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" + flash_icon("forensic2") return //General @@ -88,10 +92,12 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ "You hear a faint hum of electrical equipment.") + flash_icon("forensic0") return 0 if(add_data(A)) user << "\blue Object already in internal memory. Consolidating data..." + flash_icon("forensic2") return @@ -116,6 +122,7 @@ //FIBERS if(A.suit_fibers) user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." + flash_icon("forensic2") //Blood if (A.blood_DNA) @@ -127,11 +134,13 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "You finish scanning \the [A].",\ "You hear a faint hum of electrical equipment.") + flash_icon("forensic2") return 0 else user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\ "The results of the scan pique your interest.",\ "You hear a faint hum of electrical equipment, and someone making a thoughtful noise.") + flash_icon("forensic2") return 0 return @@ -170,4 +179,9 @@ sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null sum_list[4] = "\The [A] in \the [get_area(A)]" stored["\ref [A]"] = sum_list - return 0 \ No newline at end of file + return 0 + + proc/flash_icon(var/ficon) + if(ficon) + icon_state = ficon + spawn(5) icon_state = initial(icon_state) \ No newline at end of file diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 1e9f1c1efb44708895ab4df1d6a2d809b4798bf3..003bf5c9f10455108b282a68478ea1e8ad37fafa 100644 GIT binary patch literal 18563 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 From 94c3c7ef49a990cf564dd4c642390fcf0c2fe79c Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 16 Jun 2013 13:17:20 -0700 Subject: [PATCH 22/34] Armalis additions, tweaks. --- code/modules/mob/living/living_defense.dm | 2 +- code/modules/mob/living/simple_animal/vox.dm | 83 +++++++++++++++++- .../projectiles/guns/projectile/bow.dm | 10 +-- icons/obj/clothing/suits.dmi | Bin 69629 -> 70090 bytes 4 files changed, 86 insertions(+), 9 deletions(-) diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index 17e912e2b0..4107b30d87 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -86,7 +86,7 @@ // Begin BS12 momentum-transfer code. - if(speed > 20) + if(speed >= 20) var/obj/item/weapon/W = O var/momentum = speed/2 var/dir = get_dir(M,src) diff --git a/code/modules/mob/living/simple_animal/vox.dm b/code/modules/mob/living/simple_animal/vox.dm index 55226823cf..2ea43707ba 100644 --- a/code/modules/mob/living/simple_animal/vox.dm +++ b/code/modules/mob/living/simple_animal/vox.dm @@ -8,7 +8,7 @@ icon_living = "armalis" maxHealth = 500 health = 500 - response_harm = "flails ineffectually at the" + response_harm = "slashes at the" harm_intent_damage = 0 melee_damage_lower = 30 melee_damage_upper = 40 @@ -17,6 +17,22 @@ wall_smash = 1 attack_sound = 'sound/weapons/bladeslice.ogg' status_flags = 0 + universal_speak = 1 + vox_talk_understand = 1 + + var/armour = null + var/amp = null + var/quills = 3 + +/mob/living/simple_animal/vox/armalis/Die() + + living_mob_list -= src + dead_mob_list += src + stat = DEAD + visible_message("\red [src] shudders violently and explodes!","\red You feel your body rupture!") + explosion(get_turf(loc), -1, -1, 3, 5) + src.gib() + return /mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) if(O.force) @@ -44,6 +60,9 @@ set desc = "Fires a viciously pointed quill at a high speed." set category = "Alien" + if(quills<=0) + return + src << "\red You launch a razor-sharp quill at [target]!" for(var/mob/O in oviewers()) if ((O.client && !( O.blinded ))) @@ -51,7 +70,12 @@ var/obj/item/weapon/arrow/quill/Q = new(loc) Q.fingerprintslast = src.ckey - Q.throw_at(target,10,15) + Q.throw_at(target,10,20) + quills-- + + spawn(100) + src << "\red You feel a fresh quill slide into place." + quills++ /mob/living/simple_animal/vox/armalis/verb/message_mob() set category = "Alien" @@ -81,4 +105,57 @@ if(H.dna.mutantrace == "vox") return H << "\red Your nose begins to bleed..." - H.drip(1) \ No newline at end of file + H.drip(1) + +/mob/living/simple_animal/vox/armalis/verb/shriek() + set category = "Alien" + set name = "Shriek" + set desc = "Give voice to a psychic shriek." + +/mob/living/simple_animal/vox/armalis/attackby(var/obj/item/O as obj, var/mob/user as mob) + if(istype(O,/obj/item/vox/armalis_armour)) + user.drop_item() + armour = O + speed = 1 + maxHealth += 200 + health += 200 + O.loc = src + visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].") + regenerate_icons() + return + if(istype(O,/obj/item/vox/armalis_amp)) + user.drop_item() + amp = O + O.loc = src + visible_message("\blue [src] is quickly outfitted in [O] by [user].","\blue You quickly outfit [src] in [O].") + regenerate_icons() + return + return ..() + +/mob/living/simple_animal/vox/armalis/regenerate_icons() + + overlays = list() + if(armour) + var/icon/armour = image('icons/mob/vox.dmi',"armour") + speed = 1 + overlays += armour + if(amp) + var/icon/amp = image('icons/mob/vox.dmi',"amplifier") + overlays += amp + return + +/obj/item/vox/armalis_armour + + name = "strange armour" + desc = "Hulking reinforced armour for something huge." + icon = 'icons/obj/clothing/suits.dmi' + icon_state = "armalis_armour" + item_state = "armalis_armour" + +/obj/item/vox/armalis_amp + + name = "strange lenses" + desc = "A series of metallic lenses and chains." + icon = 'icons/obj/clothing/hats.dmi' + icon_state = "amp" + item_state = "amp" \ No newline at end of file diff --git a/code/modules/projectiles/guns/projectile/bow.dm b/code/modules/projectiles/guns/projectile/bow.dm index ee2e0e20db..aa113e8659 100644 --- a/code/modules/projectiles/guns/projectile/bow.dm +++ b/code/modules/projectiles/guns/projectile/bow.dm @@ -6,7 +6,7 @@ icon_state = "bolt" item_state = "bolt" flags = FPRINT | TABLEPASS - throwforce = 12 + throwforce = 8 w_class = 3.0 sharp = 1 @@ -20,7 +20,7 @@ icon = 'icons/obj/weapons.dmi' icon_state = "quill" item_state = "quill" - throwforce = 15 + throwforce = 5 /obj/item/weapon/arrow/rod @@ -29,7 +29,7 @@ icon_state = "metal-rod" /obj/item/weapon/arrow/rod/removed(mob/user) - if(throwforce == 20) // The rod has been superheated - we don't want it to be useable when removed from the bow. + if(throwforce == 15) // The rod has been superheated - we don't want it to be useable when removed from the bow. user << "[src] shatters into a scattering of overstressed metal shards as it leaves the crossbow." var/obj/item/weapon/shard/shrapnel/S = new() S.loc = get_turf(src) @@ -75,7 +75,7 @@ if(cell) if(cell.charge >= 500) user << "[arrow] plinks and crackles as it begins to glow red-hot." - arrow.throwforce = 20 + arrow.throwforce = 15 arrow.icon_state = "metal-rod-superheated" cell.charge -= 500 return @@ -89,7 +89,7 @@ if(arrow) if(istype(arrow,/obj/item/weapon/arrow/rod) && cell.charge >= 500) user << "[arrow] plinks and crackles as it begins to glow red-hot." - arrow.throwforce = 20 + arrow.throwforce = 15 arrow.icon_state = "metal-rod-superheated" cell.charge -= 500 else diff --git a/icons/obj/clothing/suits.dmi b/icons/obj/clothing/suits.dmi index 29487a42863115ede76789c895e852a5005c2575..cf9c6d511d6413ff09857d611494301c87deba8c 100644 GIT binary patch delta 15048 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 delta 14583 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 From 9e369ebf31a4124536e6031f7f876360049ffec3 Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Sun, 16 Jun 2013 22:30:30 -0700 Subject: [PATCH 23/34] Apparently flick() is a thing, thanks Chinsky. --- code/modules/detectivework/scanner.dm | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/code/modules/detectivework/scanner.dm b/code/modules/detectivework/scanner.dm index 35371f16f9..448425e454 100644 --- a/code/modules/detectivework/scanner.dm +++ b/code/modules/detectivework/scanner.dm @@ -34,11 +34,11 @@ attack(mob/living/carbon/human/M as mob, mob/user as mob) if (!ishuman(M)) user << "\red [M] is not human and cannot have the fingerprints." - flash_icon("forensic0") + flick("forensic0",src) return 0 if (( !( istype(M.dna, /datum/dna) ) || M.gloves) ) user << "\blue No fingerprints found on [M]" - flash_icon("forensic0") + flick("forensic0",src) return 0 else if (src.amount < 1) @@ -73,7 +73,7 @@ return if(istype(A,/obj/item/weapon/f_card)) user << "The scanner displays on the screen: \"ERROR 43: Object on Excluded Object List.\"" - flash_icon("forensic0") + flick("forensic0",src) return add_fingerprint(user) @@ -84,7 +84,7 @@ if(!isnull(A.blood_DNA)) for(var/blood in A.blood_DNA) user << "\blue Blood type: [A.blood_DNA[blood]]\nDNA: [blood]" - flash_icon("forensic2") + flick("forensic2",src) return //General @@ -92,12 +92,12 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "\blue Unable to locate any fingerprints, materials, fibers, or blood on [A]!",\ "You hear a faint hum of electrical equipment.") - flash_icon("forensic0") + flick("forensic0",src) return 0 if(add_data(A)) user << "\blue Object already in internal memory. Consolidating data..." - flash_icon("forensic2") + flick("forensic2",src) return @@ -122,7 +122,7 @@ //FIBERS if(A.suit_fibers) user << "\blue Fibers/Materials Data Stored: Scan with Hi-Res Forensic Scanner to retrieve." - flash_icon("forensic2") + flick("forensic2",src) //Blood if (A.blood_DNA) @@ -134,13 +134,13 @@ user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]" ,\ "You finish scanning \the [A].",\ "You hear a faint hum of electrical equipment.") - flash_icon("forensic2") + flick("forensic2",src) return 0 else user.visible_message("\The [user] scans \the [A] with \a [src], the air around [user.gender == MALE ? "him" : "her"] humming[prob(70) ? " gently." : "."]\n[user.gender == MALE ? "He" : "She"] seems to perk up slightly at the readout." ,\ "The results of the scan pique your interest.",\ "You hear a faint hum of electrical equipment, and someone making a thoughtful noise.") - flash_icon("forensic2") + flick("forensic2",src) return 0 return @@ -179,9 +179,4 @@ sum_list[3] = A.blood_DNA ? A.blood_DNA.Copy() : null sum_list[4] = "\The [A] in \the [get_area(A)]" stored["\ref [A]"] = sum_list - return 0 - - proc/flash_icon(var/ficon) - if(ficon) - icon_state = ficon - spawn(5) icon_state = initial(icon_state) \ No newline at end of file + return 0 \ No newline at end of file From 13045af61a27f3c521d224437f3edd80db156970 Mon Sep 17 00:00:00 2001 From: Kilakk Date: Sun, 16 Jun 2013 12:38:38 -0400 Subject: [PATCH 24/34] Adds a crew transfer notice for new players Adds the "The station is currently undergoing evacuation procedures" notice for new people trying to join when there's a crew transfer going on. --- code/controllers/shuttle_controller.dm | 1 + code/modules/mob/new_player/new_player.dm | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/controllers/shuttle_controller.dm b/code/controllers/shuttle_controller.dm index 44f601f6a3..1800038c33 100644 --- a/code/controllers/shuttle_controller.dm +++ b/code/controllers/shuttle_controller.dm @@ -67,6 +67,7 @@ datum/shuttle_controller captain_announce("The shuttle has been recalled.") setdirection(-1) online = 1 + alert = 0 // set alert back to 0 after an admin recall return // returns the time (in seconds) before shuttle arrival diff --git a/code/modules/mob/new_player/new_player.dm b/code/modules/mob/new_player/new_player.dm index 7f1dbc9f31..85f2582f90 100644 --- a/code/modules/mob/new_player/new_player.dm +++ b/code/modules/mob/new_player/new_player.dm @@ -314,8 +314,10 @@ if(emergency_shuttle) //In case Nanotrasen decides reposess CentComm's shuttles. if(emergency_shuttle.direction == 2) //Shuttle is going to centcomm, not recalled dat += "The station has been evacuated.
" - if(emergency_shuttle.direction == 1 && emergency_shuttle.timeleft() < 300) //Shuttle is past the point of no recall + if(emergency_shuttle.direction == 1 && emergency_shuttle.timeleft() < 300 && emergency_shuttle.alert == 0) // Emergency shuttle is past the point of no recall dat += "The station is currently undergoing evacuation procedures.
" + if(emergency_shuttle.direction == 1 && emergency_shuttle.alert == 1) // Crew transfer initiated + dat += "The station is currently undergoing crew transfer procedures.
" dat += "Choose from the following open positions:
" for(var/datum/job/job in job_master.occupations) From a2c2c1fe6296f044e725d322e75080029c7974cc Mon Sep 17 00:00:00 2001 From: Mordeth221 Date: Mon, 17 Jun 2013 15:02:14 +0100 Subject: [PATCH 25/34] Ninja update, Several nerfs and tweaks --- code/game/gamemodes/events/ninja_abilities.dm | 66 ++++--------------- code/game/gamemodes/events/ninja_equipment.dm | 4 +- code/game/gamemodes/events/space_ninja.dm | 10 --- 3 files changed, 15 insertions(+), 65 deletions(-) diff --git a/code/game/gamemodes/events/ninja_abilities.dm b/code/game/gamemodes/events/ninja_abilities.dm index 925f2f19bf..16dfae5249 100644 --- a/code/game/gamemodes/events/ninja_abilities.dm +++ b/code/game/gamemodes/events/ninja_abilities.dm @@ -65,45 +65,11 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo s_coold = 1 return -//=======//9-8 TILE TELEPORT//=======// -//Click to to teleport 9-10 tiles in direction facing. -/obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt() - set name = "Phase Jaunt (10E)" - set desc = "Utilizes the internal VOID-shift device to rapidly transit in direction facing." - set category = "Ninja Ability" - set popup_menu = 0 - - var/C = 100 - if(!ninjacost(C,1)) - var/mob/living/carbon/human/U = affecting - var/turf/destination = get_teleport_loc(U.loc,U,9,1,3,1,0,1) - var/turf/mobloc = get_turf(U.loc)//To make sure that certain things work properly below. - if(destination&&istype(mobloc, /turf))//The turf check prevents unusual behavior. Like teleporting out of cryo pods, cloners, mechs, etc. - spawn(0) - playsound(U.loc, "sparks", 50, 1) - anim(mobloc,src,'icons/mob/mob.dmi',,"phaseout",,U.dir) - - handle_teleport_grab(destination, U) - U.loc = destination - - spawn(0) - spark_system.start() - playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) - playsound(U.loc, "sparks", 50, 1) - anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0) - destination.kill_creatures(U)//Any living mobs in teleport area are gibbed. Check turf procs for how it does it. - s_coold = 1 - cell.charge-=(C*10) - else - U << "\red The VOID-shift device is malfunctioning, teleportation failed." - return //=======//RIGHT CLICK TELEPORT//=======// //Right click to teleport somewhere, almost exactly like admin jump to turf. /obj/item/clothing/suit/space/space_ninja/proc/ninjashift(turf/T in oview()) - set name = "Phase Shift (20E)" + set name = "Phase Shift (1E)" set desc = "Utilizes the internal VOID-shift device to rapidly transit to a destination in view." set category = null//So it does not show up on the panel but can still be right-clicked. set src = usr.contents//Fixes verbs not attaching properly for objects. Praise the DM reference guide! @@ -125,11 +91,6 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo playsound(U.loc, 'sound/effects/phasein.ogg', 25, 1) playsound(U.loc, 'sound/effects/sparks2.ogg', 50, 1) anim(U.loc,U,'icons/mob/mob.dmi',,"phasein",,U.dir) - - spawn(0)//Any living mobs in teleport area are gibbed. - T.kill_creatures(U) - s_coold = 1 - cell.charge-=(C*10) else U << "\red You cannot teleport into solid walls or from solid matter" return @@ -137,16 +98,16 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo //=======//EM PULSE//=======// //Disables nearby tech equipment. /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse() - set name = "EM Burst (25E)" + set name = "EM Burst (1,000E)" set desc = "Disable any nearby technology with a electro-magnetic pulse." set category = "Ninja Ability" set popup_menu = 0 var/C = 250 - if(!ninjacost(C,1)) + if(!ninjacost(C,100)) // EMP's now cost 1,000Energy about 30% var/mob/living/carbon/human/U = affecting playsound(U.loc, 'sound/effects/EMPulse.ogg', 60, 2) - empulse(U, 4, 6) //Procs sure are nice. Slightly weaker than wizard's disable tch. + empulse(U, 2, 3) //Procs sure are nice. Slightly weaker than wizard's disable tch. s_coold = 2 cell.charge-=(C*10) return @@ -154,13 +115,13 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo //=======//ENERGY BLADE//=======// //Summons a blade of energy in active hand. /obj/item/clothing/suit/space/space_ninja/proc/ninjablade() - set name = "Energy Blade (5E)" + set name = "Energy Blade (20E)" set desc = "Create a focused beam of energy in your active hand." set category = "Ninja Ability" set popup_menu = 0 var/C = 50 - if(!ninjacost(C)) + if(!ninjacost(C, 800)) //Same spawn cost but higher upkeep cost var/mob/living/carbon/human/U = affecting if(!kamikaze) if(!U.get_active_hand()&&!istype(U.get_inactive_hand(), /obj/item/weapon/melee/energy/blade)) @@ -187,13 +148,13 @@ Not sure why this would be useful (it's not) but whatever. Ninjas need their smo /*Shoots ninja stars at random people. This could be a lot better but I'm too tired atm.*/ /obj/item/clothing/suit/space/space_ninja/proc/ninjastar() - set name = "Energy Star (5E)" + set name = "Energy Star (1,000E)" set desc = "Launches an energy star at a random living target." set category = "Ninja Ability" set popup_menu = 0 var/C = 50 - if(!ninjacost(C)) + if(!ninjacost(C,1)) var/mob/living/carbon/human/U = affecting var/targets[] = list()//So yo can shoot while yo throw dawg for(var/mob/living/M in oview(loc)) @@ -212,7 +173,7 @@ This could be a lot better but I'm too tired atm.*/ A.current = curloc A.yo = targloc.y - curloc.y A.xo = targloc.x - curloc.x - cell.charge-=(C*10) + cell.charge-=(C*100)// Ninja stars now cost 100 energy, stil la fair chunk to avoid spamming, will run out of power quickly if used 3 or more times A.process() else U << "\red There are no targets in view." @@ -222,13 +183,13 @@ This could be a lot better but I'm too tired atm.*/ /*Allows the ninja to capture people, I guess. Must right click on a mob to activate.*/ /obj/item/clothing/suit/space/space_ninja/proc/ninjanet(mob/living/carbon/M in oview())//Only living carbon mobs. - set name = "Energy Net (20E)" + set name = "Energy Net (8,000E)" set desc = "Captures a fallen opponent in a net of energy. Will teleport them to a holding facility after 30 seconds." set category = null set src = usr.contents - var/C = 200 - if(!ninjacost(C,1)&&iscarbon(M)) + var/C = 500 + if(!ninjacost(C,80)&&iscarbon(M)) // Nets now cost 8,000 var/mob/living/carbon/human/U = affecting if(M.client)//Monkeys without a client can still step_to() and bypass the net. Also, netting inactive people is lame. //if(M)//DEBUG @@ -249,7 +210,7 @@ Must right click on a mob to activate.*/ E.master = U spawn(0)//Parallel processing. E.process(M) - cell.charge-=(C*10) + cell.charge-=(C*100) // Nets now cost what should be most of a standard battery, since your taking someone out of the round else U << "They are already trapped inside an energy net." else @@ -270,7 +231,6 @@ Movement impairing would indicate drugs and the like.*/ //Wouldn't need to track adrenaline boosters if there was a miracle injection to get rid of paralysis and the like instantly. //For now, adrenaline boosters ARE the miracle injection. Well, radium, really. U.SetParalysis(0) - U.SetStunned(0) U.SetWeakened(0) /* Due to lag, it was possible to adrenaline boost but remain helpless while life.dm resets player stat. diff --git a/code/game/gamemodes/events/ninja_equipment.dm b/code/game/gamemodes/events/ninja_equipment.dm index 8f66ca56a3..853f150974 100644 --- a/code/game/gamemodes/events/ninja_equipment.dm +++ b/code/game/gamemodes/events/ninja_equipment.dm @@ -1333,10 +1333,10 @@ It is possible to destroy the net by the occupant or someone else. return process(var/mob/living/carbon/M as mob) - var/check = 30//30 seconds before teleportation. Could be extended I guess. + var/check = 60//30 seconds before teleportation. Could be extended I guess. - Extended to one minute var/mob_name = affecting.name//Since they will report as null if terminated before teleport. //The person can still try and attack the net when inside. - while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 30 seconds have not passed. + while(!isnull(M)&&!isnull(src)&&check>0)//While M and net exist, and 60 seconds have not passed. check-- sleep(10) diff --git a/code/game/gamemodes/events/space_ninja.dm b/code/game/gamemodes/events/space_ninja.dm index 2314f38258..1a09a3c782 100644 --- a/code/game/gamemodes/events/space_ninja.dm +++ b/code/game/gamemodes/events/space_ninja.dm @@ -656,7 +656,6 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/grant_ninja_verbs() verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse @@ -669,8 +668,6 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/remove_ninja_verbs() verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjasmoke verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaboost verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjablade @@ -681,11 +678,7 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/grant_kamikaze(mob/living/carbon/U) verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage @@ -710,11 +703,8 @@ As such, it's hard-coded for now. No reason for it not to be, really. /obj/item/clothing/suit/space/space_ninja/proc/remove_kamikaze(mob/living/carbon/U) if(kamikaze) verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjashift - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjajaunt verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjastar - verbs += /obj/item/clothing/suit/space/space_ninja/proc/ninjanet - verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjaslayer verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjawalk verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjamirage From 91e1e848f79647070be2e7df1493b34899b4f27f Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:34:15 +0300 Subject: [PATCH 26/34] Bugfixes for windoor construction. --- baystation12.dme | 1 - .../objects/structures/windoor_assembly.dm | 38 +++++++++---------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index f002ef969d..5fb1681058 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -60,7 +60,6 @@ // END_PREFERENCES // BEGIN_INCLUDE #include "code\global.dm" -#include "code\hub.dm" #include "code\names.dm" #include "code\setup.dm" #include "code\stylesheet.dm" diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 532819d020..f199d9edd9 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -107,17 +107,17 @@ obj/structure/windoor_assembly/Del() src.name = "Windoor Assembly" //Adding plasteel makes the assembly a secure windoor assembly. Step 2 (optional) complete. - else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure) - var/obj/item/stack/sheet/plasteel/P = W - if(P.amount < 2) - user << "\red You need more plasteel to do this." + else if(istype(W, /obj/item/stack/rods) && !secure) + var/obj/item/stack/rods/R = W + if(R.amount < 4) + user << "\red You need more rods to do this." return - user << "\blue You start to reinforce the windoor with plasteel." + user << "\blue You start to reinforce the windoor with rods." if(do_after(user,40)) if(!src) return - P.use(2) + R.use(4) user << "\blue You reinforce the windoor." src.secure = "secure_" if(src.anchored) @@ -145,7 +145,7 @@ obj/structure/windoor_assembly/Del() if("02") //Removing wire from the assembly. Step 5 undone. - if(istype(W, /obj/item/weapon/wirecutters)) + if(istype(W, /obj/item/weapon/wirecutters) && !src.electronics) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.") @@ -156,12 +156,12 @@ obj/structure/windoor_assembly/Del() new/obj/item/weapon/cable_coil(get_turf(user), 1) src.state = "01" if(src.secure) - src.name = "Secure Wired Windoor Assembly" + src.name = "Secure Anchored Windoor Assembly" else - src.name = "Wired Windoor Assembly" + src.name = "Anchored Windoor Assembly" //Adding airlock electronics for access. Step 6 complete. - else if(istype(W, /obj/item/weapon/airlock_electronics)) + else if(istype(W, /obj/item/weapon/airlock_electronics) && W:icon_state != "door_electronics_smoked") playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.") @@ -177,22 +177,20 @@ obj/structure/windoor_assembly/Del() W.loc = src.loc //Screwdriver to remove airlock electronics. Step 6 undone. - else if(istype(W, /obj/item/weapon/screwdriver)) + else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.") if(do_after(user, 40)) - if(!src) return + if(!src || !src.electronics) return user << "\blue You've removed the airlock electronics!" - src.name = "Wired Windoor Assembly" - var/obj/item/weapon/airlock_electronics/ae - if (!electronics) - ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.secure) + src.name = "Secure Wired Windoor Assembly" else - ae = electronics - electronics = null - ae.loc = src.loc - + src.name = "Wired Windoor Assembly" + var/obj/item/weapon/airlock_electronics/ae = electronics + electronics = null + ae.loc = src.loc //Crowbar to complete the assembly, Step 7 complete. else if(istype(W, /obj/item/weapon/crowbar)) From 79d2d578598d776073abae6fb2bc1768d9c04e27 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:38:40 +0300 Subject: [PATCH 27/34] Code cleanup. --- code/game/machinery/doors/windowdoor.dm | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 45ff776d40..38afc122be 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -162,15 +162,9 @@ if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/slime/adult)) if(src.operating) return - src.health = max(0, src.health - 25) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\red [user] smashes against the [src.name].", 1) - if (src.health <= 0) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) - CC.amount = 2 - src.density = 0 - del(src) + take_damage(25) else return src.attack_hand(user) @@ -202,16 +196,10 @@ //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway) if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card)) var/aforce = I.force - if(I.damtype == BRUTE || I.damtype == BURN) - src.health = max(0, src.health - aforce) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\red [src] was hit by [I].") - if (src.health <= 0) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) - CC.amount = 2 - src.density = 0 - del(src) + if(I.damtype == BRUTE || I.damtype == BURN) + take_damage(aforce) return From dcf984577aa4e3cb7a6a3a4eacd8948bb4ea5738 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:47:24 +0300 Subject: [PATCH 28/34] Adding construction of req_one_access doors. --- code/game/machinery/doors/airlock.dm | 6 +++++- code/game/machinery/doors/airlock_electronics.dm | 8 ++++++++ code/game/objects/structures/door_assembly.dm | 6 +++++- code/game/objects/structures/windoor_assembly.dm | 12 ++++++++++-- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index e8d4078593..045257fc71 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1238,7 +1238,11 @@ About the new airlock wires panel: var/obj/item/weapon/airlock_electronics/ae if(!electronics) ae = new/obj/item/weapon/airlock_electronics( src.loc ) - ae.conf_access = src.req_access + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 else ae = electronics electronics = null diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 2310e85c07..ddedf045e7 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -11,6 +11,7 @@ req_access = list(access_engine) var/list/conf_access = null + var/one_access = 0 //if set to 1, door would receive req_one_access instead of req_access var/last_configurator = null var/locked = 1 @@ -33,6 +34,8 @@ else t1 += "
Block
" + t1 += "Access requirement is set to " + t1 += one_access ? "ONE
" : "ALL
" t1 += conf_access == null ? "All
" : "All
" @@ -44,6 +47,8 @@ if (!conf_access || !conf_access.len || !(acc in conf_access)) t1 += "[aname]
" + else if(one_access) + t1 += "[aname]
" else t1 += "[aname]
" @@ -75,6 +80,9 @@ if (href_list["logout"]) locked = 1 + if (href_list["one_access"]) + one_access = !one_access + if (href_list["access"]) toggle_access(href_list["access"]) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 7ece9970d5..9930d8d84f 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -421,7 +421,11 @@ obj/structure/door_assembly door = new src.airlock_type( src.loc ) //door.req_access = src.req_access door.electronics = src.electronics - door.req_access = src.electronics.conf_access + if(src.electronics.one_access) + door.req_access = null + door.req_one_access = src.electronics.conf_access + else + door.req_access = src.electronics.conf_access if(created_name) door.name = created_name src.electronics.loc = door diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index f199d9edd9..478f6989ba 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -219,7 +219,11 @@ obj/structure/windoor_assembly/Del() windoor.dir = src.dir windoor.density = 0 - windoor.req_access = src.electronics.conf_access + if(src.electronics.one_access) + windoor.req_access = null + windoor.req_one_access = src.electronics.conf_access + else + windoor.req_access = src.electronics.conf_access windoor.electronics = src.electronics src.electronics.loc = windoor else @@ -233,7 +237,11 @@ obj/structure/windoor_assembly/Del() windoor.dir = src.dir windoor.density = 0 - windoor.req_access = src.electronics.conf_access + if(src.electronics.one_access) + windoor.req_access = null + windoor.req_one_access = src.electronics.conf_access + else + windoor.req_access = src.electronics.conf_access windoor.electronics = src.electronics src.electronics.loc = windoor From eec4606629865c4cf4a89d4b5f395d7058acd8cd Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:51:53 +0300 Subject: [PATCH 29/34] Adding removal of electronics out of broken/emagged windoors. --- code/game/machinery/doors/windowdoor.dm | 52 +++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 38afc122be..7230b27d18 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -130,6 +130,21 @@ new /obj/item/weapon/shard(src.loc) var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) CC.amount = 2 + var/obj/item/weapon/airlock_electronics/ae + if(!electronics) + ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 + else + ae = electronics + electronics = null + ae.loc = src.loc + if(operating == -1) + ae.icon_state = "door_electronics_smoked" + operating = 0 src.density = 0 del(src) return @@ -193,6 +208,43 @@ open() return 1 + //If it's emagged, crowbar can pry electronics out. + if (src.operating == -1 && istype(I, /obj/item/weapon/crowbar)) + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + user.visible_message("[user] removes the electronics from the windoor.", "You start to remove electronics from the windoor.") + if (do_after(user,40)) + user << "\blue You removed the airlock electronics!" + + var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc) + if (istype(src, /obj/machinery/door/window/brigdoor)) + wa.secure = "secure_" + wa.name = "Secure Wired Windoor Assembly" + else + wa.name = "Wired Windoor Assembly" + if (src.base_state == "right" || src.base_state == "rightsecure") + wa.facing = "r" + wa.dir = src.dir + wa.state = "02" + wa.update_icon() + + var/obj/item/weapon/airlock_electronics/ae + if(!electronics) + ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 + else + ae = electronics + electronics = null + ae.loc = src.loc + ae.icon_state = "door_electronics_smoked" + + operating = 0 + del(src) + return + //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway) if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card)) var/aforce = I.force From beff70c0147528f327cc9ab06557759467f0fad4 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:56:35 +0300 Subject: [PATCH 30/34] Misclick fix. --- baystation12.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/baystation12.dme b/baystation12.dme index 5fb1681058..f002ef969d 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -60,6 +60,7 @@ // END_PREFERENCES // BEGIN_INCLUDE #include "code\global.dm" +#include "code\hub.dm" #include "code\names.dm" #include "code\setup.dm" #include "code\stylesheet.dm" From 6c43ff47e9fd4c78f60a66aaaac7b0710747b46c Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 03:05:37 +0300 Subject: [PATCH 31/34] Changelog update. --- html/changelog.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 44b3cd609b..ccfe5623a1 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,6 +57,17 @@ Stuff which is in development and not yet visible to players or just code relate (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit though. Thanks. --> +
+

18.06.2013

+

Segrain updated:

+
    +
  • Fixed some bugs in windoor construction.
  • +
  • Secure windoors are made with rods again.
  • +
  • Windoors drop their electronics when broken. Emagged windoors can have theirs removed by crowbar.
  • +
  • Airlock electronics can be configured to make door open for any single access on it instead of all of them.
  • +
+
+

13.06.2013

Kilakk updated:

From 6f5cffa753a2b5fad25fd3684c0ffcc342a16d51 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 03:20:34 +0300 Subject: [PATCH 32/34] Better term. --- code/game/machinery/doors/windowdoor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 7230b27d18..3c1e4c3642 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -213,7 +213,7 @@ playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the windoor.", "You start to remove electronics from the windoor.") if (do_after(user,40)) - user << "\blue You removed the airlock electronics!" + user << "\blue You removed the windoor electronics!" var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc) if (istype(src, /obj/machinery/door/window/brigdoor)) From aa2ab80f6cb6d7da97452a31d435a483cd780b75 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 03:33:56 +0300 Subject: [PATCH 33/34] Missed a line. --- code/game/machinery/doors/windowdoor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 3c1e4c3642..66184774c4 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -190,7 +190,7 @@ /obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/user as mob) //If it's in the process of opening/closing, ignore the click - if (src.operating) + if (src.operating == 1) return //Emags and ninja swords? You may pass. From 32c16e6d196501db73806e0e12470bc5c169a77c Mon Sep 17 00:00:00 2001 From: fauxtada Date: Tue, 18 Jun 2013 03:07:09 -0700 Subject: [PATCH 34/34] Medbay Map Fixes - Adjusts New Medbay based on commentary of BEF players. - Reorganizes the surgery rest room. - Puts in correct colorations to departments. - Reorganizes Psychiatric's office and fixes their door. - Hopefully fixed the disposal pipes. - Moves delivery to next to morgue. - A bunch of other shit I can't remember, tired. Also, adds in training supplies to engineering training room, and moves starboard storage to the escape wing. --- icons/turf/floors.dmi | Bin 295019 -> 297252 bytes maps/tgstation.2.1.0.0.1.dmm | 1203 ++++++++++++++++------------------ 2 files changed, 583 insertions(+), 620 deletions(-) diff --git a/icons/turf/floors.dmi b/icons/turf/floors.dmi index bf16c04b8bedf5c8429f3e438ea574931d4c3a04..289b7f94e0bba12e72d43b25868139688bb72b2f 100644 GIT binary patch delta 21104 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 delta 18853 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