From d50c2b9ec961774ad9f6c4794536ba429a9fa620 Mon Sep 17 00:00:00 2001 From: CollenN Date: Fri, 20 Jun 2014 20:58:14 -0400 Subject: [PATCH 01/36] Adds Radioactive Microlaser Adds the radioactive microlaser, a device disguised as a health analyzer used to irradiate people, as a traitor item. It costs 4 telecrystals to purchase, and is fairly powerful in clever hands. The strength of the radiation is determined by the 'intensity' setting, while the delay between the scan and the irradiation kicking in is determined by the wavelength. Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase the cooldown, while higher wavelength will decrease it. Wavelength is also slightly increased by the intensity as well. --- code/datums/uplink_item.dm | 7 ++ .../objects/items/devices/traitordevices.dm | 83 ++++++++++++++++++ icons/obj/device.dmi | Bin 23393 -> 23553 bytes 3 files changed, 90 insertions(+) diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm index bfdfb312732..6447d75bb81 100644 --- a/code/datums/uplink_item.dm +++ b/code/datums/uplink_item.dm @@ -398,6 +398,13 @@ var/list/uplink_items = list() cost = 5 excludefrom = list(/datum/game_mode/traitor/double_agents) +/datum/uplink_item/device_tools/rad_laser + name = "Radioactive Microlaser" + desc = "A radioactive microlaser disguised as a standard Nanotrasen health analyzer. When used, it emits a powerful burst of radiation, which, after a short delay, can incapitate all but the most protected of humanoids. \ + It has two settings: intensity, which controls the power of the radiation, and wavelength, which controls how long the radiation delay is." + item = /obj/item/device/rad_laser + cost = 4 + /datum/uplink_item/device_tools/syndicate_detonator name = "Syndicate Detonator" desc = "The Syndicate Detonator is a companion device to the Syndicate Bomb. Simply press the included button and an encrypted radio frequency will instruct all live syndicate bombs to detonate. \ diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 695fd3105aa..d636bf50139 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -4,6 +4,7 @@ Miscellaneous traitor devices BATTERER +RADIOACTIVE MICROLASER */ @@ -56,6 +57,88 @@ effective or pretty fucking useless. if(times_used >= max_uses) icon_state = "battererburnt" +/* + The radioactive microlaser, a device disguised as a health analyzer used to irradiate people. + The strength of the radiation is determined by the 'intensity' setting, while the delay between + the scan and the irradiation kicking in is determined by the wavelength. + Each scan will cause the microlaser to have a brief cooldown period. Higher intensity will increase + the cooldown, while higher wavelength will decrease it. + Wavelength is also slightly increased by the intensity as well. +*/ + +/obj/item/device/rad_laser + name = "health analyzer" + icon_state = "health" + item_state = "analyzer" + desc = "A hand-held body scanner able to distinguish vital signs of the subject. A strange microlaser is hooked on to the scanning end." + flags = CONDUCT + slot_flags = SLOT_BELT + throwforce = 3 + w_class = 1.0 + throw_speed = 3 + throw_range = 7 + m_amt = 400 + origin_tech = "magnets=2;biotech=3;syndicate=2" + var/intensity = 5 // how much damage the radiation does + var/wavelength = 10 // time it takes for the radiation to kick in, in seconds + var/used = 0 // is it cooling down? + +/obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) + if(!used) + user.visible_message(text("[] has analyzed []'s vitals!", user, M)) + var/cooldown = max(100,((intensity*8)-(wavelength/2))*10) + used = 1 + icon_state = "health1" + handle_cooldown(cooldown) + spawn((wavelength+(intensity*2.5))*10) + if(M) + if(intensity >= 5) + M.apply_effect(intensity/2, PARALYZE, 0) + M.apply_effect(intensity*10, IRRADIATE, 0) + else + user << "The radioactive microlaser is still recharging." + +/obj/item/device/rad_laser/proc/handle_cooldown(var/cooldown) + spawn(cooldown) + used = 0 + icon_state = "health" + +/obj/item/device/rad_laser/attack_self(mob/user as mob) + interact(user) + +/obj/item/device/rad_laser/interact(mob/user as mob) + usr.set_machine(src) + + var/cooldown = max(10,((intensity*8)-(wavelength/2))) + var/dat = {" + Radiation Intensity: -- [intensity] ++
+ Radiation Wavelength: -- [(wavelength+(intensity*2.5))] ++
+ Laser Cooldown: [cooldown] Seconds
+ "} + + var/datum/browser/popup = new(user, "radlaser", "Radioactive Microlaser Interface", 400, 240) + popup.set_content(dat) + popup.open() + +/obj/item/device/rad_laser/Topic(href, href_list) + if(..()) + return + + usr.set_machine(src) + + if(href_list["radint"]) + var/amount = text2num(href_list["radint"]) + amount += intensity + intensity = max(1,(min(10,amount))) + + else if(href_list["radwav"]) + var/amount = text2num(href_list["radwav"]) + amount += wavelength + wavelength = max(1,(min(120,amount))) + + interact(usr) + add_fingerprint(usr) + return \ No newline at end of file diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi index 1e3090a1c6391f709ca04e083e538b6ca6b33807..db879f05ce4bc5692d340e802c218f6056c373f4 100644 GIT binary patch literal 23553 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

n-+v+Qe=e|};$zr{C2 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 literal 23393 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 Date: Sat, 21 Jun 2014 14:30:49 -0400 Subject: [PATCH 02/36] Balancing Tweaks the cooldown numbers, as well as the wavelength calculations. Anti-toxin, hyronalin, and arithrazine all reduce the effects of the radiation now. --- .../objects/items/devices/traitordevices.dm | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index d636bf50139..f7cc275d29b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -81,7 +81,7 @@ effective or pretty fucking useless. throw_speed = 3 throw_range = 7 m_amt = 400 - origin_tech = "magnets=2;biotech=3;syndicate=2" + origin_tech = "magnets=3;biotech=5;syndicate=3" var/intensity = 5 // how much damage the radiation does var/wavelength = 10 // time it takes for the radiation to kick in, in seconds var/used = 0 // is it cooling down? @@ -89,15 +89,18 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) if(!used) user.visible_message(text("[] has analyzed []'s vitals!", user, M)) - var/cooldown = max(100,((intensity*8)-(wavelength/2))*10) + var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) used = 1 icon_state = "health1" - handle_cooldown(cooldown) - spawn((wavelength+(intensity*2.5))*10) + handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength + spawn((wavelength+(intensity*4))*10) if(M) - if(intensity >= 5) - M.apply_effect(intensity/2, PARALYZE, 0) - M.apply_effect(intensity*10, IRRADIATE, 0) + if(M.reagents.get_reagent_amount("anti_toxin") >= 30 || M.reagents.get_reagent_amount("hyronalin") >= 20 || M.reagents.get_reagent_amount("arithrazine") >= 10) + M.apply_effect((intensity/2)*10, IRRADIATE) + else + if(intensity >= 5) + M.apply_effect(round(intensity/1.5), PARALYZE) + M.apply_effect(intensity*10, IRRADIATE) else user << "The radioactive microlaser is still recharging." @@ -112,10 +115,10 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/interact(mob/user as mob) usr.set_machine(src) - var/cooldown = max(10,((intensity*8)-(wavelength/2))) + var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) var/dat = {" Radiation Intensity: -- [intensity] ++
- Radiation Wavelength: -- [(wavelength+(intensity*2.5))] ++
+ Radiation Wavelength: -- [(wavelength+(intensity*4))] ++
Laser Cooldown: [cooldown] Seconds
"} From 5913913c45b49c10649e631245537528e5ee866e Mon Sep 17 00:00:00 2001 From: CollenN Date: Sat, 21 Jun 2014 15:26:16 -0400 Subject: [PATCH 03/36] Fixes scan message Now it uses the right color and punctuation --- code/game/objects/items/devices/traitordevices.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index f7cc275d29b..5747daa3c4b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -88,7 +88,7 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) if(!used) - user.visible_message(text("[] has analyzed []'s vitals!", user, M)) + user.visible_message(text("[] has analyzed []'s vitals.", user, M)) var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) used = 1 icon_state = "health1" From 36261f94c8cef198fbfbb135a7fd963ecc6dac8c Mon Sep 17 00:00:00 2001 From: CollenN Date: Sat, 21 Jun 2014 15:40:16 -0400 Subject: [PATCH 04/36] return 1 --- code/game/objects/items/devices/traitordevices.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 5747daa3c4b..137270d62ea 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -128,7 +128,7 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/Topic(href, href_list) if(..()) - return + return 1 usr.set_machine(src) From 734558f7cc9785d1ee1b20a3c96e275e7abd379a Mon Sep 17 00:00:00 2001 From: CollenN Date: Mon, 30 Jun 2014 17:01:29 -0400 Subject: [PATCH 05/36] Removes reagent check I've been somewhat busy recently. --- code/game/objects/items/devices/traitordevices.dm | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 137270d62ea..e480569b5b4 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -95,12 +95,9 @@ effective or pretty fucking useless. handle_cooldown(cooldown) // splits off to handle the cooldown while handling wavelength spawn((wavelength+(intensity*4))*10) if(M) - if(M.reagents.get_reagent_amount("anti_toxin") >= 30 || M.reagents.get_reagent_amount("hyronalin") >= 20 || M.reagents.get_reagent_amount("arithrazine") >= 10) - M.apply_effect((intensity/2)*10, IRRADIATE) - else - if(intensity >= 5) - M.apply_effect(round(intensity/1.5), PARALYZE) - M.apply_effect(intensity*10, IRRADIATE) + if(intensity >= 5) + M.apply_effect(round(intensity/1.5), PARALYZE) + M.apply_effect(intensity*10, IRRADIATE) else user << "The radioactive microlaser is still recharging." From ae0be09cbace77a9249139b6526f01a946a0ed45 Mon Sep 17 00:00:00 2001 From: CollenN Date: Sat, 5 Jul 2014 22:53:19 -0400 Subject: [PATCH 06/36] Stuff Stuff: The Commit: The Update --- code/game/objects/items/devices/traitordevices.dm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index e480569b5b4..44b8434aa2b 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -88,6 +88,7 @@ effective or pretty fucking useless. /obj/item/device/rad_laser/attack(mob/living/M as mob, mob/living/user as mob) if(!used) + ..() user.visible_message(text("[] has analyzed []'s vitals.", user, M)) var/cooldown = round(max(100,(((intensity*8)-(wavelength/2))+(intensity*2))*10)) used = 1 @@ -110,7 +111,7 @@ effective or pretty fucking useless. interact(user) /obj/item/device/rad_laser/interact(mob/user as mob) - usr.set_machine(src) + set_machine(src) var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) var/dat = {" @@ -127,7 +128,7 @@ effective or pretty fucking useless. if(..()) return 1 - usr.set_machine(src) + set_machine(src) if(href_list["radint"]) var/amount = text2num(href_list["radint"]) @@ -139,6 +140,6 @@ effective or pretty fucking useless. amount += wavelength wavelength = max(1,(min(120,amount))) - interact(usr) + updateUsrDialog() add_fingerprint(usr) return \ No newline at end of file From 92cd196731d57c394e8d38206209e950fe1b61d7 Mon Sep 17 00:00:00 2001 From: CollenN Date: Sun, 6 Jul 2014 08:54:07 -0400 Subject: [PATCH 07/36] Stuff 2 --- code/game/objects/items/devices/traitordevices.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 44b8434aa2b..1fd611703db 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -111,7 +111,7 @@ effective or pretty fucking useless. interact(user) /obj/item/device/rad_laser/interact(mob/user as mob) - set_machine(src) + user.set_machine(src) var/cooldown = round(max(10,((intensity*8)-(wavelength/2))+(intensity*2))) var/dat = {" @@ -128,7 +128,7 @@ effective or pretty fucking useless. if(..()) return 1 - set_machine(src) + usr.set_machine(src) if(href_list["radint"]) var/amount = text2num(href_list["radint"]) From 7b90557deaed6a60feda089d00e9b6e633cd5783 Mon Sep 17 00:00:00 2001 From: CollenN Date: Mon, 7 Jul 2014 13:46:59 -0400 Subject: [PATCH 08/36] ..() --- code/game/objects/items/devices/traitordevices.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm index 1fd611703db..eb5a33d17d3 100644 --- a/code/game/objects/items/devices/traitordevices.dm +++ b/code/game/objects/items/devices/traitordevices.dm @@ -108,6 +108,7 @@ effective or pretty fucking useless. icon_state = "health" /obj/item/device/rad_laser/attack_self(mob/user as mob) + ..() interact(user) /obj/item/device/rad_laser/interact(mob/user as mob) @@ -125,7 +126,7 @@ effective or pretty fucking useless. popup.open() /obj/item/device/rad_laser/Topic(href, href_list) - if(..()) + if(!usr.canUseTopic(src)) return 1 usr.set_machine(src) From fcb2fb9de39c7447df935093e542a335d65b7da9 Mon Sep 17 00:00:00 2001 From: KyrahAbattoir Date: Sat, 26 Jul 2014 17:36:37 +0200 Subject: [PATCH 09/36] Another lowercasing pass on a bunch of items and furnitures. Synthflesh should be a plural. Leg cuffs is better than legcuffs. LaserTag -> laser tag is not a brand name. centcom -> Centcom is always capitalised. --- code/datums/supplypacks.dm | 6 +++--- code/defines/obj.dm | 4 ++-- code/defines/obj/weapon.dm | 5 +++-- code/game/gamemodes/cult/cult_items.dm | 2 +- code/game/gamemodes/cult/cult_structures.dm | 8 ++++---- code/game/gamemodes/nuclear/nuclearbomb.dm | 2 +- code/game/gamemodes/nuclear/pinpointer.dm | 2 +- code/game/objects/items/devices/radio/headset.dm | 2 +- code/modules/admin/verbs/debug.dm | 8 ++++---- code/modules/clothing/head/helmet.dm | 4 ++-- code/modules/library/lib_machines.dm | 8 ++++---- code/modules/mining/laborcamp/laborshuttle.dm | 4 ++-- code/modules/mining/laborcamp/laborstacker.dm | 4 ++-- code/modules/mining/satchel_ore_boxdm.dm | 2 +- code/modules/projectiles/projectile/beams.dm | 2 +- 15 files changed, 32 insertions(+), 31 deletions(-) diff --git a/code/datums/supplypacks.dm b/code/datums/supplypacks.dm index 59dede1d138..85f57ba6f3a 100644 --- a/code/datums/supplypacks.dm +++ b/code/datums/supplypacks.dm @@ -899,7 +899,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine containername = "water tank crate" /datum/supply_packs/misc/lasertag - name = "LaserTag Crate" + name = "Laser Tag Crate" contains = list(/obj/item/weapon/gun/energy/laser/redtag, /obj/item/weapon/gun/energy/laser/redtag, /obj/item/weapon/gun/energy/laser/redtag, @@ -915,7 +915,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /obj/item/clothing/head/helmet/redtaghelm, /obj/item/clothing/head/helmet/bluetaghelm) cost = 15 - containername = "LaserTag Crate" + containername = "laser tag crate" /datum/supply_packs/misc/religious_supplies name = "Religious Supplies Crate" @@ -1064,7 +1064,7 @@ var/list/all_supply_groups = list(supply_emergency,supply_security,supply_engine /obj/item/clothing/head/collectable/petehat) name = "Collectable hat crate!" cost = 200 - containername = "Collectable hats crate! Brought to you by Bass.inc!" + containername = "collectable hats crate! Brought to you by Bass.inc!" /datum/supply_packs/misc/randomised/New() manifest += "Contains any [num_contained] of:" diff --git a/code/defines/obj.dm b/code/defines/obj.dm index 989b16c800a..df96df6c76b 100644 --- a/code/defines/obj.dm +++ b/code/defines/obj.dm @@ -50,13 +50,13 @@ unacidable = 1//temporary until I decide whether the borg can be removed. -veyveyr /obj/structure/showcase/fakeid - name = "Centcom Identification Console" + name = "\improper Centcom identification console" desc = "You can use this to change ID's." icon = 'icons/obj/computer.dmi' icon_state = "id" /obj/structure/showcase/fakesec - name = "Centcom Security Records" + name = "\improper Centcom security records" desc = "Used to view and edit personnel's security records" icon = 'icons/obj/computer.dmi' icon_state = "security" diff --git a/code/defines/obj/weapon.dm b/code/defines/obj/weapon.dm index 4b168a95915..28f806a74d6 100644 --- a/code/defines/obj/weapon.dm +++ b/code/defines/obj/weapon.dm @@ -95,7 +95,7 @@ icon = 'icons/obj/items.dmi' /obj/item/weapon/legcuffs - name = "legcuffs" + name = "leg cuffs" desc = "Use this to keep prisoners in line." gender = PLURAL icon = 'icons/obj/items.dmi' @@ -282,6 +282,7 @@ /obj/item/weapon/syntiflesh name = "syntiflesh" desc = "Meat that appears...strange..." + gender = PLURAL icon = 'icons/obj/food.dmi' icon_state = "meat" flags = CONDUCT @@ -342,7 +343,7 @@ ///////////////////////////////////////Stock Parts ///////////////////////////////// /obj/item/weapon/storage/part_replacer - name = "Rapid Part Exchange Device" + name = "rapid part exchange device" desc = "Special mechanical module made to store, sort, and apply standard machine parts." icon_state = "RPED" item_state = "RPED" diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index 903732b6d17..37df1fa8581 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -1,5 +1,5 @@ /obj/item/weapon/melee/cultblade - name = "Cult Blade" + name = "cult blade" desc = "An arcane weapon wielded by the followers of Nar-Sie" icon_state = "cultblade" item_state = "cultblade" diff --git a/code/game/gamemodes/cult/cult_structures.dm b/code/game/gamemodes/cult/cult_structures.dm index 131e1640714..01bab649c0c 100644 --- a/code/game/gamemodes/cult/cult_structures.dm +++ b/code/game/gamemodes/cult/cult_structures.dm @@ -4,24 +4,24 @@ icon = 'icons/obj/cult.dmi' /obj/structure/cult/talisman - name = "Altar" + name = "altar" desc = "A bloodstained altar dedicated to Nar-Sie" icon_state = "talismanaltar" /obj/structure/cult/forge - name = "Daemon forge" + name = "daemon forge" desc = "A forge used in crafting the unholy weapons used by the armies of Nar-Sie" icon_state = "forge" /obj/structure/cult/pylon - name = "Pylon" + name = "pylon" desc = "A floating crystal that hums with an unearthly energy" icon_state = "pylon" luminosity = 5 /obj/structure/cult/tome - name = "Desk" + name = "desk" desc = "A desk covered in arcane manuscripts and tomes in unknown languages. Looking at the text makes your skin crawl" icon_state = "tomealtar" // luminosity = 5 diff --git a/code/game/gamemodes/nuclear/nuclearbomb.dm b/code/game/gamemodes/nuclear/nuclearbomb.dm index df835cbfda0..9f79aa9de4d 100644 --- a/code/game/gamemodes/nuclear/nuclearbomb.dm +++ b/code/game/gamemodes/nuclear/nuclearbomb.dm @@ -1,7 +1,7 @@ var/bomb_set /obj/machinery/nuclearbomb - name = "\improper Nuclear Fission Explosive" + name = "nuclear fission explosive" desc = "Uh oh. RUN!!!!" icon = 'icons/obj/stationobjs.dmi' icon_state = "nuclearbomb0" diff --git a/code/game/gamemodes/nuclear/pinpointer.dm b/code/game/gamemodes/nuclear/pinpointer.dm index 6f1413fb71c..c6c34c9beb0 100644 --- a/code/game/gamemodes/nuclear/pinpointer.dm +++ b/code/game/gamemodes/nuclear/pinpointer.dm @@ -62,7 +62,7 @@ /obj/item/weapon/pinpointer/advpinpointer - name = "Advanced Pinpointer" + name = "advanced pinpointer" icon = 'icons/obj/device.dmi' desc = "A larger version of the normal pinpointer, this unit features a helpful quantum entanglement detection system to locate various objects that do not broadcast a locator signal." var/mode = 0 // Mode 0 locates disk, mode 1 locates coordinates. diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 463f17caf6d..d6a1e53c4c5 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -155,7 +155,7 @@ keyslot2 = new /obj/item/device/encryptionkey/headset_service /obj/item/device/radio/headset/headset_cent - name = "centcom headset" + name = "\improper Centcom headset" desc = "A headset used by the upper echelons of Nanotrasen. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "cent_headset" item_state = "headset" diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm index 832fe3a43f1..754ec1591b0 100644 --- a/code/modules/admin/verbs/debug.dm +++ b/code/modules/admin/verbs/debug.dm @@ -626,8 +626,8 @@ var/global/list/g_fancy_list_of_safe_types = null "tournament gangster", "tournament chef", "tournament janitor", - "lasertag red", - "lasertag blue", + "laser tag red", + "laser tag blue", "pirate", "space pirate", "soviet admiral", @@ -739,7 +739,7 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/stack/tile/plasteel(M), slot_in_backpack) - if ("lasertag red") + if ("laser tag red") M.equip_to_slot_or_del(new /obj/item/clothing/under/color/red(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/red(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/red(M), slot_gloves) @@ -750,7 +750,7 @@ var/global/list/g_fancy_list_of_safe_types = null M.equip_to_slot_or_del(new /obj/item/weapon/storage/box(M), slot_in_backpack) M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/laser/redtag(M), slot_s_store) - if ("lasertag blue") + if ("laser tag blue") M.equip_to_slot_or_del(new /obj/item/clothing/under/color/blue(M), slot_w_uniform) M.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/blue(M), slot_shoes) M.equip_to_slot_or_del(new /obj/item/clothing/gloves/blue(M), slot_gloves) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 4eae487d02b..1e4e6b2dee7 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -86,7 +86,7 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES obj/item/clothing/head/helmet/redtaghelm - name = "Red LaserTag Helmet" + name = "red laser tag helmet" desc = "They have chosen their own end." icon_state = "redtaghelm" flags = HEADCOVERSEYES @@ -96,7 +96,7 @@ obj/item/clothing/head/helmet/redtaghelm flags_inv = HIDEEARS|HIDEEYES obj/item/clothing/head/helmet/bluetaghelm - name = "Blue LaserTag Helmet" + name = "blue laser tag helmet" desc = "They'll need more men." icon_state = "bluetaghelm" flags = HEADCOVERSEYES diff --git a/code/modules/library/lib_machines.dm b/code/modules/library/lib_machines.dm index 61abae5d23a..19559ac0523 100644 --- a/code/modules/library/lib_machines.dm +++ b/code/modules/library/lib_machines.dm @@ -21,7 +21,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f * Library Public Computer */ /obj/machinery/librarypubliccomp - name = "Library Visitor Console" + name = "library visitor console" icon = 'icons/obj/library.dmi' icon_state = "computer" anchored = 1 @@ -119,7 +119,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f // TODO: Make this an actual /obj/machinery/computer that can be crafted from circuit boards and such // It is August 22nd, 2012... This TODO has already been here for months.. I wonder how long it'll last before someone does something about it. /obj/machinery/librarycomp - name = "Book Inventory Management Console" + name = "book inventory management console" icon = 'icons/obj/library.dmi' icon_state = "computer" anchored = 1 @@ -399,7 +399,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f * Library Scanner */ /obj/machinery/libraryscanner - name = "Scanner Control Interface" + name = "scanner control interface" icon = 'icons/obj/library.dmi' icon_state = "bigscanner" anchored = 1 @@ -454,7 +454,7 @@ datum/borrowbook // Datum used to keep track of who has borrowed what when and f * Book binder */ /obj/machinery/bookbinder - name = "Book Binder" + name = "book binder" icon = 'icons/obj/library.dmi' icon_state = "binder" anchored = 1 diff --git a/code/modules/mining/laborcamp/laborshuttle.dm b/code/modules/mining/laborcamp/laborshuttle.dm index 535edbb899d..d0fce36e488 100644 --- a/code/modules/mining/laborcamp/laborshuttle.dm +++ b/code/modules/mining/laborcamp/laborshuttle.dm @@ -1,5 +1,5 @@ /obj/machinery/computer/shuttle/labor - name = "Labor Shuttle Console" + name = "labor shuttle console" icon = 'icons/obj/computer.dmi' icon_state = "shuttle" circuit = /obj/item/weapon/circuitboard/labor_shuttle @@ -8,7 +8,7 @@ /obj/machinery/computer/shuttle/labor/one_way - name = "Prisoner Shuttle Console" + name = "prisoner shuttle console" desc = "A one-way shuttle console, used to summon the shuttle to the labor camp." circuit = /obj/item/weapon/circuitboard/labor_shuttle/one_way req_access = list( ) diff --git a/code/modules/mining/laborcamp/laborstacker.dm b/code/modules/mining/laborcamp/laborstacker.dm index 13195eff487..334d71311e5 100644 --- a/code/modules/mining/laborcamp/laborstacker.dm +++ b/code/modules/mining/laborcamp/laborstacker.dm @@ -1,7 +1,7 @@ /**********************Prisoners' Console**************************/ /obj/machinery/mineral/labor_claim_console - name = "Point Claim Console" + name = "point claim console" desc = "A stacking console with an electromagnetic writer, used to track ore mined by prisoners." name = "stacking machine console" icon = 'icons/obj/machines/mining_machines.dmi' @@ -34,7 +34,7 @@ /obj/machinery/mineral/labor_claim_console/attack_hand(user as mob) - name = "Point Claim Console" + name = "point claim console" icon = 'icons/obj/machines/mining_machines.dmi' icon_state = "console" desc = "A stacking console with an electromagnetic writer, used to track ore mined by prisoners." diff --git a/code/modules/mining/satchel_ore_boxdm.dm b/code/modules/mining/satchel_ore_boxdm.dm index d2ff9f1e18e..1bba0dfd42f 100644 --- a/code/modules/mining/satchel_ore_boxdm.dm +++ b/code/modules/mining/satchel_ore_boxdm.dm @@ -4,7 +4,7 @@ /obj/structure/ore_box icon = 'icons/obj/mining.dmi' icon_state = "orebox" - name = "Ore Box" + name = "ore box" desc = "It's heavy" density = 1 diff --git a/code/modules/projectiles/projectile/beams.dm b/code/modules/projectiles/projectile/beams.dm index c6cf2abb843..276a3b8d0de 100644 --- a/code/modules/projectiles/projectile/beams.dm +++ b/code/modules/projectiles/projectile/beams.dm @@ -58,7 +58,7 @@ /obj/item/projectile/lasertag - name = "lasertag beam" + name = "laser tag beam" icon_state = "omnilaser" hitsound = null damage = 0 From 87d5ce33c468f42cf66b806bc127a8cfa72097fd Mon Sep 17 00:00:00 2001 From: AndroidSFV Date: Mon, 28 Jul 2014 12:29:55 -0500 Subject: [PATCH 10/36] Give the monkey mode an intercept, because the lack of it is meta~ --- code/game/gamemodes/monkey/monkey.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm index 0d5994d8f12..184cb582486 100644 --- a/code/game/gamemodes/monkey/monkey.dm +++ b/code/game/gamemodes/monkey/monkey.dm @@ -70,6 +70,8 @@ D.holder = carriermind.current D.affected_mob = carriermind.current carriermind.current.viruses += D + spawn (rand(waittime_l, waittime_h)) + send_intercept() ..() /datum/game_mode/monkey/proc/check_monkey_victory() From c59dfb410b26b009548125595c45601c1d130c19 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Mon, 28 Jul 2014 13:26:16 -0700 Subject: [PATCH 11/36] Make airlocks weldable again --- code/game/machinery/doors/airlock.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 3feecfb6bb4..904e526682b 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -881,7 +881,7 @@ About the new airlock wires panel: user << "You begin [welded ? "unwelding":"welding"] the airlock..." playsound(loc, 'sound/items/Welder2.ogg', 40, 1) if(do_after(user,40,5,1)) - if(!density && !operating)//Door must be closed to weld. + if(density && !operating)//Door must be closed to weld. if(W.remove_fuel(0,user)) playsound(loc, 'sound/items/welder.ogg', 50, 1) welded = !welded From 40548613e43bc5841e51073fa30fa257d63c29e1 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Mon, 28 Jul 2014 17:13:33 -0700 Subject: [PATCH 12/36] Make deleted sleepers kick the occupant out properly Fixes #4244 Also changes sleeper/ex_act() a tiny bit because it bothered me while I had the file open. --- code/game/machinery/Sleeper.dm | 11 +++-------- code/game/machinery/machinery.dm | 2 ++ 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 31a6bcab760..83c900bee2f 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -87,21 +87,21 @@ if(1.0) for(var/atom/movable/A in src) A.loc = loc - ex_act(severity) + A.ex_act(severity) qdel(src) return if(2.0) if(prob(50)) for(var/atom/movable/A in src) A.loc = loc - ex_act(severity) + A.ex_act(severity) qdel(src) return if(3.0) if(prob(25)) for(var/atom/movable/A in src) A.loc = loc - ex_act(severity) + A.ex_act(severity) qdel(src) @@ -131,11 +131,6 @@ ..() open_machine() -/obj/machinery/sleeper/Destroy() - var/turf/T = loc - T.contents += contents - ..() - /obj/machinery/sleeper/attack_hand(mob/user) if(..()) return diff --git a/code/game/machinery/machinery.dm b/code/game/machinery/machinery.dm index 2f5cb7d54b6..f5612c6aef8 100644 --- a/code/game/machinery/machinery.dm +++ b/code/game/machinery/machinery.dm @@ -116,6 +116,8 @@ Class Procs: /obj/machinery/Destroy() machines.Remove(src) + if(occupant) + open_machine() ..() /obj/machinery/process()//If you dont use process or power why are you here From f8bcdc95f6c5e8785cff965ad64ffd6d30931e3b Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 29 Jul 2014 08:13:09 -0700 Subject: [PATCH 13/36] fixes hud sprite --- icons/mob/eyes.dmi | Bin 5777 -> 5813 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi index 88c6ca25c257e76bb19d2db5c1abd2249bcda46e..4ed5be77dc589478abfadf4f88ed3249bb0839a7 100644 GIT binary patch delta 4448 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 BISK#( delta 4435 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 Date: Tue, 29 Jul 2014 09:12:01 -0700 Subject: [PATCH 14/36] fixed moving between adjacent tables --- code/game/objects/structures/tables_racks.dm | 8 +++++--- config/admins.txt | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm index 79ccd28eec3..b22febb5900 100644 --- a/code/game/objects/structures/tables_racks.dm +++ b/code/game/objects/structures/tables_racks.dm @@ -521,6 +521,8 @@ if(istype(mover) && mover.checkpass(PASSTABLE)) return 1 + if(locate(/obj/structure/table) in get_turf(mover)) + return 1 else return 0 @@ -559,16 +561,16 @@ if (istype(I, /obj/item/weapon/wrench)) table_destroy(2, user) return - + if (istype(I, /obj/item/weapon/storage/bag/tray)) var/obj/item/weapon/storage/bag/tray/T = I if(T.contents.len > 0) // If the tray isn't empty var/list/obj/item/oldContents = T.contents.Copy() T.quick_empty() - + for(var/obj/item/C in oldContents) C.loc = src.loc - + user.visible_message("[user] empties [I] on [src].") return // If the tray IS empty, continue on (tray will be placed on the table like other items) diff --git a/config/admins.txt b/config/admins.txt index c367783a872..e8a1826da82 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -59,4 +59,5 @@ hornygranny = Game Master yota = Game Master firecage = Game Master donkieyo = Game Master -argoneus = Game Master \ No newline at end of file +argoneus = Game Master +paprka = Game Master \ No newline at end of file From 629d3a3edc39f3793d289e5d020524f1c7a582f3 Mon Sep 17 00:00:00 2001 From: AndroidSFV Date: Tue, 29 Jul 2014 14:56:44 -0500 Subject: [PATCH 15/36] Moved intercept to the parent post_setup --- code/game/gamemodes/blob/blob.dm | 3 --- code/game/gamemodes/changeling/changeling.dm | 6 ------ code/game/gamemodes/cult/cult.dm | 5 ----- code/game/gamemodes/extended/extended.dm | 5 ----- code/game/gamemodes/game_mode.dm | 5 +++++ code/game/gamemodes/malfunction/malfunction.dm | 5 +---- code/game/gamemodes/meteor/meteor.dm | 4 ---- code/game/gamemodes/monkey/monkey.dm | 5 ----- code/game/gamemodes/nuclear/nuclear.dm | 5 ----- code/game/gamemodes/revolution/revolution.dm | 4 ---- code/game/gamemodes/traitor/traitor.dm | 5 ----- code/game/gamemodes/wizard/wizard.dm | 6 ------ 12 files changed, 6 insertions(+), 52 deletions(-) diff --git a/code/game/gamemodes/blob/blob.dm b/code/game/gamemodes/blob/blob.dm index 1b72fbc1935..984888483bf 100644 --- a/code/game/gamemodes/blob/blob.dm +++ b/code/game/gamemodes/blob/blob.dm @@ -17,9 +17,6 @@ var/list/blob_nodes = list() restricted_jobs = list("Cyborg", "AI") - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/declared = 0 var/cores_to_spawn = 1 diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 3d975f2bacc..177ee48f567 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -34,9 +34,6 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/const/prob_right_objective_l = 25 //lower bound on probability of determining the objective correctly var/const/prob_right_objective_h = 50 //upper bound on probability of determining the objective correctly - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/const/changeling_amount = 4 //hard limit on changelings if scaling is turned off /datum/game_mode/changeling/announce() @@ -78,9 +75,6 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" changeling.special_role = "Changeling" forge_changeling_objectives(changeling) greet_changeling(changeling) - - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() return diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm index c68c9e0b41f..f9534c6b63e 100644 --- a/code/game/gamemodes/cult/cult.dm +++ b/code/game/gamemodes/cult/cult.dm @@ -34,8 +34,6 @@ uplink_uses = 10 var/finished = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/list/startwords = list("blood","join","self","hell") var/list/secondwords = list("travel", "see", "tech", "destroy", "other", "hide") @@ -108,9 +106,6 @@ cult_mind.current << "\blue You are a member of the cult!" memorize_cult_objectives(cult_mind) cult_mind.special_role = "Cultist" - - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() diff --git a/code/game/gamemodes/extended/extended.dm b/code/game/gamemodes/extended/extended.dm index 2c37c1bb841..04dc0d29685 100644 --- a/code/game/gamemodes/extended/extended.dm +++ b/code/game/gamemodes/extended/extended.dm @@ -6,9 +6,6 @@ uplink_welcome = "Syndicate Uplink Console:" uplink_uses = 10 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 - /datum/game_mode/announce() world << "The current game mode is - Extended Role-Playing!" world << "Just have fun and role-play!" @@ -17,6 +14,4 @@ return 1 /datum/game_mode/extended/post_setup() - spawn (rand(waittime_l, waittime_h)) // To reduce extended meta. - send_intercept() ..() \ No newline at end of file diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index c865bdf2789..7d6f10c52cc 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -32,6 +32,9 @@ var/antag_flag = null //preferences flag such as BE_WIZARD that need to be turned on for players to be antag var/datum/mind/sacrifice_target = null + var/const/waittime_l = 600 + var/const/waittime_h = 1800 // started at 1800 + /datum/game_mode/proc/announce() //to be calles when round starts world << "Notice: [src] did not define announce()" @@ -75,6 +78,8 @@ if(revdata.revision) feedback_set_details("revision","[revdata.revision]") feedback_set_details("server_ip","[world.internet_address]:[world.port]") + spawn (rand(waittime_l, waittime_h)) + send_intercept() return 1 ///make_antag_chance() diff --git a/code/game/gamemodes/malfunction/malfunction.dm b/code/game/gamemodes/malfunction/malfunction.dm index f83efb76885..59de10fc5e8 100644 --- a/code/game/gamemodes/malfunction/malfunction.dm +++ b/code/game/gamemodes/malfunction/malfunction.dm @@ -13,8 +13,7 @@ uplink_welcome = "Crazy AI Uplink Console:" uplink_uses = 10 - var/const/waittime_l = 600 - var/const/waittime_h = 1800 // started at 1800 + var/AI_win_timeleft = 1800 //started at 1800, in case I change this for testing round end. var/malf_mode_declared = 0 @@ -90,8 +89,6 @@ */ if(emergency_shuttle) emergency_shuttle.always_fake_recall = 1 - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() diff --git a/code/game/gamemodes/meteor/meteor.dm b/code/game/gamemodes/meteor/meteor.dm index a72761d20d8..ef7c78843fa 100644 --- a/code/game/gamemodes/meteor/meteor.dm +++ b/code/game/gamemodes/meteor/meteor.dm @@ -1,8 +1,6 @@ /datum/game_mode/meteor name = "meteor" config_tag = "meteor" - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/const/meteordelay = 2000 var/nometeors = 1 required_players = 0 @@ -18,8 +16,6 @@ /datum/game_mode/meteor/post_setup() // defer_powernet_rebuild = 2//Might help with the lag - spawn (rand(waittime_l, waittime_h)) - send_intercept() spawn(meteordelay) nometeors = 0 ..() diff --git a/code/game/gamemodes/monkey/monkey.dm b/code/game/gamemodes/monkey/monkey.dm index 184cb582486..ba6f61653a1 100644 --- a/code/game/gamemodes/monkey/monkey.dm +++ b/code/game/gamemodes/monkey/monkey.dm @@ -12,9 +12,6 @@ restricted_jobs = list("Cyborg", "AI") - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/carriers_to_make = 1 var/list/carriers = list() @@ -70,8 +67,6 @@ D.holder = carriermind.current D.affected_mob = carriermind.current carriermind.current.viruses += D - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() /datum/game_mode/monkey/proc/check_monkey_victory() diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm index 7f91b8bcf46..720775ca0fe 100644 --- a/code/game/gamemodes/nuclear/nuclear.dm +++ b/code/game/gamemodes/nuclear/nuclear.dm @@ -15,8 +15,6 @@ uplink_uses = 10 var/const/agents_possible = 5 //If we ever need more syndicate agents. - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) var/nukes_left = 1 // Call 3714-PRAY right now and order more nukes! Limited offer! var/nuke_off_station = 0 //Used for tracking if the syndies actually haul the nuke to the station @@ -139,9 +137,6 @@ var/obj/machinery/nuclearbomb/the_bomb = new /obj/machinery/nuclearbomb(nuke_spawn.loc) the_bomb.r_code = nuke_code - spawn (rand(waittime_l, waittime_h)) - send_intercept() - return ..() diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm index 490839c8d90..383fcb9c653 100644 --- a/code/game/gamemodes/revolution/revolution.dm +++ b/code/game/gamemodes/revolution/revolution.dm @@ -27,8 +27,6 @@ var/finished = 0 var/checkwin_counter = 0 var/const/max_headrevs = 3 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) /////////////////////////// //Announces the game type// /////////////////////////// @@ -91,8 +89,6 @@ modePlayer += head_revolutionaries if(emergency_shuttle) emergency_shuttle.always_fake_recall = 1 - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 512e341122b..795a2976e1b 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -20,9 +20,6 @@ uplink_welcome = "Syndicate Uplink Console:" uplink_uses = 10 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - var/traitors_possible = 4 //hard limit on traitors if scaling is turned off var/scale_modifier = 1 // Used for gamemodes, that are a child of traitor, that need more than the usual. @@ -73,8 +70,6 @@ if(!exchange_blue) exchange_blue = -1 //Block latejoiners from getting exchange objectives modePlayer += traitors - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() return 1 diff --git a/code/game/gamemodes/wizard/wizard.dm b/code/game/gamemodes/wizard/wizard.dm index 076ed86da5d..ae728ff5650 100644 --- a/code/game/gamemodes/wizard/wizard.dm +++ b/code/game/gamemodes/wizard/wizard.dm @@ -15,9 +15,6 @@ var/finished = 0 - var/const/waittime_l = 600 //lower bound on time before intercept arrives (in tenths of seconds) - var/const/waittime_h = 1800 //upper bound on time before intercept arrives (in tenths of seconds) - /datum/game_mode/wizard/announce() world << "The current game mode is - Wizard!" world << "There is a \red SPACE WIZARD\black on the station. You can't let him achieve his objective!" @@ -46,9 +43,6 @@ equip_wizard(wizard.current) name_wizard(wizard.current) greet_wizard(wizard) - - spawn (rand(waittime_l, waittime_h)) - send_intercept() ..() return From 99e7957db067cfb3fafaae70822e2c19ba23a6db Mon Sep 17 00:00:00 2001 From: AndroidSFV Date: Tue, 29 Jul 2014 14:59:47 -0500 Subject: [PATCH 16/36] Fixes a minor span class in tape recorder --- code/game/objects/items/devices/taperecorder.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/devices/taperecorder.dm b/code/game/objects/items/devices/taperecorder.dm index 7c54c3a434b..200c0a0a855 100644 --- a/code/game/objects/items/devices/taperecorder.dm +++ b/code/game/objects/items/devices/taperecorder.dm @@ -142,7 +142,7 @@ recording = 0 update_icon() else - usr << "" + usr << "The tape is full." /obj/item/device/taperecorder/verb/stop() From 437e864918e1d61cebf8d081e3eb4abd33b1910e Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Thu, 31 Jul 2014 02:53:47 +1000 Subject: [PATCH 17/36] Removes tinted windows from RD and medbay --- _maps/map_files/tgstation.2.1.3.dmm | 36 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/_maps/map_files/tgstation.2.1.3.dmm b/_maps/map_files/tgstation.2.1.3.dmm index e797ffb1c04..06181054f84 100644 --- a/_maps/map_files/tgstation.2.1.3.dmm +++ b/_maps/map_files/tgstation.2.1.3.dmm @@ -3058,9 +3058,9 @@ "bgP" = (/obj/machinery/computer/rdconsole/robotics,/obj/machinery/alarm{pixel_y = 25},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bgQ" = (/obj/structure/table,/obj/item/weapon/book/manual/robotics_cyborgs{pixel_x = 2; pixel_y = 5},/obj/item/weapon/storage/belt/utility,/obj/item/weapon/reagent_containers/glass/beaker/large,/obj/machinery/requests_console{department = "Robotics"; departmentType = 2; name = "Robotics RC"; pixel_y = 30},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "bgR" = (/obj/machinery/r_n_d/circuit_imprinter,/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) -"bgS" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor/plating,/area/assembly/robotics) +"bgS" = (/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},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) "bgT" = (/obj/structure/table/reinforced,/obj/machinery/door/window/eastright{base_state = "left"; dir = 2; icon_state = "left"; name = "Robotics Desk"; req_access_txt = "29"},/obj/item/weapon/paper_bin{pixel_x = -3; pixel_y = 7},/obj/item/weapon/pen,/obj/machinery/door/poddoor/shutters/preopen{id = "robotics"; name = "robotics lab shutters"},/turf/simulated/floor/plating,/area/assembly/robotics) -"bgU" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor/plating,/area/toxins/lab) +"bgU" = (/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/floor/plating,/area/toxins/xenobiology) "bgV" = (/obj/structure/table/reinforced,/obj/machinery/door/window/southright{name = "Research and Development Desk"; req_access_txt = "7"},/obj/machinery/door/poddoor/shutters/preopen{id = "rnd"; name = "research lab shutters"},/turf/simulated/floor/plating,/area/toxins/lab) "bgW" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = 3; pixel_y = 3},/obj/item/stack/sheet/metal{amount = 50},/obj/item/clothing/glasses/welding,/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) "bgX" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 2; pixel_y = 3},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/lab) @@ -3669,7 +3669,7 @@ "bsC" = (/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bsD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{dir = 6; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bsE" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) -"bsF" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/telesci) +"bsF" = (/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/floor/plating,/area/toxins/mixing) "bsG" = (/obj/structure/disposalpipe/segment{dir = 4; icon_state = "pipe-c"},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bsH" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/obj/structure/disposalpipe/segment{dir = 4},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 10},/obj/machinery/light{dir = 1},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) "bsI" = (/obj/structure/disposalpipe/segment{dir = 4},/obj/structure/cable{d1 = 2; d2 = 4; icon_state = "2-4"},/turf/simulated/floor{icon_state = "white"},/area/toxins/telesci) @@ -3720,7 +3720,7 @@ "btB" = (/obj/machinery/computer/scan_consolenew,/turf/simulated/floor{dir = 5; icon_state = "whiteblue"},/area/medical/genetics) "btC" = (/turf/simulated/wall/r_wall,/area/assembly/chargebay) "btD" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/wall/r_wall,/area/assembly/chargebay) -"btE" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/assembly/robotics) +"btE" = (/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/floor/plating,/area/assembly/robotics) "btF" = (/obj/machinery/door/airlock/research{name = "Robotics Lab"; req_access_txt = "29"; req_one_access_txt = "0"},/turf/simulated/floor{icon_state = "white"},/area/assembly/robotics) "btG" = (/obj/structure/cable{d1 = 1; d2 = 8; icon_state = "1-8"},/turf/simulated/floor/plating,/area/mine/laborcamp/security) "btH" = (/obj/structure/disposalpipe/segment,/obj/machinery/hologram/holopad,/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) @@ -4132,7 +4132,7 @@ "bBx" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/disposalpipe/segment{dir = 8; icon_state = "pipe-c"},/turf/simulated/floor/plating,/area/medical/sleeper) "bBy" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/medical/sleeper) "bBz" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor/plating,/area/medical/sleeper) -"bBA" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor{icon_state = "dark"},/area/medical/sleeper) +"bBA" = (/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},/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor/plating,/area/assembly/robotics) "bBB" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Recovery Room"; req_access_txt = "0"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "white"},/area/medical/sleeper) "bBC" = (/obj/machinery/firealarm{dir = 2; pixel_y = 24},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) "bBD" = (/obj/structure/table,/obj/item/weapon/packageWrap,/obj/item/weapon/packageWrap,/obj/item/weapon/pen,/obj/machinery/requests_console{announcementConsole = 0; department = "Medbay"; departmentType = 1; name = "Medbay RC"; pixel_x = 0; pixel_y = 30; pixel_z = 0},/turf/simulated/floor{icon_state = "white"},/area/medical/medbay) @@ -4355,7 +4355,7 @@ "bFM" = (/obj/structure/disposalpipe/segment,/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/medical/research{name = "Research Division"}) "bFN" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 10},/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bFO" = (/turf/simulated/floor{dir = 9; icon_state = "warnwhite"},/area/medical/research{name = "Research Division"}) -"bFP" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor/plating,/area/toxins/mixing) +"bFP" = (/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},/obj/machinery/atmospherics/pipe/simple/supply/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/telesci) "bFQ" = (/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bFR" = (/obj/machinery/atmospherics/pipe/simple{dir = 5; icon_state = "intact"; level = 2},/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) "bFS" = (/obj/machinery/atmospherics/pipe/manifold{icon_state = "manifold"; level = 2},/obj/machinery/meter,/turf/simulated/floor{icon_state = "white"},/area/toxins/mixing) @@ -4725,7 +4725,7 @@ "bMS" = (/obj/structure/table,/obj/machinery/reagentgrinder,/obj/machinery/alarm{frequency = 1439; pixel_y = 23},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bMT" = (/obj/structure/closet/l3closet/scientist,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bMU" = (/obj/structure/closet/l3closet/scientist,/obj/machinery/light_switch{pixel_x = 0; pixel_y = 28},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bMV" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor/plating,/area/toxins/xenobiology) +"bMV" = (/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/floor/plating,/area/toxins/lab) "bMW" = (/obj/machinery/atmospherics/pipe/simple/supply/hidden,/turf/simulated/floor{dir = 9; icon_state = "whitehall"},/area/medical/research{name = "Research Division"}) "bMX" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) "bMY" = (/obj/machinery/door/poddoor{id = "mixvent"; name = "Mixer Room Vent"},/turf/simulated/floor/engine/vacuum,/area/toxins/mixing) @@ -4841,7 +4841,6 @@ "bPe" = (/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; pixel_y = 0},/obj/machinery/hologram/holopad,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bPf" = (/obj/machinery/atmospherics/pipe/manifold{pipe_color = "red"; dir = 1; icon_state = "manifold-r-f"; level = 1; name = "pipe manifold"},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bPg" = (/obj/structure/stool,/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bPh" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 4},/turf/simulated/floor/plating,/area/toxins/xenobiology) "bPi" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 9},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) "bPj" = (/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/medical/research{name = "Research Division"}) "bPk" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor/plating,/area/medical/research{name = "Research Division"}) @@ -4904,7 +4903,6 @@ "bQp" = (/obj/structure/table,/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/item/stack/sheet/mineral/plasma{layer = 2.9},/obj/machinery/light,/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_y = -29},/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bQq" = (/obj/structure/table,/obj/item/weapon/storage/box/beakers{pixel_x = 2; pixel_y = 2},/obj/item/weapon/storage/box/syringes,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) "bQr" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor{icon_state = "white"},/area/toxins/xenobiology) -"bQs" = (/obj/structure/grille,/obj/structure/window/reinforced/tinted{dir = 1},/obj/structure/window/reinforced/tinted,/obj/structure/window/reinforced/tinted{dir = 4; icon_state = "twindow"},/obj/structure/window/reinforced/tinted{dir = 8; icon_state = "twindow"},/turf/simulated/floor/plating,/area/toxins/misc_lab) "bQt" = (/obj/machinery/door/airlock/research{name = "Testing Lab"; req_access_txt = "47"},/turf/simulated/floor{icon_state = "white"},/area/toxins/misc_lab) "bQu" = (/turf/simulated/wall,/area/toxins/misc_lab) "bQv" = (/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{dir = 5},/turf/simulated/wall/r_wall,/area/toxins/mixing) @@ -9277,33 +9275,33 @@ ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlah ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlavJavNavMavMavMavMavMavMavMavMavNavMbbWawNawNbbXbbYbbZbbZbbZbbZbbZbcabcbaOObccbbYbcdaXgaXhaXhbcebcfaXhaORaORbcgaORaYCaYDbchbciaORaZUaYGaYHaZWbcjaZWbaXbckaYHaZYbclbaZbaZbaZbcmbcnaYNbcobbeaXDbbpbcqbcrbcsbctbcubcvbbkbcwbqwbbnbnIbkMbmiaYUbmibkMbnIbbfbqwbcAbcBbbubbvbcCbbxbaxbaxaYWaHUaIuaIubdpbbBaYkaYkaYkaYkaYkaYkaYkaYkbcEaYkaYkaYkaYkaYkaYkbcFbbHbbHbbHbbHbbHbbHbcGbbHbbHbbHbbHbbHbbHbbHbcHbcIbcJbcKaWNaWNaWNaWNaWNaWMaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNaWNbcLbcMbcNbcObcObcPaOFaOFaOFbcQaPXaPXbcQaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjawLawMawNawMawOawNawNawPawMawNawMawOawNawNawNbcRbcSbcRbcRbcRbcRbcRbcTaOOaOOaOObcTaXfaXgaYvbcUbcVbcWaXhbcXbcYbcZaORaORaORaOObbXaOOaZUaYGaYHbdaaZWbaXbdbbdcaYHaZYaYNbddbaZbaZbdebdfbdgbdhbbeaXDbuqbdjbcrbcsbdkbdlbcvbdmbdnbnGbupbuobkMbtfbundsxbkMbrKbtbbrHbdubdvbdwbdxbdxbdybdzbdAaYWbdBbdCaIubdpbbBaYkaYkbdDaYkbdEbdFbdFbdFbdGbdFbdFbdFbdHaYkaYkaYkaYkaYkaYkbdIbdJbdKbbBaYkaYkaYkaYkaYkbdLbdMbdNbdObdPaYkaYkaYkaYkaYkbdQbdRaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkaYkbdSbdTbdUbdVbdWaOFaOFaOGbdXaMnaMnaOIaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlarkavJbdYavJaxZawNawNayaavJbdZavJaybbeabebbebbcRbecbedbeebefbegbcRbehbeibejbejbekbelbembenbenbeobepbenbeqbeqberbeqbesaUoaUoaUoaUobetbeubevbewbexbexbeybezbevbeAbeBbeCbaZbaZbeDbeEbeFbeGbbeaXDaYQbaibeHbbibbibeIbbibbkbeJaYQbqybqwbapbqwbqwbqwbqAbqwbhzaYWbeNbeObePbeQbaxbeRbaxbeSaYWaXVaIuaIubeVbeVbeVbeVbeVbeVbeVbeWbeXbeYbeZbfabfabeWbfbbfbbfbbfbbfbbfcbfcbfcbfdbfcbfcbfcbfcbfeaYkbdQbffbfgbfhbfibfjaYkaYkbfkbfkbflbflbflbflbflbfmbfnbfnbfnbfnaYkbfnbfobfnbfnbfpbfqbfqbfqbfqbfrbfsbftbfuaNsahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjazbaqfazcatwazdazeazfbfvbfwazdatwaziazjaqfazbarkbcRbfxbfybfybfybfzbcRbfAbfBaRCaRCbcTbfCaXhaYvbfDaYybfEaXhbfFbfGbfHbfHbfIbfJbfKbfKbfLbfKbfMbfNbfObfPbfObfObfQbfRbfSbfTbfUbaZbaZbfVbfWbfXbeGbbebfYaYQbfZbgabgbdtQbgcbgdbgebgfaYQbqxcmqboZcltcltboXboYclybgiaYWbgjbgkbglbgmbaxbgnbaxbgoaYWaXVaIubgpbeVbgqbgrbgsbgtbgubeVbgvbgwbgwbgxbgybgybgybgzboLbjpbgCbfbbgDbgEbgEbgEbgEbgFbgGbgHbgIbgJbgIbgIbgIbgKbgLbgMbgNbgMbgObgObflbgPbgQbgRbflbgSbgTbgSbflbfmaYkbfpbfqbgUbgVbgUbfqbgWbgXbfqbgYbgZaMmaMnbhaahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjazbaqfazcatwazdazeazfbfvbfwazdatwaziazjaqfazbarkbcRbfxbfybfybfybfzbcRbfAbfBaRCaRCbcTbfCaXhaYvbfDaYybfEaXhbfFbfGbfHbfHbfIbfJbfKbfKbfLbfKbfMbfNbfObfPbfObfObfQbfRbfSbfTbfUbaZbaZbfVbfWbfXbeGbbebfYaYQbfZbgabgbdtQbgcbgdbgebgfaYQbqxcmqboZcltcltboXboYclybgiaYWbgjbgkbglbgmbaxbgnbaxbgoaYWaXVaIubgpbeVbgqbgrbgsbgtbgubeVbgvbgwbgwbgxbgybgybgybgzboLbjpbgCbfbbgDbgEbgEbgEbgEbgFbgGbgHbgIbgJbgIbgIbgIbgKbgLbgMbgNbgMbgObgObflbgPbgQbgRbflbtEbgTbtEbflbfmaYkbfpbfqbMVbgVbMVbfqbgWbgXbfqbgYbgZaMmaMnbhaahjahlahjaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbaGbahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjawLbdYaAaaAbaAbaAbaAbaAcbdZawLahjahjahjahlbcRbhbbcRbhcbfybhdbhebcRaRCbbYbhfbhgbhhaXhaXhaXhaXhaXhaXhbhibhjbhkaRCbhlaYHaYHaYHbhmaYHaYHaYHbhnaYHaYHaYHaYHbhobhpbhqbhrbaZbaZbhsbhtbeFbeGbbebhuaYQbhvbgaaYRaYRaYRbaibhwbhxaYQahjckNcnAboTboUboWcnzckNahjaYWaLTbhBbhCbhDbaxbeRbhEbhFbhGbhHbhIbhJbeVbhKbhLbhMbhNbhObhPbgybhQbgybhRbgybgybhSbhTbhVbhUbhWbfbbhXbgEbhXbgEbhXbhYbgEbfcbhZbhZbiabibbfgbicbfibidbiebifbigbigbflbihbiibijbikbilbimbinbflbiobfnbipbfqbiqbirbiqbisbitbitbfqbiubgZahlahjahlahjahlahjahlaGbaGbaGbaGbaGbaGbaGbaGbaGbahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbivbiwbixbiybiybizbiAbbZbhgaOObiBbiCbiDbiDbiDbfKbfKbfKbiEbiFbiFbiFbiGaYHbiHbiIbiJbiKbiLbiMbiNbiOaYHbiPbiQbiRbiSbiTbiUbiVbiWbiXbiVbiYbiZbjabjbbjcbjdbjebjfbjgbjhbjibhwaYQaYQahjckNcnAboUcltboUcnzckNahjaYWbFabjmbaxbjnbaxbjodoNbjqaYWaXVaIuaIubeVbjrbjsbjtbjubjvbjwbgybjxbjybjzbjAbjAbjBbjCbjDbjEbjFbfbbhXbgEbhXbgEbhXbhYbjGbfcbjHbjIbjJbjKbfgbjLbjMdtkdrgdrgdrbbjPbjQbjRbjSbjSbjSbjTbjSbjUbjVbjWbjXbjYbjZbkabkbbitbkcbkdbkebfqbiubgZbgZbgZbgZbgZahjahjahjahjahjahjahjahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlahlahlahlahlahjahjahlbcRbkfbcRbkgbkhbkhbkibcRbkjbkkaOObklbkmbklbklbklbkmbklaOOaOOaYHaYHaYHbknaYHbiNbiNbkobiNbiNbiNbiNbiNbkpbkqbkrbksbktbkubkubkubkvbkwbkxbkybkzbkAbkBbkCbkDbkEbkFbkGbkHbkIbkJaYQahjahjckNcnAboWcmWboTbDDckNahjahjbkQaYWbkRaYWaYWaYWaYWbkSaYWbkTaIuaIubeVbkUbjsbkVbhNbhObkWbgybhRbkXbkYbkZblablbbfbblcbldblebfbbhXblfbhXbgEbhXbhYbgEbfcbfgbfgbfgbfgbfgbjLbfidqNblhblibljblkbllblmblnblobloblpbijblqbflblrblsbltbfqblublvblwblxblyblzbfqbiublAceYblBblCblBahlahlahlahlahlahlahjahjahjahjahjahjahjdsiahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahjahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRblDblEblFbkhblGblHbcRahlahjdsiblIblIblIblIblIblIblIahlahlblJblKblLblMblNbiNbiNbiNbiNbiNbiNbiNbiNblObhrbaZblPblQblRblSblTblUbiSblVaYNbYYblXblYblZbmabmdbmdbmcbmdbmebmfbmbahjahlckNbBjbzTcltcltbyGckNahlahjbmkbmlbmmbmnbmobmpbmqbmrbmsbmtaIubmubmvbCybmxbkVbmybmzbeVbmAbhRbkXbkZbmBbgybmCbfbbYFbmEbmFbfbbmGbmHbmIbmJbmKbmLbmKbmMbmNbmObmNbmNbmNbmPbfibmQbiedqCdqobmRbmSbmTbmUbmVbmVbmWbmXbmYbflbmZblsbnabfqbnbbncbndblxbitbnebfqbiublAblAbgZbgZbgZbgZbgZbgZbgZahlahlahjahlahlahjahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlbcRbnfbngbnhbnibcRbcRbcRahlahldsiblIblIblIblIblIblIblIahlahlbnjbnkbiNbnlbnmbnmbnmbnmbnmbnmbnmbnmbnmbnnbnobnpbnqbnrbnsbntbnubhsbnvbnwbnxbnybnzbnAblZblZbmbbnBbnCbnDbnEbnFbmbahlahlckNbvIbvJbmhbyDbyEckNahlahlbnLbnMbmmbnNbmsbnObmsbnPbmsbmtaIuaIubeVbnQbjsbkVbnRbnSbeVbnTbnUbnVbnWbnXbgybnYbnZboabobbocbfbbfcbodbfcbfcbfcboeboeboeboeboeboeboeboebjLbfiblgblhblibofbogbohboibojbojbojbmWbijbokbflbolblsbombfqbonboobonbopbitboqbfqborbosbosbosbosbosbosbosbotbgZbgZbgZbgZahlahlahjahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIboubovbowboxbiNbiNbiNboyboyboyboybiNbiNbiNbiNbkpbozbaZboAboBboCboDboEbhsboFbaZboGboHboIboJboKbNoaNpboNboOboPboQbjlbmbahjahlckNbkNbnHcoCbmjbmwckNahlahjbmkbpbbpcbpdbmsbpebmsbnPbmsbpfaIuaIubeVbpgbjsbkVbphbpibeVbpjbhRbgybpkbplbpmbpnbnTbpobppbpqbprbpsbptbgybpubpvbpwbpxbpybpzbpAbpBbpCbpDbgKbgLbpGbpFbpEbpHbpIbflbpJbojbojbpKbpLbijbpMbflbpNbpObpPbfqbpQbpRbpSbpTbpUbpVbfqbpWbpXbpXbpXbpXbpXbpXbpXbiubgZbpYbpZbgZbgZahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbqabqbbqabqcbqdbiNbiNbiNbiNbiNbiNbiNbiNbqeaYHaYHbqfbaZbaZbqgbqhbqibqjbhsbqkbaZbqlbqmbnzbqnbqobqpbqqbqrbqsbqtbqubqvbmbahlahlckNdrNbmgdrkcpgbbrckNahlahlbqBbqCbqCbqCbqCbqCbqCbqDbqCbqEbqFbqFbeVbeVbqGbqHbqIbqJbeVbqKbhRbgybgybgybgybqLbgybqMbqNbgybgybgybqNbgybgybpvbqObqPbqQbqRbqSbqTbqUboebqVbqWboVbqXbqYbqZbiebflbrabijbijbrbbrcbijbrdbrebrfbrfbrgbrhbrhbribgUbrjbgUbrhbfqbpXbpXbrkbrlbrmbrnbrobpXbrpbrqbrrbrsbrtbgZahlahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbrubrvbrubrwbiNbiNbiNboyboyboyboybiNbiNbrxbryaYHbrzbaZbaZbqgbrAbntbqjbhsbaZbaZbqlbqmbrBaIuaQQbqpbrCbrDbrEbrFbrFbrGbmbahjahjckNckNbkPbbqbbqbbockNahjahjbrJbkObrLbrMbrNbrObrPbrQbqCbrRaIuaIubrSbrTbrUbrVbrWbrXbrYbrZbsabrZbsbbrZbrZbscbrZbsdbsebrZbrZbrZbsfbsgbsgbshbqObsibqQbsjbsjbskbslboebjLbfibsmbsnbsobspbspbflbsqbsrbssbrebstbijbsubrebsvbswbsxbsybszbsAbsBbsCbsDbsEbsFbsGbsHbsIbsJbsJbsJbsKbsLbsMbgZbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIbsObovbsPbsQbiNbiNbiNbiNbiNbiNbiNbiNbiNbrxbsRaYHbsSbcmbaZbqgbaZbsTbaZbhsbaZbsUbnxbsVbrBaIuaQQbqpbmbbsWbsXbsYbsZbtabmbahlahlahjckNckNbhyckNckNahjahlahlbrJbtcbtdbtebkKbtgbtgbthbtibtjaIuaIubtkbtlbhRbqMbtmbtnbtobtnbtpbtnbtqbtrbtnbtsbpqbttbgybgybgybtubtvbtvbtwbtxbtybtzbqQbtAbtBbqTbslboebfhbfibtCbtCbtDbtCbtCbflbrebrebrebrebtEbtFbgSbreboMbtHbtIbsEbsEbtJblsbtKbtLbtMbtNbtObtPbtQbtRbtRbtSbtTbpXbtUbgZbsNblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbqabqbbqabqcbqdbiNbiNbiNbiNbiNbiNbiNbiNbqeaYHaYHbqfbaZbaZbqgbqhbqibqjbhsbqkbaZbqlbqmbnzbqnbqobqpbqqbqrbqsbqtbqubqvbmbahlahlckNdrNbmgdrkcpgbbrckNahlahlbqBbqCbqCbqCbqCbqCbqCbqDbqCbqEbqFbqFbeVbeVbqGbqHbqIbqJbeVbqKbhRbgybgybgybgybqLbgybqMbqNbgybgybgybqNbgybgybpvbqObqPbqQbqRbqSbqTbqUboebqVbqWboVbqXbqYbqZbiebflbrabijbijbrbbrcbijbrdbrebrfbrfbrgbrhbrhbribMVbrjbMVbrhbfqbpXbpXbrkbrlbrmbrnbrobpXbrpbrqbrrbrsbrtbgZahlahjahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahldsiahlahlahjblIblIblIblIblIblIblIbrubrvbrubrwbiNbiNbiNboyboyboyboybiNbiNbrxbryaYHbrzbaZbaZbqgbrAbntbqjbhsbaZbaZbqlbqmbrBaIuaQQbqpbrCbrDbrEbrFbrFbrGbmbahjahjckNckNbkPbbqbbqbbockNahjahjbrJbkObrLbrMbrNbrObrPbrQbqCbrRaIuaIubrSbrTbrUbrVbrWbrXbrYbrZbsabrZbsbbrZbrZbscbrZbsdbsebrZbrZbrZbsfbsgbsgbshbqObsibqQbsjbsjbskbslboebjLbfibsmbsnbsobspbspbflbsqbsrbssbrebstbijbsubrebsvbswbsxbsybszbsAbsBbsCbsDbsEbFPbsGbsHbsIbsJbsJbsJbsKbsLbsMbgZbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahlahlahjblIblIblIblIblIblIblIbsObovbsPbsQbiNbiNbiNbiNbiNbiNbiNbiNbiNbrxbsRaYHbsSbcmbaZbqgbaZbsTbaZbhsbaZbsUbnxbsVbrBaIuaQQbqpbmbbsWbsXbsYbsZbtabmbahlahlahjckNckNbhyckNckNahjahlahlbrJbtcbtdbtebkKbtgbtgbthbtibtjaIuaIubtkbtlbhRbqMbtmbtnbtobtnbtpbtnbtqbtrbtnbtsbpqbttbgybgybgybtubtvbtvbtwbtxbtybtzbqQbtAbtBbqTbslboebfhbfibtCbtCbtDbtCbtCbflbrebrebrebrebBAbtFbtEbreboMbtHbtIbsEbsEbtJblsbtKbtLbtMbtNbtObtPbtQbtRbtRbtSbtTbpXbtUbgZbsNblAbgZahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbRJahjahjahjblIblIblIblIblIblIblIbrubrvbrubnkbtVbiNbiNbtWbtXbtYbtXbtXbtXbtZbuabevbubbiXbiVbucbiVbudbiWbiXbuebufboGbsVbrBaXDbugbuhbmbbuibujbukbulbumbmbahlahlahjbdrbggcoCbeMbdrahjahlahlburbusbutbutbuubuvbuwbuxbqCbuyaIuaIubnTbnTbuzbqMbuAbuBbuCbuDbuEbuFbuGbuCbuDbuCbuDbuCbuDbuCbfabfabtvbuHbsjbuIbuJbqObqQbuKbuLbuMbuNboebuObuPbuQbuRbuSbsEbsEbuTbsEbsEbuUbuVbuWbsEbsDbsEbuXbuYbuZbvabvbbvcbvdbvebvdbvdbvdbvfbvgbvhbvibvhbvjbvhbpXbtUbgZbsNbvkbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlblIblIblIblIblIblIblIbvlbvmbvlbvnbvobvnbvnbvnbvnbvnbvpbvqbiNbrxbvraYHbvsbaZbvtbvubvvbvwbvxbvybvzbvwbvwbvAbrBaJSbvBbqpbmbbvDbvEbvFbvGbumbmbahlahlahjbdrcocbbqboRbdrahjahlahlbrJbvKbvLbvMbvNbuvbuwbuxbqCbvOaIuaIubvPbvQbvRbqMbvSbvTbuCbvUbvVbvWbvXbvYbvZbwabwbbwabwcbuCbgybgybtvbwdbsjbwebwfbwgbwhbwibwjbwjbwkbwlbwmbwnbwobwpbwqbwrbwsbwrbwrbwtbwrbwubwvbwrbwrbwrbwwbwxbwybwzbwAbwBbwCbwDbwEbwFbvdbwGbwHbwIbwJbwKbwHbwLbpXbtUbgZbwMbrsbwNbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahjahlblIblIblIblIblIblIblIbwObwPbovbwQaYHbwRbovbwQbwSbwSbwSbwSbwTbwUbwVbwSbwSbwWbwWbwXbwWbvwbwYbwZbxabxbbvwbsVbrBaIvaTkaTkbmbbmbbmbbmbbmbbxcbmbaJOaJPaJUbdrbdtbhybdsbdraJOaJPaJUbqBbqCbqCbqCbqCbqCbqCbxgbqCbvOaIubxhbuCbuCbxibxjbxkbuCbuCbxlbxmbxnbxobxpbxqbxrbxsbxtbxubxvbgybgybtvbxwbxxbxybxzbxAbxBbxCbxzbxzbxDbxEbxFbxGbxHbxHbxHbxHbxIbxHbxHbxHbxJbxKbxLbxMbxNbxObxPbxQbxRbwzbxSbxTbxUbxVbxWbxXbxYbpXbpXbxZbyabybbpXbycbpXbtUbgZbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlblIblIblIblIblIblIblIahlahjahlahlahjahlahlahjahlbwSbydbyebyfbygbyhbyibyjbykbylbymbynbyobypbyqbyrbysbvwbytbyubyvbyvbyvbywbyxbyybbAbyzbyAbyBbyCbyCbyCbBhbyFbyIbyHbyJaIuaIuaIubbeaLFaIuaLpaIuaIuaIubyKbyLbvOaIubyMbuCbyNbyObyPbyQbyRbuCbySbxmbyTbxobxpbxqbxqbyUbyVbyWbxvbgybyXbtvbsjbyYbyZbzabzbbzcbzdbzebzfboeboebfhbzgbxHbzhbzibzjbzkbzlbzmbxHbAVbzobzpbzqbzrbzsbxPbxQbxRbztbzubzvbzwbzxbzybzzbxYbzAbzAbzAbzAbzAbzAbzAbpXbtUbgZbsNblAbgZahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaGcahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahjahlblIblIblIblIblIblIblIahlahjahlahlahjahlahlahjahlbzBbzCbzDbzEbzFbzGbzHbzIbzJbzKbzLbylbzMbzNbzObyrbzPbvwbzQbzRaIuaIuaIuaIuaIuaIubbAaIubrBaIuaIuaIuaIuaIubzSbeKbzUaIuaIuaIuaIubbeaIuaIuaLpaIuaIuaIubzVbzWbvObzXbzYbzZbAabAbbAcbAdbAebAfbAgbAhbAibAjbuCbAkbAlbAmbAnbAobuCbgybgybtvbtvbtvbtvbtvboeboeboeboeboeboebApbAqbArbxHbAsbAtbAubAvbAwbAxbxHbAybAzbAAbABbACbADbAEbAFbAGbAHbAIbAJbAJbAKbALbAMbxYbzAbANbzAbAObzAbzAbzAbpXbtUbgZbsNblAbgZbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlblIblIblIblIblIahlahlahjahlahlahjahlahlahjahlbwSbAPbAQbARbASbATbAUbyjbylbylbymbylbyobznbAWbAXbAYbvwbAZbBabBbbBbbBbbBcbBbbBbbBdbBbbBeaIubBfbBgbhIbhIbBiaWEbBkbBlbBmbBnaWEbBkbBoaWEbBpbBqaWEbBrbBsbBtbBuaIuaIubuCbBvbBwbBxbBybBzbuCbBAbBBbBAbuCbuCbuCbuCbuCbuCbuCbuCbgybgybgybBCbBDbuBbBEbBFbBGbBHbBIbBJbBKbBLbBMbBNbxHbBObBPbBQbBRbBSbBTbxHbBUbBVbBWbBXbBYbBZbCabCbbCcbCdbCebCfbCgbChbCibCjbxYbzAbzAbzAbCkbzAbzAbzAbpXbtUbrqbClbrsbrtbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlblIblIblIblIblIahlahlahjahlahlahjahlahlahjahlbwSbAPbAQbARbASbATbAUbyjbylbylbymbylbyobznbAWbAXbAYbvwbAZbBabBbbBbbBbbBcbBbbBbbBdbBbbBeaIubBfbBgbhIbhIbBiaWEbBkbBlbBmbBnaWEbBkbBoaWEbBpbBqaWEbBrbBsbBtbBuaIuaIubuCbBvbBwbBxbBybBzbuCbuDbBBbuDbuCbuCbuCbuCbuCbuCbuCbuCbgybgybgybBCbBDbuBbBEbBFbBGbBHbBIbBJbBKbBLbBMbBNbxHbBObBPbBQbBRbBSbBTbxHbBUbBVbBWbBXbBYbBZbCabCbbCcbCdbCebCfbCgbChbCibCjbxYbzAbzAbzAbCkbzAbzAbzAbpXbtUbrqbClbrsbrtbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjbwSbwSbCmbCnbCnbCobwSbwSbCpbCqbCrbCsbvwbvwbCtbvwbvwbvwbCubCvaTkaTkaTkaTkbCwbCwbCwbCwbCwbCwbCwbCwbCwbCwbnKbeUbeTbCAbCAbCAbCAbCBbCCbCAbCAbCAbCAbCDbCEbCFaIzaJVbCGbuCbCHbCIbCJbCKbCLbuCbCMbxmbCNbuDbCObCObCPbCQbCRbCSbuDbCTbgybgybgybgybgybqMbCUbCVbCWbCXbCYbCZbDabDbbDcbDcbDcbDcbDcbDcbDcbDcbDcbDdbDebDdbDdbDdbDdbDfbDgbDhbvdbvdbvdbvdbvdbvdbvdbxYbpXbpXbpXbpXbpXbpXbpXbpXbtUbgZbpYbDibgZbgZahjahjahjdsidsidsidsidsidsidsidsiahjahjahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlbDjahlahlahlahjahlahlbwWbDkbDlbDmbDnbDnbDobDpbDqbDrbDsbDtbCvahlahlahjahlbCwbDubDvbDwbDxbDybDzbDAbDBbCwbDCbdqbDEbCAbDFbDGbDHbDIbDJbDKbDKbDLbDMbDNbDObDPbDQbDRbCDbuCbDSbxmbyTbDTbDUbuCbDVbxmbDWbDXbxobxobxobxobxobDYbDZbEabpqbpqbpqbpqbEbbqMbEcbEdbEebEfbEgbBFbDabDbbDcbEhbEhbEhbEibEhbEhbEhbDcbEjbEkbElbEjbEjbDdbEmbEnbxRaKtbEobEpbEqbErbEsbEtbEubEvbEwbExbEybEzbEAbECbECbEDbEobEobEobgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbEEbEFbEGbEFbEHahlahjahlbwWbwWbEIbylbEJbylbEKbwWbELbELbEMbENbEObCvahjbEPbEQbERbESbETbDBbEUbDBbEVbEWbEXbEXbEYbEZbjjbFbbFcbDKbFdbFebFfbFgbFhbFibCAbCAbFjbFkbFlbFmbFnbFobFpbFqbxmbFrbDTbxobFsbFtbxmbFubuCbFvbFwbxobFxbFybFzbnTbnTbnTbnTbnTbFAbqMbqMbFBbCVbFCbFDbFEbFFbFGbDbbDcbEhbEhbEhbEhbEhbEhbEhbDcbFHbFIbFJbFKbFLbDdaLVbFMbFNbFObFPbFQbFQbFQbFQbFQbFQbFRbFSbFTbEybgZbFUbgZbEobEobEobFVbFWahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbEEbEFbEGbEFbEHahlahjahlbwWbwWbEIbylbEJbylbEKbwWbELbELbEMbENbEObCvahjbEPbEQbERbESbETbDBbEUbDBbEVbEWbEXbEXbEYbEZbjjbFbbFcbDKbFdbFebFfbFgbFhbFibCAbCAbFjbFkbFlbFmbFnbFobFpbFqbxmbFrbDTbxobFsbFtbxmbFubuCbFvbFwbxobFxbFybFzbnTbnTbnTbnTbnTbFAbqMbqMbFBbCVbFCbFDbFEbFFbFGbDbbDcbEhbEhbEhbEhbEhbEhbEhbDcbFHbFIbFJbFKbFLbDdaLVbFMbFNbFObsFbFQbFQbFQbFQbFQbFQbFRbFSbFTbEybgZbFUbgZbEobEobEobFVbFWahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbGabGbbGabFZbGcbGdbGebwWbGfbylbGgbGhbylbGibwWbCvbGjbCvbCvbGkbGlahlbGmbGnbGobGpbDBbDBbGqbDBbGrbGsbGtbDBbCwbGubjkbGwbCAbGxbGybGzbGAbGBbFhbGCbGDbGEbGFbGGbGHbGIbGJbGKbuCbGLbGMbGNbGObAibuCbGPbxmbGQbuCbGRbDTbxobxmbGSbGTbnTbGUbGVbGWbGXbhRbqMbqMbGYbCVbCVbGZbHabHbbHcbHdbDcbEhbEhbEhbEhbEhbEhbEhbDcbHebHfbHgbHhbHibHjbHkbHlbHmbHnbHobFQbHpbHqbHqbHrbHqbHqbHqbHqbHsbHtbHubHvbHwbHxbHybHzbHAahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbHBbFXbHCbFXbHBahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlbEGbHDbHEbHDbEGbHFbHGbHHbwWbHIbylbHJbylbylbGibwWbHKbHLbELbCvbGkbHMahjbGmbHNbHObHPbHQbHRbHQbHQbHSbHTbHQbHQbHUbHVbeLbHXbCAbCAbCAbCAbCAbCAbHYbCAbCAbHZbIabIbbIcbIdbIebIfbuCbIgbIhbIibIjbIkbuCbIlbImbInbuCbIobIpbIqbIrbIsbItbnTbIubgybhSbIvbhRbIwbIxbIybIzbCVbCVbIAbBFbIBbDbbDcbDcbICbEhbEhbIDbICbDcbDcbIEbIFbIGbIGbIHbDdbIIbIJbxRbIKbFPbFQbFQbILbIMbINbFQbIObIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJabJbbJcbJdbJebJbbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahjahlbEGbHDbHEbHDbEGbHFbHGbHHbwWbHIbylbHJbylbylbGibwWbHKbHLbELbCvbGkbHMahjbGmbHNbHObHPbHQbHRbHQbHQbHSbHTbHQbHQbHUbHVbeLbHXbCAbCAbCAbCAbCAbCAbHYbCAbCAbHZbIabIbbIcbIdbIebIfbuCbIgbIhbIibIjbIkbuCbIlbImbInbuCbIobIpbIqbIrbIsbItbnTbIubgybhSbIvbhRbIwbIxbIybIzbCVbCVbIAbBFbIBbDbbDcbDcbICbEhbEhbIDbICbDcbDcbIEbIFbIGbIGbIHbDdbIIbIJbxRbIKbsFbFQbFQbILbIMbINbFQbIObIPbIQbIRbISbITbIUbIVbIWbIXbIYbIZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJabJbbJcbJdbJebJbbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbHDbHDbHDbJfbJgbylbylbJhbHIbylbylbylbylbGibwWbJibJjbJkbCvbGkbJlahlbGmbJmbJnbJobDBbDBbJpbDBbJqbJrbJsbJtbCwbJubJvbJwbJxbJybJybJybJybJzbJybJybJybJAbJBbJzbJCbJDbJEbJFbAfbJGbJHbAfbJIbJGbAfbAfbJHbJIbAfbAfbJIbAfbJJbJKbuCbnTbJLbnTbpnbnTbJMbqMbhSbBFbBFbBFbBFbBFbBFbJNbJObJPbJQbJRbJSbJTbJUbJVbJQbJWbIEbIFbIGbIGbJXbDdbJYbIJbxRaKvbEobKabKabKbbKcbKdbKebFQbFQbKfbEybKgbKhbKibEobKjbKkbKlbEoahjahlahlahjahlahlahlahlahjahlahlahlahlahjahlahlahlahlahjahlahjahjbKmbKnbKobKpbKpbKpbKqbKmbKnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbEGbHEbHEbHEbEGbKrbKsbKtbKubKvbylbylbKwbKxbwWbwWbCvbCvbCvbCvbGkbCvahjbKybEQbKzbKAbKBbDBbKCbDBbDBbKDbKEbKFbKGbKHbKIbKJbCDbKKbKKbKKbKKbKLbKKbKMbKNbKObKPbKQbKRbKSbKTbKUbKVbKWbKXbKYbKYbKWbKYbKYbKXbKYbKYbKYbKYbKYbKZbLabLbbnTbLcbLdbLebLfbLgbLhbLibLjbLkbLlbLmbLnbKPbLobLpbLqbLrbLsbLtbLubLvbLwbLxbJWbJWbJWbJWbJWbJWbLybLzbIJbLAbLBbEobEybEybEybEybLCbEybLDbFQbFQbEybLEbLFbgZbEobLGbLHbLIbLJdsidsiahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjahjbLKbLLbLKbKpbLMbKpbLNbLObFXahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbLPbLQbLRbFZbLSbGdbGebwWbwWbLTbLUbLVbwWbwWahlahlahlahlbLWbLXbGlahlahlahjahlbCwbLYbLZbMabDBbMbbMcbMdbMebCwbMfbMgbMhbMibMjbMkbMlbMmbMnbMjbMobMjbMjbMjbMpbMqbMjbMjbMrbMobMsbMjbMjbMjbMpbMjbCDbCDbCDbCDbCDbCDbCDbMtbMubLnbLjbMvbMwbMxbMybMzbMAbMBbMCbMDbMDbMEbMDbMDbMFbMGbMHbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbMVbxPbIJbMWbMXahjbMYbMZbNabNbbNcbNbbNdbNebNfbEybNgbNhbNibEobEobEobEobEoahjahlahlahjahlahlahlahlahjahlahlahlahlahjahlahlahlahlahjahlahjahjbKmbKnbNjbKpbKpbKpbNkbKmbKnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbFZbLPbLQbLRbFZbLSbGdbGebwWbwWbLTbLUbLVbwWbwWahlahlahlahlbLWbLXbGlahlahlahjahlbCwbLYbLZbMabDBbMbbMcbMdbMebCwbMfbMgbMhbMibMjbMkbMlbMmbMnbMjbMobMjbMjbMjbMpbMqbMjbMjbMrbMobMsbMjbMjbMjbMpbMjbCDbCDbCDbCDbCDbCDbCDbMtbMubLnbLjbMvbMwbMxbMybMzbMAbMBbMCbMDbMDbMEbMDbMDbMFbMGbMHbMIbMJbMKbMLbMMbMNbMObMPbMQbMRbMSbMTbMUbgUbxPbIJbMWbMXahjbMYbMZbNabNbbNcbNbbNdbNebNfbEybNgbNhbNibEobEobEobEobEoahjahlahlahjahlahlahlahlahjahlahlahlahlahjahlahlahlahlahjahlahjahjbKmbKnbNjbKpbKpbKpbNkbKmbKnahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlbNlbEFbNmbEFbNnahlahjahlahjdsiahjahlahjdsiahjahlahlahlahjbHMbGkbHMahjahjahjahjbCwbCwbCwbCwbCwbCwbCwbMdbCwbCwblWbNpbMhbNqbMjbMkbMlbMmbMnbNrbNsbNtbNubNvbNwbNxbNybNzbNAbNBbNCbNDbNEbNFbNGbNHahjahlahlahlahlahlahjbzgbNIbNJbNJbNJbNJbNJbNJbNKbNLbNMbNJbNJbNJbNJbNJbNJbNNbNObNPbNQbNRbNSbNTbNUbNUbNVbNWbNWbNWbNWbNWbNWbNXbNYbNZbOabObahjbMYbOcbOcbOdbOebOfbOgbOhbOibEybOjbNhblAbgZbOkbOlbgZahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahjahjbJabHBbOmbOnbOobOpbJaahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlahjdsiahjahlahjdsiahjahlahlahlahlbHMbGkbHMahlahlahlahjbOqbOrbOrbOsbOtbOubOubOvbOwbOqbOxbOybMhbOzbMjbOAbOBbOBbOCbODbNsbOEbOFbOGbNGbNxbOHbOIbOJbOKbOGbOLbOGbOMbONbOOahjbOPbOPbOPbOPbOPahjbzgbNIbNJbOQbORbOSbOTbNJbOUbOVbOWbNJbOXbOYbOZbOYbOXbNNbPabPbbPcbPcbPcbPdbPcbPcbPebPfbPcbPcbPgbPcbPcbPhbPibPjbPjbPkahjbMYbOcbPlbNbbPmbNbbPnbPobPpbEybPqbNhblAbgZblAblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJbbFXbPrbFXbPsahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl -ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjbCvbCvbPtbPubPvbCvbCvahlahlahlahlbHMbGkbHMahlahlahlahjbOqbPwbOsbOsbOsbOsbOubPxbPybOqbPzbMgbPAbPBbPCbPDbOGbPEbNGbPFbPGbPHbOGbOGbOGbNxbPIbOIbPJbOGbPKbPLbPMbPNbPObPPbPQbPRbPSbPTbPUbOPahjbPVbNIbNJbPWbPXbPYbPYbPZbQabQbbQcbNJbOYbQdbOYbQebOYbNNbDbbDcbQfbQgbQhbQibQjbQkbQlbQmbQnbQobQpbQqbQrbJWbQsbQtbQsbQubQubEybEybEybEybQvbQwbQxbQxbQxbQwbQybNhbvkblAblAbQzbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahjahlahjdsiahjahlahjdsiahjahlahlahlahlbHMbGkbHMahlahlahlahjbOqbOrbOrbOsbOtbOubOubOvbOwbOqbOxbOybMhbOzbMjbOAbOBbOBbOCbODbNsbOEbOFbOGbNGbNxbOHbOIbOJbOKbOGbOLbOGbOMbONbOOahjbOPbOPbOPbOPbOPahjbzgbNIbNJbOQbORbOSbOTbNJbOUbOVbOWbNJbOXbOYbOZbOYbOXbNNbPabPbbPcbPcbPcbPdbPcbPcbPebPfbPcbPcbPgbPcbPcbgSbPibPjbPjbPkahjbMYbOcbPlbNbbPmbNbbPnbPobPpbEybPqbNhblAbgZblAblAbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbJbbFXbPrbFXbPsahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl +ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlaaeahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjahjahjahjahjahjbCvbCvbPtbPubPvbCvbCvahlahlahlahlbHMbGkbHMahlahlahlahjbOqbPwbOsbOsbOsbOsbOubPxbPybOqbPzbMgbPAbPBbPCbPDbOGbPEbNGbPFbPGbPHbOGbOGbOGbNxbPIbOIbPJbOGbPKbPLbPMbPNbPObPPbPQbPRbPSbPTbPUbOPahjbPVbNIbNJbPWbPXbPYbPYbPZbQabQbbQcbNJbOYbQdbOYbQebOYbNNbDbbDcbQfbQgbQhbQibQjbQkbQlbQmbQnbQobQpbQqbQrbJWbSSbQtbSSbQubQubEybEybEybEybQvbQwbQxbQxbQxbQwbQybNhbvkblAblAbQzbgZahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjbFXbFYbFXahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlbCvbQAbELbQBbELbQCbCvahlahlahlahlbHMbLXbHMahlahjbQDbQEbOqbQFbQGbQHbOsbOsbQIbQJbOubQKbQLbMgbQMbQNbQObQPbOGbOGbOGbQQbQRbOGbQSbOGbQTbQUbOGbQVbQWbQXbQYbQZbRabRbbRcbRdahjbRebRfbPUbRgbOPahjbRhbNIbNJbRibRjbOXbRkbNJbRlbRmbRnbNJbOXbRobRpbRqbOXbNNbRrbRsbJWbJWbJWbJWbLybRtbRubRvbLybJWbJWbJWbJWbJWbRwbRxbRybRzbRAbRBbRCcbGbRCbREbQubRFbRybRGbRHbRIbNhblAbgZbgZbgZbgZbRJahjahjahjdsidsidsidsidsidsiahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahjahjahjahjahjbCvbRKbELbELbELbRLbCvahlahlahlahlbHMbGkbJlahlahjbTabRNbRObRPbRQbOsbOsbOsbOsbOsbRRbOqbRSbRTbRUbRVbRWbRXbPHbOGbRYbRZbSabSbbScbSdbSebSfbSfbSgbShbPKbSibSjbSkbSlbSmbSnbSobPRbSpbPUbPUbOPahjbSqbNIbNJbdobOXbSsbNKbNJbNJbStbSubNJbSvbSwbSxbSybSzbSAbSBbSCbSDbSEbSEbSFbSGbMNbSHbSIbSJbSKbEhbEhbEhbJWbSLbRybRxbSMbSNbRBbSObSPbSQbSRbSSbRybSTbRybRHbSUbSVbSWbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl ahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlbCvbSXbELbELbSYbSZbCvahlahjahlahlbJlbGkbCvbCvbCvbCvbTbbOqbTcbRQbOsbOsbTdbTebTfbTgbOqbQLbMgbQMbNqbQObThbTibOGbOGbTjbNsbTkbTlbTmbTnbOGbOGbTobTpbTqbTrbTsbTtbTubTtbTvahjbOPbOPbOPbOPbOPahjbzgbNIbNJbTwbTxbTxbTybTzbTAbTBbTCbTDbTEbTFbTxbTGbTHbNJbTIbSCbEhbEhbEhbTJbTKbMNbTLbMNbTMbTNbEhbEhbEhbJWbTObRybTPbRxbTQbTRbTSbTTbTRbTUbQubTVbRybTWbRHbLEbgZbNhbgZahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahjahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahlahl From 16fbd647bdc74a846f07411cad4e2d8a5ef72417 Mon Sep 17 00:00:00 2001 From: AndroidSFV Date: Wed, 30 Jul 2014 12:46:29 -0500 Subject: [PATCH 18/36] Removes unused (duplicate) icons --- icons/mob/screen_cyborg.dmi | Bin 20810 -> 21121 bytes icons/mob/screen_robot.dmi | Bin 21038 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 icons/mob/screen_robot.dmi diff --git a/icons/mob/screen_cyborg.dmi b/icons/mob/screen_cyborg.dmi index 3492672b32e31af3de938cf692fd9b4eafc1f977..2df7c1c35c4a022b218f44c968b2599a42a7761c 100644 GIT binary patch literal 21121 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

    hINz(G<4sH8d+R&d#|6`ub(v|rbn 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 YKRBbYuuX0PJrW@sD?7`_c&{7(0yizdf&c&j diff --git a/icons/mob/screen_robot.dmi b/icons/mob/screen_robot.dmi deleted file mode 100644 index e44bb7eba37b3efa9a76d0884c47993dfc609a05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21038 zcmXtgbwHE<7w#xQkdjhKg9cHMk{BUUlF}_8rF2NSjg}Iml@tl-mS%(q$d?cVq`Q06 zfU(`re)rygRA3wLdp_qp=XsuUUL&!C-x)2Bf_$Oq6>>BuUN4`ND ze8b6K&&cc9Yfl>wM>j7=R~HDxHzPKA$ffhqjfkP$m(Sc-UevbxY`rGbU|C?`8f}Oz zT#FkS{v&fmmHfkzXtG}K0woIV@mSk>jq{f%nmvrCz7>Gd)OR{+_+3Li()V4htY2D0 zrA&2HIh*5a@n3;pE@;1qMwMYQAF4Fc%H0J1l7PiWV2qpnQ@#^XRd;eczl-PVEXN%y zz2vEfKj7lY3g;%h&Y?3momK8rh|`mtGe@0`;BqnEEBe@{sDeF`jVD@`4AItyuG0qJ*QM;1&{P=`j)84o=z1(`gB(bzA6C*d20{qP9UP3Gom+SePc-Wx}Ags`R3{5igG_Opv{G&-nt66_Auayg4;2zvP`gw`dB-m1UG%ITrf# zC}K$xICzSjE4axZ5DtjyGkHDVjNME>-@kt^dY~_P1xfNa+;~Z78#YaMqqJC>=j|oms+~5 zU=AF*YXDxmDmDSz4UIb98u)E~nICaqB9S7*hF!O1ePq=2rBuh!o$K}<{3x;6`N-pA zuV&-xX=L02#>U3wo%S`83JOkjCP7gOw=}W%AL^mg_x9;;!afPnGswBSSCx2}H~R?I z&-$3E@Utc&QK)8mgdVy;BYn;1u=;iX%pfVDSo(lI89xP54;^BD-MGx)%ijJVJ`RYnzdiLH<}^AG86CSzg z1&gJ}nihR`$jMFkWT>f@%rJO7?8rmM6$3tu=jWA8$`3V1bi+Pnn6H|TC<#KO!emjT zlm9N&M$6mVx5d(}Ij!~o@#!nH8OU+H2)*gT&@Nnfl3brTMh}tQE0JH)O3n}9N1&cG z5*w-|D(?J9rxGB#L$RLBCwy*DPLouwznm1Gk+Jj6(80hUWoTC|5xI33zyoP~%`p9M z$xnwtC1%q1$G|G1DTSJrtIod(wId&>YkVn^%RB#%% zT%mteGx@L4lN&-Q<>i*|irEpFz{Xo%Yd&2!3#3Ctu)`!cW}~@qmT}ORr?ds+`il9* zkd?4*74|kLNaHH`rg{_a++U5J>zdZq*1dgwui}oBg#-jbI~5GGBwJL?%rcI8t1?CG zsgBl%&My5lu*Kc3-w6-6Y&g+2bz|hwY!@(|sAaB~&yUaqsC%NY{ zFf#ICE2(ACIR~^7!==U|^X%g*6$zLoK1hC$Ku|A##1{m){!5PdgF+lq`}^+tPjdW;D9ObrlPu0LRmhivl`VsSXbsaW?p_CG^e@HTTs6qH!mN4Vv zWA}mN>>E+Hq7om zMt6~@(uAO6SdRq8Mzrm>p1sq9sW}SJhoBBm7h1LXyy3S6eLAXWT55Kl>0g<;7_I-f}!7- zau~@eD9lkpG|t+bu<4t8rF*YbFgHpc>qlf8wsT$OBoK?YyQaREU`!^wO$F;Fmvb!0 ztfl^KU_NlctV6iCMMASU;IUn`r4~{cqmTr*meLAcA^zRh_tkm&$Ie{qH1+d+Op!2q zl4ya`p$PjK`?1i^3L^p)Gk<+V%E^T3t^D-3@}lrYIy9T$)Fggz6J)(>dQOJ0PJ$MM^&R>+aK4Ti2GTcygPJh5y>QaL#@0=$JH& zezfI;1f=mEWc9YsbHO(8awuJkzL))65nwVxn5>4CNDFhydac~UhcQga5QHUfaT{;DfCsG zHMzCn5;)awJ@xwD`FR0#`Gl#Ry=u9PCN!5xF4EH3T9YHE0Foqe^;w;bEDf``Twz#| z#mVycX<#uVShSauz7>M%ejZFYVa;j4Pee*pO8+uTBQ1X6B?*V+ih^rhkv>`QECtO+ z1qY(HcTGtCgxe%0^BJGVi%L-m$L zGAce<5V#5ke7)+KqN?eY0J&bYT$?zQ`LNB+1UAL^%k7ez$ z_EWCI-(0B0u>ecxG_h)RJPr-CYN9!|R~p#iqn@8X-LM!xLw|So$KKoH`IVLN4Gj|Y z`Auay20XMbH^Xe)Z@SXD`H)@ed?aM2d-<4HUWZSt0cVH!#fNS6Id4N9U#W-#&=sC}v!rrSgd^a|Q zqm`%}`3>2uzbL6BmJrd}kt}czW<%Mv8QeO~3n#Xeq;Q?Bx;{Bp$5&Tj78C*z39pk& zJzbCa30g58vaaNESz0r{7YzvXy3rdRx9VU)1`uUR6XdT!=Nvu6{J3S*vrXs6{z8u~ zupTp;UVDP$n=+{am9s8A)>S+vR-C@3ceHj}pcoJJ@&dUBE~;U@Lw$?IkYcAmFU!Y) zXgA1@w}4YA1oIDAa^_52sJ=lmN@qjpJS620Fa%A9fwJdB|3Q?BhUw0~fAuvZ0=kdSbT`F2qe@dJvMS6$b{ zTxNO!`WUtNR(-WUCH=Z!xb--GL1!%Vschp-WChu(-ZUtdmj(uFPv@#%NAu6JXAFN9 zy0hR#0v+OR_;@nc#Z6{l5u9EJ-IXxZM%a8WmUob8c39>7Fm7?7kvFfr4ND-|`}2(y z^wyr-x?p<*Ejg_26w0FqS^OAh@%gUFSz6kydzs_UL-Vc$>Jz|^JjzKLN&{>VMp{_8 z?+|_4sj5O>uI5sihU~Lf-E^+|@WL^*1O-kZ8z7DONxXZc0PeN6WN0S?u7wsRW`WWk1HjT9Jg%5C9x)xgn$&y zeqb49aYS<6lR+=zsGD?Q_p1N*Z!_GqSz&i7MkseRb#P!{K(rL1KnX{moIbgw3!%ZH zH%Da4S z`)#qh-}DdXe$;CJ)yG)7fPs3kcuv|<1Dth@qx{_7*|n;7?PRs|2=S8rYhT}SSkcfU z91d4|&WTtq+m4Ah^dY(3sqFP4!*m=b3!dw>m+XH_i^Tc2ojFP^VEI)fsNnJfGD0>c zj`+hq+zahDXC)dghp%H01%%p8XNCW)vg)k)Ir7Lk#+J57AXdSL>~riSmH+HKPY4m; z4CN>iNK)c@UxrLE`vtsob#}XtF~Mon9fb$tk2fpRv1_U8ch2|=sR4sIJB&i+E!n_^ z2_Lwz@onXgEQ_dqp?CS`BL#XjhyiVfGwOGN3lW0D0`qHA)s+f0@0|JNaZdxYw-;HX%%1Wli=eE~ux z+n+E=z>31n^|DX`7DL47@amn>d4g|G-A6Is2ND5<$F(8eiV@W9mgsMgKtIDiRFvlm z5v2@yI~k5|Ql@T=ZNmVPd{?$ZtiqwV8FX>e|4ELFVOVITlbS& zw>Gb9SDUyv;}#n=)%SY?6b!DEnIw*6v*nJ73l)Y3$_c<{YN1OYF$yk0qa!1M4bks> z`7`{{oNt7#{`zAm=K@LYNz=^INW8zaE}WV8I|K-|g49`mSH72ywkpo|*K(P#-cEt`IGPTEW3wYyQQc zA;&kmQ~Ze^pm&MTB|XY#OcYEHz0L`0ISj0Vwn%sgOkVVcao4t92<}Lf!ryk+5rpJG zcC>njNWv8=2vyY7P!j8Lgc~!BB3iQN52Bfb3gkns?aVe$+^=}jPbFPeY@3`+AI!#% zV1u34Y=k{z|KFWU$+j>)V2F>8U+_TpeFA@_o{)M|+@d^CApCRQ$YQW*;+jHDBJ=}-;b#A!aIrn|<>E1qO~gg9})+q+OhB z2VA-25xUrZ;+G+pqehPRLhFv20tkvd0(}HO@X7JUe6~H$cg|TSY|xV{P5$K*AtV>t zkJ55GrSWY{wWP7b=;x8_*^m0$x&O*eTjPH~@wUpSa(cJ?bz_~?N^EyaUtb?b>EoPK zOUF$4Mr22Bd_lKsIhifwXl=j-eXv+=0dbdZ%A=|!$My>$cj_|N2cj||U-G9GYMXDm z8Dp=DX_Q#*uBLX(ul~SnY@e-Pakg-k1jZV{&M*57S3aezQaw11A^y8$=w!lU?2{iD z#D3iUtj#e8R1Y`2PdAeQJ8gRVLB0C_tk5B6S0yO<|wd?vLkT~tK4Q(pDD-e?E=3-l!x ztFU>s%4pQ~z>s5@fJHoFNp4GYaa93<$Ovu6o3=-zK;A1NljC<%6{mgmhkMF+wLfa7g^GuKiyYG0eXv?c17xZ zdrk=?=;lNPyG_r>e9!g4aP%%jcf#C&aXBcpx_ah0K~&;B!#p1I5@SNz6=pCoW(_=IaFj|!KbHf<#gMDs(er7~z zsWtl^M?@93pOE`!r{|FaJ73FUN`4{JOE% zcIi@GQ#0A*&7W!s`(KC_+Jji2uncep!k%j{xHP`xrNe=v1sL1W?7R6tm9G^2Pqw;; zpt%2lzMianMdUnHy9h#IKb#}~w^%>=&o^b8`f0zdqCy97FhG;#8I+m)+x59P+t*6u z((v7>>Zy&){8wc|n#irS_A`?1Mds5n(So~BX!h0Rndf#{J#gL_FHU#+5d=g=ZGn>W zaGcD3>si*D(9NgdgSSrxgeQ2I}6IFVRtC$74 zK2uMAc~6f4@r34Un21cjD%I~#s@=xAb8Bk-L(H*p59I}Ao9mx&5=UDK#<|x*Ob&MI z8AgkDeTLrq-SI8BBrF+Ii@hT%5r}^DvQYE&&c7;9RTSRim}U|0Tc#hCHg z3O?KVV4)-Md^Pon!!QEqHbC7`a zd={~9a9bqAf57DAq>%vL+-USYya&4511_%Wz;h4aBbhPGGrP8Qd{vB4QCGju%Nxo2 zvH-7Vw#Li0{}APbF}6#)^|dj%1*!{?`T1Xm^XyE}opx`_b&zt@BPNZFUkv`X7XJO| zd2(qMi~pKp$zlKUH~!htY0vW#NZ_hrzYV>y@ucl*h8mNGj;*muCx+ua^D3cCrnCGO zU4K{h2ffLL7JU^+tQt6{s>!z)%+b)w+L}ifrT8Nl##dNa_?C?SlM=&3NV z1f{ha$(_X^Ba;c<+&CV!G21L&sF|7jxcKBIK z@>LHwWt)_IN|Tg#o3s!6kI*imbmolaeZI$At1gTAHoUGC7QZJpyQ!g=_RM#4eQobA z(Ma4S6oo>iiMz6a`Y3oFd*{J}2X34BsnrgD?uApas;v)Z67cZxS&!tYmKs$BmzmZJ z`yN>3=H{Z8qJ?f8x`JSux-^CXf7+#C@me?~^Dhvof#1pe=a=(1O#pzAF)_B_FBWOv zc;I1yX!Zf%`mguXeLqlpMwM0s_#n2lWPlu^J@3_amGIi2p=1`b-TGS;i0b2RIsCAde-%3+)Fp{)eM=6Bah7JCkqcT0Zx%1;qFrtv&YM(gP0Q zFMyQA=}=lNigMfC)gB=U+}mo;Vsbe_*>fl3X2U7}H)p@UDib(#E2lDXUx z!A~ZE0~r|^xieiK_u&JXX11(`qa!ctQ?G?s@i{BNO#T+Vj7YWcR~5(Q$cKE0iCLLx z^o(JZN&(3B(#-5Xki)-mSM#{XE;ABS^{zwhK}6>}HA4~srvju@EN)i?pazptQmP$C zxh&qF=npiKc?6;tBVMFE3X6a?ij={G+R<9& z3=w8j`JVm;N@Y8TlU=0qt)xM6fMuP7qX&Rwi$Nda!RT~%TEzd@0d;irS;GC^r%#`b z_vf<#c0GE3;e`j*#jXfRj}y~OvX=yaE+Nbuq+fKTIPrahoERbITXUF-~#zB(TL`Sa%i=&_G|c8u^x2aW)L z0iQ+RFlNKCjc*>Cw|+0oBteL_4}|aSAk+y$`DOj|KMd`$8`P+MjaGU))IW5#x0}Vq zdbvb&OYH5fRCAx(=jZ33tt5-j2PQV}HATPb3fD0)Q7bd4!}Id|{Cs=@=M@xG+Yhmo zH}5^go)5u=?f$!kZ->GnB1OhE1&iJ{fg!62U>ca|UsV&i^78W!#|$mqmwsLcH~R}D zodk#>6o(O!@jqVp@3RQrh67&3pQ4xC0J?fUvPv~<7Ni^1yRd>LX!|EuspHb?UDxr@&gpcO*#qyZ$wV^Gconwh`5qnZ3RzDD>ihA}z({Z30Qb4&w@ zeJ$O!?JghR?@Bsd6Mvn()>Jo{%0f#hdW(NtV)Q9<1M+_XYSe*MG08j6lXVVM#9AEh z?e0yIuKKj<3L#7^TG3Z$^OIm`0ZMnds4#2kcyl!7wn#W=bBBQMjJ5{614*L(>=`jQ z^JmYVxg9Pk0h_l|=4?h0l#l1ye~aPFE(^ee%!A{w;b?Vrb>NZR1vhNd5llkQ$cP$N zq^|NE><)1 zsr$~q$G_s(hYT&>lSr^6g7PXgYfJznMi@Xe-UrgtqlaSA_ks6$kB=`3#89`yK=4=0 z?Jm$Y{Xp;V!(E*fSt8q9U`0E<(|b3k2-ee|xKpTFQlHq>w+J-xLcR@8e=F@F1!BeQ z>_t<>h`*!%t0YSly!ZV532NI$&vl!>L&ZW+z@+v=z+PhnIO?0Uv>oN<&G^2HpX>pm z-O?h>^&+hueYmWuuKrCcTNZznrmn5Yot+A>s}n;&c<|jz6)@I~Ki|U9Ha0eXYoF~K zjs~T81qJifQy&645h7^%19W#~1qDJsKRb4R4(IZ0PgE2d*VqMuA1uZ zp)`?OK=FFTlDT0h5yQ#=#BB@e~CTH#@$+CYDKF# zkg^c#BD6Bp77(3HNeMwHRf6wjV#SQvGatmwsF6PfWkW_pcvnY*g)lekiO(INmdaPW zHg(ESq*0n+O4Mnam*$MxF5L1xgx|0{Pa|Cnj~IaC9dt8U#wR5`n{RtB30jMJlh>=i z-*u!9+KKS!0LBMdKs306%%)>v>Zx@c#b;u=xGNVocLbnB%uC3nD1Q8`4K(Q$5IZ~x z2SpMB0H_*xtUwO-0j`>${t(}BUIQG$XDi_E89)Vj0%9%fwjhV+TS>exLH7^3i~ZuW zbMXIn0jjHo=K_y3@PG!8`}QL%$dL5W4Pc6bMlXqHb}SNZ2vFrmpvhIgzw`k`+&%nN z5&y!&!^2YZ=9Ij=2aJLyKLL%?03F%;s3dkFF@94Tc_-qgc0YHr{+K&tF-ogE!jkQ} zQt-$v;%`yF+NwLG3OXY>9ua6j9gS24Zd2fE98m4Z=;-DAR10e?=3Kz6As%!ikOzI{ z?`D+%B{!r5A-Asc!KED9^9$fAtN6Spb0U2~|Amn-Ya1CU{I_CW7 zZ@GCo(255`aBL#b8JVPPzKCRg!x5lz@Qn(JJ)~w7Fp>jx52}vx{_~iHZ*j6qpOo2N zwIc}r%aTcVnQgkg5lWo>VSo|K1{iSU9#-=1z{y>RfV>PuN*SdQB24C7=f1;If^WW=Q9jR7T zMz^3aX^<=hfY80aJOwg^+68&#GY7}L2bvl$Vj9=8mVvs+c{5S|U#3(lI4-BZ-#hRV zCJztc{gxvtP_Ewqf5RM)YBim|881}@8rW~QZUPMiZtu{L{aCTS*YV41NUtOudad0mI7p*HJVY-8k9$dOh5{=O9Mf4w}P$hgNoJyC}Fv6 z)vEJFnH)n5X=2~!ApRH%lpL-lE$m3=1-fVM`VFep#gg0&rhXO^VTd2tj6wE)+ zKEVjr9?Z!B0R&TpPCUWhDyg_7Y)ghe?ZX~+ZcfhbVTX27_P}_Mf{#2_RLIH69sX6` zWfpsz10;)?Cot75TEBFJkOKVa0mz3Jn|SsDhzA!JS2*wub+onRvSr^Jf&SVWaJB|S z!k+;+py@a1=oCT573qAt27o*t7z=>_-<~**go2U)mPQXqQ?=BG<`OP!}Xs|=ug6#>z|afM6%MNq4vdiPJ`{KqH{xA>?}h@*`4+UMpC^oTjh zEvNB+>0=bOfnHTtf*)0m>zROo*s?36yinRkw)zR-KSKED8(xd)7#RFY)RI*N7}_^D zXa`&xzy$D!;NjsR;k`vqEqwsNA144E`|(m^&>ckH?U_vhXMZGL-S7C1^5%4X#Vc+j zCnr8o%GMXhn=!W@2OC=Wg#ljjDKSwIq#>To0+Q^t^Y0UA$O&m_z2HRf5eHfM3aE`6 zY|?3fIwUh$_y&!Y#GXw2EisG(Xs&By)SIgm{UJK~8(@NXd;}ssJw?zo0emhXCm^Ah zzecbv0Xb=Pj#>rR21Y*5@#9NB)Pu0FFmNTEG{}U06kkVQJ;kkvF4TT*ZmDR`SK?Z; zEH-jEwrn$(+1g+EyvB+$_X%Qu+EcImllX@D%AU$J_X#mw?`q#0e-|(4`yV#P;Mty} z=bGE;jxql384S(v>;g{{f&IY^*u`j}*3otaQrP+@+5Z~d{+tFV5kDX-cppBr1BO@A zd7(!7FR(1-yBsT?Cgywx+>I2zQfX;vW0=JU>z>O2DGPFL1$aJqg8|Pr0B4!=-xkdB zTf2>C*?Fpow~rYilL5Sf?N#+Y1P1vy`;8||(Qq{g8VbGT=jvfF`naU3gVcz<#H z>gNYq{BOaNcU@hD`?*>3`w`Sm7XG?+w_C z?c1Oaf$!#lNa8ykU=AWcje=Cvr~rxtu!n}VFK>)$9cY1-we#=m>%`fwc@Q7SyWSD1 zrJ@^H{$>kdi>3NaUC8sL#FCScl8$-whLf{vodrZ@nIUjBbx#mksGHTE(@Dy)k9)UF zJyP0^N4vK70l-4(25|TrY;>eadU65PYX?#q6v{_@r*HJM$2V!9$^dNPDHYII34kL4 zR`?lkNhA&{1wdZpClZK!Jg@>f>HzXnM@L7%vMmEI5r9U<`x;=W?-yXuYG70i&Zzu$ zAU^j%0nWJhu;TZ0-p(|9+SqVV!~j);Z-;;hC#0l2S5>_Z=+im~?iyeR+#({0cmxA9 zN~hJ|8-_VlP7$)y1VFt3{Nsui6nTyPklnw^S3t8xM6mgPARxN7v1VAa@L6Jw;JbVg zsaz2Y!0kWi6*cxop~JqD1NF19t>}Hu6_H{{45}oSNPFpwdhvt+&&+_`glZ?ErlF(j z0w^R8==;C6_fqqLN0cCPw#OTPY;A3ao8P$tp!@~A*xvqr8(h}Vtx7yw5=PhI1o}aP%pj!l=0j)^Qrd|@QU%leBv^bhL_7A zEwSijYLi-r4xqid0UOZ-3EK!n)@@0T2Vn6GU$I~wfV=zf;UEoiDj}y8am348zD#tq z=1ywmSupnU7UlOR+3op|PKIni;FW$PH*~w7JDmr22%V99xKEsnRsusCW-~p}%92lOvqA)$4^PQi_krw{znH#F}CPPH${YLM-epqm!} z^FzS6Iuu_l0NS&r>fSJ$+#q71sMV{m!29ukz%&96_H2GDv_NvMnc###C&1rj{hWU^ z-WUL|dw>V#TqTO~whJfFReAXN@hdcTfNh4O#ozt|L(_-&!vlL3W({sZfIa;Asz?er zzYNG*Wdj4o=6CycpszktQgR12Dv0De8g_Oq&{y%r4>lCm0e@LbF?Cr4F2KaVzVi#* z9s9fcAnythLzgGZ{PrgHEcc05zo%#XcW064z=&3bSGJM1zx;`{_K=F4E5_pkqj6j} z{(@ z6{s1VG80iYIL00CsDWYvUFrc?XCnowXc5o5L7NA}Vg%fo0k0pwK3E%l0pQiB&WQnZ zKWS9&eY`FJ(g$^h#ASkFwFcgrw4X2l=7&I1+k#($S1q;9(~QyGoq!ZbyxU{pE0KR}-%mmy{Ko-Eb1Hb!M-mMLiUCH17DX8Ze z0DXXyhJZd46&>xjCz)?uM5RjLI~t_%<;mB-jmaFb97)S}CaZeBAk+@~Vm}_d+?FJJ z7U-oD`9YIXW|@YtL#X_if87utvr?b3OYYeH)U|6L*kFe&dcK(MMuNURZ&l55`wv*) z2jE4`&dyu#n>HtFxPjWu0oDjO)jx$=?06Rswec-Z7tpch{kDD(?DO6F`G&3Hk~FDz z4}qPP3zQ6?K>Y^^R!T}rfq;48%`m*T2V^mO^X%Ro`eVTU-Bx;OL3=b;PhDSM2Lqi( z5J88Lyz4@3=zB~;7Pf~=-825%W#MQF3JPNoeWGhO7Q&b;tiTiq@4SH_ND?s3@OlG` z9r`K7XXF4g1mg=T_P_%IpnjGM(p{`U?g5GWYxTjCr@*bcf&2i7tUGxR8UgBsz->m- z+c;EI^7DB0{*WTUtw^o%iAjcD^oANgy`zl!>$QpSOEXBFJ5Fu=rT-f{>D#o?Vtya5do3%|c);k!tJ2Mx_E={{gls{=m?EO0##6-`zbYE1%| z&$!dQnu5BRbH=;jSz8B*SPVuiO?+`1?MJN%!mf?83EVA$6!?U z$aPK{U&7^0TYSa(C2J;=;`i@&4PQbJf70QzsO566890RzU?2lV{p|ob@Xi@f)7-$# z0y>}uxMp^P8LD81Hx1+=AUPs(5#;Z#onn9tlLbegY1p2Iq<$%9_v zX@8T!E=M`}UXMXeKQfNZ1?KFqNg;@B8Z29;`yw`Abg&yn!BlP2LnVtjP#nyX=?9um z1&o`FtE@>J9UbxA2@FVI>gslaxby?>QPTgI2ROTrz_u372nmw`g?bN+MZjHFdTr_| zVzL8K*Wb;*7YDV#3BC{D29GL_!BFvwxa%N)MN20L=`&C;AX`>|(f;DglSst~D&Rj* zI8Brf08DB;88?lLjTPMq*#L$p*j@$usvkhJs05o?_(?|u6{`dwo_OVeuQ9*%Ogx5y zvFuADBNZS{!OwGn`33}-ux&5RoZmWY8}{OjBIb>@#iDZcvG!NU$}*AWV&w&*3q^F_ zc0L<#da?b{;iT{dlehTLU&X&MbHO3k_@5+=IgK%753b<0j{&%||@4)zA^6WifVMXZ0ZA?ISA`uI^kA zd+p-MtIkk3S$OgU#Q@0xZtL(5SoZH=-%{X!hvSz%l}%kdGfOhHKUMhGcuc@H7s&=! zIv4&$(C;^bW#PY?2QAM#KhH$9Xq-una~^;NykNSYE7VY=9@))$*Oy2hL~q-#!^3`x z#mF~`UAX#ve)K4qzUwZglE1FJiz+gJ>>X|v5-5aP88-;X)U2)yUyv!mnrYZu3y&mg zCF-)e$dG94h(WA6Cfk?))$?-^mY)*r?b|WW>TKZXW#NLx!Tc@GV-(~b+~2?HYTT?x zdGcKK4CcRiTfkD#FhDQ+KuLjH96PGWg0XqZd*m8PCIH{D&z#|d6djO$>twhqS;wh4 zz|{`isu|h9{IoOF6Z(wQ%|aEs(okrkmS81eYZcX$0L!%q7OGEw6mBakr@)mF55V0(FO%illCf7 z7(Yl}c;v6d^51fq1{<5`hp01y>ECDXJKb1Fi~=FN8gHWCS`x$xy8UWI_SoIuJreTe z6Au2xm}X)y`0^9&3&9eHX+BnUnxp8=IhwIs51+EP+tpNYT1#FQCXJ$Q_neGivAnA; z6RM87vb+_(78G@Kh^sxvm;LI(tLItdR;wKDP6iOLPHiEWElz^yY|{Z2@E<|`{%scA z*d51Q{o^ppqR)BV4Btfw9>DVbNdMpUE!uxQfaHcv)Fkio=d@FaFYp8gw3&Sz_HRBANwvLJz0m(k;zs!wLb)I8JpKGgBlmR)#o+4UCKL=0G`q;#LnE!^bRn^s$>9!-W2H^CSHi-mjsB>&VIo*Gg>`s2Lp)7_DmUJoBz(^c3O2-w=f+l;^TvU+FsFfFjWb2 zJ6c{W&b=p_OhEsSpkrCc*v;M2xg<$>Q+CenD`b3e@6c74tMhe7{uP(a%=8hemZEw) zFl>W3=`>`KVz?Ai+tSmD2-#)X{uE`iHHKY({F4SD;2jew?sH#2q) z#H~*y%F35y%Kn}l-{0>pfuiD2W+r;4G3H1>6{U6k&^?zMOkZV1%p&H&-^9vqZx{$exx^CF! zT2YZ~H|Y&}s0Hdg%I)aQ-5HFL+Zhp>$Lz#+i<5%7ftR4p>;CXJ$j7Ui&U5bl=`){l zVMRkB#NP@*`QlR0ZhDi-pyhU(SLct$&>|uts-Mapv!i>Z7XcU2{d}DhxkRKA)xJQq zp#xbOA5B1b$4yvLnUl-;La2q1^`6PMnwkk#aif4U(9+R;bDAV#<<=U+{j-Uy z0+s|{SA`dDxQCZMKJx4o&K3R_!A8OnW$OoXT|bsfrIzD3?A_lr;|$kYhUn_*n$<+L z)X9g4K9m)yQSdZSg0;@St3-Q4<)W~p!`nn|tKx2&)W{ZAW(DUr7qk&7cF2wZyfqm4a2O$U>@mkP!ztAJ-ZC!GTH{1$BY2%E~i9og`-a(T-%7r|O zLw+c{e?R6U&b=d@Fn;Z9`}6d^Iu^QW%i)KsVNqk-kTWTV-iLG0y1?SFaLF4VNr$DV zAb%C@&O8lnxEhLB(E92_#8~|>eeBOS?p*&)OmPr7%pCvaOB8Dww_h)Vbvxx;8g!uS>6!e(kGgum+NQvs1KJOCy4K`;mm=` zyCN(-2>|_jcmdJdG%iZLGvg| z+)w$v*g|aCwMw4~DddQ4j+Nq>Er;vw8XzdcnzwNC_@`@b2dOcNPY&DoN6awKX^Ju3 z{fqf}Iv9~YuR)N<$HI&dC*h#19+m1GGKIMh5YRsVMbJAz;+2`26qFj^S1L(k2S8x1 zG|G(NiI#?UIxUYfkX_n>R!4vJCZ>oN7bdFP;i9l_~TBHVDz-@<| zsnn}6s$4AQm(kmHS@O7l#(Z5itUV=n^gj;~rONTf5y&aY#ZYH|DNhqJV!LEEZ9GDv zKM5m~xV!9*#_N~FSN@a_3|n!*|DER#o9TMxSS?2ruMS(`|8@Vg1}g9H=(;|qM1CK; z1x!T3f%68HQ)g)8!u^cJ4nczw(f__xYJ}1y+@R!!H#BIFX|}tm(j-D#FpDWUT%8or zV@{MMbPAjQRw|xi3JA%B%*Z*C4*S3}m@9VfFJOu63KNV5C0@n%kkb+nAe@i)XggxH z+WKT<8#AER{e}dvWa8d0@E!o@| z5!v&Apc0m6nv!roobXr&4Xx$1g5ZN+)Rlgj>!PzRWW+UMxOetr70u-a2j>K0^(QR_ zrVxHoPR-3_b}((#rgfqMazTirMJ)Y{oW=^Me27_t_Tz^7yu6>Tdq00Z%ft|6Vi@)< zb(e6L++6-`$Ssxj!ntUb%%{21FJ~^Uh@a9PzP5Gp!&Se?cmAIBb(->{nw&pQju9qk zX4tQDy>}j}9cD?L*V)$SY(>$=c#Vps7kDS=2_%+;xO`zdY_|Mmm?^zp%da}0X4dEt zZx_F7PtWo?_p#We)q9yqd%LtdK0`fX--yz`d*R>J?OZ?mt7b@+*<%k3cHF_n$h-gy zvU1t>9;_qvEU9}%Mz%o}M9KCOo^c`jgcK64hGZ`VfPJ3FC$Mw#g_+-Ka+_u8z1`SD zDe#Ovw$cb%sdx8@z>P3Rx8LY#yI(I;9b z{u_*MfQqXW+SM5AM=4eYU{LKv_FrtE9?{KK0L%(yE^051Vb1ttWn1Zd=<)kpQKz@{ zQ1O7GSsbfP?=f&j?eWUc^cugAkX98ULXDERlzFh{^55H!KagJt<4t|)f`zi`js7Of zfjbW-26t}xIcHpHy(<>e^g^9LL%e1~&=_KYaW+ z{{C|cwOs9%wS_8e@6hyH8rIose)YMV#7|x+APh-z{vMY5%-O?srTs52>ZWj31`w`d zvZ-1}Mc@&Jlt5a{n1MB{rtjWX@?8>7|e*L@0YbmOPHsM z$zel-7MS>1syM>a=WkHjp$wyjt>$dq9&xb88tR{${|V}1Wf@ti_=2%}+kVh_gW96| zRXAzIR3#wyVVAeTW*9BkGY9*}uR4EPGOS4;)IM0Ld%W~Xk6#!k{vLJsho264d;{1~ zJHT_`nb8%`7!e7*{NM9=&3p*$U)-tC(7yfi8(`bROX{qP8VWg>w9h74z1?|*<%0X7 zXTLzo(JT9s%ZW_a5Bs7CX|gfKnTL~^hl@hT^yrF;g?E;Zi>y!enmHMY6hqsq70o9$ zqld5u^;B3zq~QTOW)^og@11>imYO9mfC&;n-{ZBoO9X+?*yI0SfQS*1Tkmma)2}_} zA6{)6I<_Kv_JwX(@LrcoJ9u_{2nTC`^b8DD;E8JpFk#I7K(mBwj26aC*MWTp;vC@Z z6l1dApMHLb4H`USBHjNmw7^frCcV+I4;}`taQnrLbEf`DRG5kL4f7*;{%VLg`gtgK z^U>;L4QV(9rucQi(z6(CKe3m+uX;X`><`Sl2e4uygm&&Wf&Zx?-0@@NyNn@5e+@ck z#yA_-O1qGOc7InW<{)G-7`_0hb$GRLQ(R>qmn@>@ob~p$<00Ik`}dH+E{+#5R0k~ms z@MetMETaK9fqpzU;>fM$g{b=3$)fiuP8YwQtD{g>&29?%xAik5;0^aqDy^xU%_P<; z1DzNxW9&R(sq5}J3+jv1KLw^JdKS{J1@zVwA>m?^4-$HR=O+KHuw+LtDDj(JM*60B zFb`|?;Cgn?NOeO!kG$GKgeFwL5@;^4wUUyO+{W|`8%Mec=fU(`NnME1zfs{4;h!n6 z^7s4TB*BBA0jzAcuAO{`l*f3OV885*PnCOyw#`z}eq*_0q(};=IFNSBmrzygiwTfJ z5)OwfQ?jH$pK~hI@?=}ne+-Evpth(E79`k_LoFY;ojj>?&oz7O8d5Nt=Z_(fF@3cYVJ2sgm30-IqoSF zR3Shs^)_`WA0C;#-MI>WSxMxDgGnCvfk z8@NLLAh4I6EeNMD7MusZ)p)siNinfBAA(AATgW(2hoqOEMDU-;*tgW;jsbM2Ji)Vi zy?X58&%%#$&?X-qt7BZY?#BK6VadG&?C&97}fNVsQ*m>5 z#uXJ9lbeT`3;gHA5L6%R`eu4uu!1qL4hsPWoNkMOAS*o|%;k4c*MfO|wACFH4x&j33?P4;bL%!3 z%92(#Cti27tT@ApPA~bt>fCpjGi%WD)Pf?2;Y|?vOV*mc0tBH)v_V54M2XTsJDbp8 zr98*=s;zheD`+{tFH}FHMsg-;Z{f%vf%)RsJ}Bn=q?uuL*FQf>?v5cUMw|BrNlK2z z!Rl0Ze1!Ff@#hm(*dE5tF|lM_Wn{3_6HbExL48zvc)%iQTCVm% z@-OmU!Ah2d{46jQ1w$0nE!r(gKoIdxE!Z|`DkA1JFMagjJ0HZY9{qgkXvy0&PU6R( zlW7|LE)m&AQlu}990|=V*O%|(I;mYHo-1_)4GlnsivCLH7#-K$; zc}*%y%=CDXH4HPz6%CavSxQmH7!#35_eQA57K5^cv|x}W$#n^plo^SV{dGgOd#3mO z`#GQI^PKZ}&hPg<=ewL%{&?l^uD>_d|48>LcJP{Vp1sfomNdctqx;*&ZIvlr#d=)q zvaYH2l0PaoFFzlUYRO~o& zak=UPD);KIUl_>Ig4RSLf=;c3wKU(fYu?~ooZr9(Q8>N4xsqkp+ED%KTuvWsXWSmm z=>ECj@;)VRKvJ1 z*ZaC7y7JF^I^jT@V}AKBA4>Z1A@Xv5SIV1tv(koxBURgzrWc(NeZilX+Ghf$lDZr0 zjF<9s6bI|eIiIWqf?p$FbW+93RX2spu800;B9l9IIOk_-x=S9gnko0~^Nb{xSm~56 zth;WBh^`$Tb}%=V;iR5p3SBy@mk+H>?zaWg7%U8!SwdR5xBx5i^g8iJTEY6uQ*EbvU$E&@tY*61jENXJL)XiH_Fj_-Nv@ z>aO?kLj>oceglc~Fmj7UcKV{hTNMAq>c|PXoobCG%;~AM*RSo~#^)dCbgYJ5N}1%2^|Y&A*J)A2GbO%nRe|h$HW&1|T#3U;A$N_#__XA$28AFDp)I*Teq`cSyoeKh z^H9NRHY%pXjlJ-yO*g&(YDwc1RDW(yCW~MCS51Ixx#x6i zE;oj|zv4c)&EoouWqg&86^|Ev4tIu_dx80PBtEf8J%(E+G_w%7ic={@aa2JOj$1-d ztJj;ejX8*7N?VAk=qDNfS=i@91;~!=p z$8h9NrAxvO9{s%_lgapp>nJs(Q_Nzv z`GO-j%?i4G)Yfn-NYWjWvwcabQ_0iE2&&QHVqg^L8b?ndT6x9LKmF0*d?4dt( zbk=PPi5T!3I`HCFWlbc`04+@HUeDe~i~L>T9u?~0Dc@sW@8&RV4TT=^Q9y9ud_OE# zXgzi|XBd~;NSED}l zHmd%N@{6Qq+X#O`CKb}krm>djikZ#vUtALv_QbQ%tk6SqM~A&pG{AFP1G+B#0jF_K zgC~)CsgE9#g>8JOq$NRvZjZQyv+FCU6DGRN*N_xeo?c@<@`>In*0SO$rNrNPU+9-x z4UzL$v*08|<%db}2Py6Ojw4{Dx=HGzV$ zIaU{vv9G~dT^r>=fVDo~^gVIn9cTa}Eg4{GYC7Pc8*OX4%_509`EYPM2JMrthj)?z>Mz=q+Z#(>@qOhP14c0 zbL@rVWG*nq+Jo$ZtMlJA;}}}p4eYn@oH`Ph3-o_KEzUHXQ-nqeTC#IJtylLpIYK}d zH4*jxWcnE+_ELo{f`3GE9!p0Aw)B{9Nz5;T8IazNojZYx&Ke|+h1x4?@-VgF&VQ~) zV-~AUCKoHiK%NW~zq4M5z{Xstr4r%f5W_oOLte*ajC&vlq?F#zP+jr2Jv z@SXafYM^SLZ9F3OM?EtbjMvx&o@1*iV8^#MlZbe2*N9oi*u%=pU9&>X=Bpc0QmvA0OOMM3#c`0<7WU?4 I|2fY42R-jRGynhq From 64131818d8bebce8065d3e73e71e39ce15d9c2bf Mon Sep 17 00:00:00 2001 From: cookingboy3 Date: Tue, 29 Jul 2014 20:11:42 -0700 Subject: [PATCH 19/36] fix for #4243, adds notification squashed commits --- code/modules/power/singularity/emitter.dm | 2 ++ config/admins.txt | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm index c65bb2434a4..a644a5b0d54 100644 --- a/code/modules/power/singularity/emitter.dm +++ b/code/modules/power/singularity/emitter.dm @@ -108,6 +108,8 @@ powered = 0 update_icon() investigate_log("lost power and turned off","singulo") + log_game("Emitter lost power in ([x],[y],[z])") + message_admins("Emitter lost power in ([x],[y],[z] - JMP)",0,1) return src.last_shot = world.time diff --git a/config/admins.txt b/config/admins.txt index e8a1826da82..68fea1b2a47 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -60,4 +60,5 @@ yota = Game Master firecage = Game Master donkieyo = Game Master argoneus = Game Master -paprka = Game Master \ No newline at end of file +paprka = Game Master +cookingboy3 = Game Master \ No newline at end of file From 817278e5ada836046045f4c96fca9becaca5bd19 Mon Sep 17 00:00:00 2001 From: AndroidSFV Date: Wed, 30 Jul 2014 21:04:09 -0500 Subject: [PATCH 20/36] Resin walls and weeds cannot be mash-attacked. --- code/game/objects/effects/aliens.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index c61e64f00b9..0a8c349bba0 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -111,6 +111,7 @@ /obj/structure/alien/resin/attack_alien(mob/user) + user.changeNext_move(8) if(islarva(user)) return user.visible_message("[user] claws at the resin!") @@ -122,6 +123,7 @@ /obj/structure/alien/resin/attackby(obj/item/I, mob/user) + user.changeNext_move(8) health -= I.force playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) healthcheck() @@ -196,6 +198,7 @@ /obj/structure/alien/weeds/attackby(obj/item/I, mob/user) + user.changeNext_move(8) if(I.attack_verb.len) visible_message("[src] has been [pick(I.attack_verb)] with [I] by [user].") else From 802c5f347c4bc589fb2fd5e1a675f535fa06abdc Mon Sep 17 00:00:00 2001 From: Jordie Date: Thu, 31 Jul 2014 20:05:46 +1000 Subject: [PATCH 21/36] Blobs prevent supply shuttle from moving --- code/controllers/supply_shuttle.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/supply_shuttle.dm b/code/controllers/supply_shuttle.dm index 9dfdbe8889d..83cb3266da0 100644 --- a/code/controllers/supply_shuttle.dm +++ b/code/controllers/supply_shuttle.dm @@ -210,6 +210,8 @@ var/global/datum/controller/supply_shuttle/supply_shuttle return 1 if(istype(A,/obj/item/device/radio/beacon)) return 1 + if(istype(A,/obj/effect/blob)) + return 1 for(var/i=1, i<=A.contents.len, i++) var/atom/B = A.contents[i] From b2641f9af6756b817c09a59db6ab3069d06095ac Mon Sep 17 00:00:00 2001 From: Jordie0608 Date: Thu, 31 Jul 2014 21:54:55 +1000 Subject: [PATCH 22/36] Adds away missions to readme.md --- README.md | 8 ++++++++ code/modules/awaymissions/mission_code/box2550Away.dm | 0 2 files changed, 8 insertions(+) delete mode 100644 code/modules/awaymissions/mission_code/box2550Away.dm diff --git a/README.md b/README.md index 018d11691ac..212c87e1e8d 100644 --- a/README.md +++ b/README.md @@ -97,6 +97,14 @@ All maps have their own code file that is in the base of the _maps directory. In If you want to load a different map, just open the corresponding map's code file in Dream Maker, make sure all of the other map code files are unticked in the file tree, in the left side of the screen, and then make sure the map code file you want is ticked. +##AWAY MISSIONS + +/tg/station supports loading away missions however they are disabled by default. + +Map files for away missions are located in the _maps/RandomZLevels directory. Each away mission includes it's own code definitions located in /code/modules/awaymissions/mission_code. These files must be included and compiled with the server beforehand otherwise the server will crash upon trying to load away missions that lack their code. + +To enable an away mission open fileList.txt in the _maps/RandomZLevels directory and uncomment one of the .dmm lines by removing the #. If more than one away mission is uncommented then the away mission loader will randomly select one the enabled ones to load. + ##SQL SETUP The SQL backend for the library and stats tracking requires a diff --git a/code/modules/awaymissions/mission_code/box2550Away.dm b/code/modules/awaymissions/mission_code/box2550Away.dm deleted file mode 100644 index e69de29bb2d..00000000000 From 3fbfaf3ba773293b2078ca71e3380eef8ee34f54 Mon Sep 17 00:00:00 2001 From: Jordie Date: Fri, 1 Aug 2014 05:00:01 +1000 Subject: [PATCH 23/36] Added spiderlings to exclusion --- code/controllers/supply_shuttle.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/controllers/supply_shuttle.dm b/code/controllers/supply_shuttle.dm index 83cb3266da0..f948acefd6a 100644 --- a/code/controllers/supply_shuttle.dm +++ b/code/controllers/supply_shuttle.dm @@ -212,6 +212,8 @@ var/global/datum/controller/supply_shuttle/supply_shuttle return 1 if(istype(A,/obj/effect/blob)) return 1 + if(istype(A,/obj/effect/spider/spiderling)) + return 1 for(var/i=1, i<=A.contents.len, i++) var/atom/B = A.contents[i] From 4ebe887b5c266ae8ff1378c1be29406987981778 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Fri, 1 Aug 2014 22:26:59 -0300 Subject: [PATCH 24/36] fixes issue #1489 Added [e] buttons to edit the strings of the medical records in the medical computer. The medical records should look prettier and easier to read in the medical computer. Fixed a bug where you couldn't edit the DNA string of the medical records on the medical computer. --- code/game/machinery/computer/medical.dm | 52 ++++++++++++++++++------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index a31cab5020b..20da240d3ae 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -102,23 +102,47 @@ if(3.0) dat += text("Records Maintenance
    \nBackup To Disk
    \nUpload From Disk
    \nDelete All Records
    \n
    \nBack", src, src, src, src) if(4.0) - dat += "
    Medical Record

    " + + dat += "Medical Record" if(active1 in data_core.general) - dat += text("Name: [] ID: []
    \nSex: []
    \nAge: []
    \nFingerprint: []
    \nPhysical Status: []
    \nMental Status: []
    ", src.active1.fields["name"], src.active1.fields["id"], src, src.active1.fields["sex"], src, src.active1.fields["age"], src, src.active1.fields["fingerprint"], src, src.active1.fields["p_stat"], src, src.active1.fields["m_stat"]) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" else - dat += "General Record Lost!
    " + dat += "" + + dat += "" if(active2 in data_core.medical) - dat += text("
    \n
    Medical Data

    \nBlood Type: []
    \nDNA: []
    \n
    \nMinor Disabilities: []
    \nDetails: []
    \n
    \nMajor Disabilities: []
    \nDetails: []
    \n
    \nAllergies: []
    \nDetails: []
    \n
    \nCurrent Diseases: [] (per disease info placed in log/comment section)
    \nDetails: []
    \n
    \nImportant Notes:
    \n\t[]
    \n
    \n
    Comments/Log

    ", src, src.active2.fields["blood_type"], src, src.active2.fields["b_dna"], src, src.active2.fields["mi_dis"], src, src.active2.fields["mi_dis_d"], src, src.active2.fields["ma_dis"], src, src.active2.fields["ma_dis_d"], src, src.active2.fields["alg"], src, src.active2.fields["alg_d"], src, src.active2.fields["cdi"], src, src.active2.fields["cdi_d"], src, src.active2.fields["notes"]) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" //(per disease info placed in log/comment section) + dat += "" + dat += "" + + dat += "" var/counter = 1 while(src.active2.fields[text("com_[]", counter)]) - dat += text("[]
    Delete Entry

    ", src.active2.fields[text("com_[]", counter)], src, counter) + dat += "" counter++ - dat += text("Add Entry

    ", src) - dat += text("Delete Record (Medical Only)

    ", src) + dat += "" + + dat += "" else - dat += "Medical Record Lost!
    " - dat += text("New Record

    ") - dat += text("\nPrint Record
    \nBack
    ", src, src) + dat += "" + dat += "" + dat += "" + dat += "" + dat += "
    Name:[active1.fields["name"]]
    ID:[active1.fields["id"]]
    Sex:e[active1.fields["sex"]]
    Age:e[active1.fields["age"]]
    Fingerprint:e[active1.fields["fingerprint"]]
    Physical Status:e[active1.fields["p_stat"]]
    Mental Status:e[active1.fields["m_stat"]]
    General Record Lost!

    Medical Data
    Blood Type:e[active2.fields["blood_type"]]
    DNA:e[active2.fields["b_dna"]]

    Minor Disabilities:

    e[active2.fields["mi_dis"]]
    Details:e[active2.fields["mi_dis_d"]]

    Major Disabilities:

    e[active2.fields["ma_dis"]]
    Details:e[active2.fields["ma_dis_d"]]

    Allergies:

    e[active2.fields["alg"]]
    Details:e[active2.fields["alg_d"]]

    Current Diseases:

    e[active2.fields["cdi"]]
    Details:e[active2.fields["cdi_d"]]

    Important Notes:

    e[active2.fields["notes"]]

    Comments/Log
    [active2.fields[text("com_[]", counter)]]
    Delete Entry
    Add Entry

    Delete Record (Medical Only)
    Medical Record Lost!

    New Record
    Print Record
    Back
    " if(5.0) dat += "
    Virus Database
    " for(var/Dt in typesof(/datum/disease/)) @@ -333,11 +357,11 @@ if(active2) src.temp = text("Blood Type:
    \n\tA- A+
    \n\tB- B+
    \n\tAB- AB+
    \n\tO- O+
    ", src, src, src, src, src, src, src, src) if("b_dna") - if(active1) - var/t1 = copytext(sanitize(input("Please input DNA hash:", "Med. records", src.active1.fields["dna"], null) as text),1,MAX_MESSAGE_LEN) - if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active1 != a1)) + if(active2) + var/t1 = copytext(sanitize(input("Please input DNA hash:", "Med. records", src.active2.fields["b_dna"], null) as text),1,MAX_MESSAGE_LEN) + if ((!( t1 ) || !( src.authenticated ) || usr.stat || usr.restrained() || (!in_range(src, usr) && (!istype(usr, /mob/living/silicon))) || src.active2 != a2)) return - src.active1.fields["dna"] = t1 + src.active2.fields["b_dna"] = t1 else else if (href_list["p_stat"]) From 7c24f99d61307beec66b96ffb6b7720a965a92dc Mon Sep 17 00:00:00 2001 From: Swag McYolosteinen Date: Sat, 2 Aug 2014 18:53:01 +0200 Subject: [PATCH 25/36] Stops slot machines from eating coins. --- code/game/machinery/slotmachine.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/slotmachine.dm b/code/game/machinery/slotmachine.dm index 940c3132422..8a252a39b8a 100644 --- a/code/game/machinery/slotmachine.dm +++ b/code/game/machinery/slotmachine.dm @@ -100,7 +100,7 @@ spark_system.start() playsound(src.loc, "sparks", 50, 1) - else + else if(!balance) //to prevent coins from magically disappearing ..() /obj/machinery/computer/slot_machine/attack_hand(mob/living/user) From 76a709cda2ff7500bf3e4eab03738b9ce2f42526 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Sat, 2 Aug 2014 20:52:22 -0300 Subject: [PATCH 26/36] Changes the message of the F12 button to toggle the HUD, adding a string mentioning that you need to use F12 to use it, in case of pressing it by accident. (Yes it happens) --- code/_onclick/hud/hud.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index ba74450b504..103d639189d 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -298,7 +298,7 @@ datum/hud/New(mob/owner) if(hud_used && client) if(ishuman(src)) hud_used.show_hud() //Shows the next hud preset - usr << "Switched HUD mode." + usr << "Switched HUD mode. Press F12 to toggle." else usr << "Inventory hiding is currently only supported for human mobs, sorry." else From 1a991974e1f22fcc267d2b527783477da06f44a3 Mon Sep 17 00:00:00 2001 From: MrPerson Date: Sat, 2 Aug 2014 17:36:03 -0700 Subject: [PATCH 27/36] Sanity check to prevent ghosts from going to nullspace Fixes #4310 --- code/_onclick/observer.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm index e245e649b08..8083c11d0a4 100644 --- a/code/_onclick/observer.dm +++ b/code/_onclick/observer.dm @@ -24,7 +24,7 @@ ManualFollow(A) // Otherwise jump - else + else if(A.loc) loc = get_turf(A) /mob/dead/observer/ClickOn(var/atom/A, var/params) From 7473daf467d949d0f509e234bffc9cc54ad953dd Mon Sep 17 00:00:00 2001 From: MrPerson Date: Sat, 2 Aug 2014 18:47:00 -0700 Subject: [PATCH 28/36] Fixes that "temporary black screen on deletion" issue for disposals --- code/modules/recycling/disposal.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm index 6b99d503d8d..88e88dc3e6d 100644 --- a/code/modules/recycling/disposal.dm +++ b/code/modules/recycling/disposal.dm @@ -45,8 +45,7 @@ trunk.linked = src // link the pipe trunk to self /obj/machinery/disposal/Destroy() - for(var/atom/movable/AM in contents) - AM.loc = src.loc + eject() ..() /obj/machinery/disposal/initialize() From ac0a1d18134d172d0c487208efee7a7d2c5d7b2b Mon Sep 17 00:00:00 2001 From: Incoming Date: Sat, 2 Aug 2014 23:29:41 -0400 Subject: [PATCH 29/36] Fixes #2738 Only 6 months later than I could have fixed it! #FreeTheTinCans --- .../mob/living/carbon/human/update_icons.dm | 3 ++- icons/mob/augments.dmi | Bin 1136 -> 1243 bytes 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index c9edac17e1c..2ece237c827 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -204,6 +204,7 @@ Please contact me on #coderbus IRC. ~Carnie x remove_overlay(AUGMENTS_LAYER) var/list/standing = list() + var/g = (gender == FEMALE) ? "f" : "m" if(getlimb(/obj/item/organ/limb/robot/r_arm)) @@ -217,7 +218,7 @@ Please contact me on #coderbus IRC. ~Carnie x standing += image("icon"='icons/mob/augments.dmi', "icon_state"="l_leg_s", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/chest)) - standing += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_s", "layer"=-AUGMENTS_LAYER) + standing += image("icon"='icons/mob/augments.dmi', "icon_state"="chest_[g]_s", "layer"=-AUGMENTS_LAYER) if(getlimb(/obj/item/organ/limb/robot/head)) standing += image("icon"='icons/mob/augments.dmi', "icon_state"="head_s", "layer"=-AUGMENTS_LAYER) diff --git a/icons/mob/augments.dmi b/icons/mob/augments.dmi index b0ade807d8335033aa431a1d387cc0d74bac2619..0600a4fb669e354a35965c0ecd733d9ecb2c923a 100644 GIT binary patch delta 1202 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 Date: Sun, 3 Aug 2014 05:19:55 -0300 Subject: [PATCH 30/36] Sleepers, cryo tubes and DNA scanners now open and close without power by just clicking on them. Switched the "Sleeper status" and the "Injectors" position of the sleepers UI to stop the missclicks while using the console. Cryo tubes will turn off automatically if they are open in all cases, they'll stop closing and activate instantly this way. --- code/game/dna.dm | 2 - code/game/machinery/Sleeper.dm | 70 +++++++++++++++++----------------- code/game/machinery/cryo.dm | 10 ++++- 3 files changed, 44 insertions(+), 38 deletions(-) diff --git a/code/game/dna.dm b/code/game/dna.dm index bbdb78b8597..cbd8ee69f33 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -486,8 +486,6 @@ qdel(G) /obj/machinery/dna_scannernew/attack_hand(mob/user) - if(..()) - return toggle_open(user) add_fingerprint(user) diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm index 83c900bee2f..52c8c84e1aa 100644 --- a/code/game/machinery/Sleeper.dm +++ b/code/game/machinery/Sleeper.dm @@ -132,42 +132,16 @@ open_machine() /obj/machinery/sleeper/attack_hand(mob/user) - if(..()) - return - var/dat = "

    Sleeper Status

    " - - dat += "
    " - if(!occupant) - dat += "Sleeper Unoccupied" + if(stat & (BROKEN|NOPOWER)) + if(state_open) + close_machine() + else + open_machine() else - dat += "[occupant.name] => " - switch(occupant.stat) //obvious, see what their status is - if(0) - dat += "Conscious" - if(1) - dat += "Unconscious" - else - dat += "DEAD" - - dat += "
    " - - dat += "
    Health:
    [occupant.health]%
    " - dat += "
    \> Brute Damage:
    [occupant.getBruteLoss()]%
    " - dat += "
    \> Resp. Damage:
    [occupant.getOxyLoss()]%
    " - dat += "
    \> Toxin Content:
    [occupant.getToxLoss()]%
    " - dat += "
    \> Burn Severity:
    [occupant.getFireLoss()]%
    " - - dat += "
    Paralysis Summary:
    [round(occupant.paralysis)]% [occupant.paralysis ? "([round(occupant.paralysis / 4)] seconds left)" : ""]
    " - if(occupant.reagents.reagent_list.len) - for(var/datum/reagent/R in occupant.reagents.reagent_list) - dat += text("
    [R.name]:
    [] units
    ", round(R.volume, 0.1)) - - dat += "
    " - - dat += "Scan" - - dat += "Close" : "open=1'>Open"]" + sleeperUI(user) +/obj/machinery/sleeper/proc/sleeperUI(mob/user) + var/dat dat += "

    Injector

    " if(occupant) dat += "Inject Inaprovaline" @@ -184,6 +158,34 @@ if(C) dat += "
    Inject [C.name]" + dat += "

    Sleeper Status

    " + dat += "Scan" + dat += "Close" : "open=1'>Open"]" + dat += "
    " + if(!occupant) + dat += "Sleeper Unoccupied" + else + dat += "[occupant.name] => " + switch(occupant.stat) //obvious, see what their status is + if(0) + dat += "Conscious" + if(1) + dat += "Unconscious" + else + dat += "DEAD" + dat += "
    " + dat += "
    Health:
    [occupant.health]%
    " + dat += "
    \> Brute Damage:
    [occupant.getBruteLoss()]%
    " + dat += "
    \> Resp. Damage:
    [occupant.getOxyLoss()]%
    " + dat += "
    \> Toxin Content:
    [occupant.getToxLoss()]%
    " + dat += "
    \> Burn Severity:
    [occupant.getFireLoss()]%
    " + + dat += "
    Paralysis Summary:
    [round(occupant.paralysis)]% [occupant.paralysis ? "([round(occupant.paralysis / 4)] seconds left)" : ""]
    " + if(occupant.reagents.reagent_list.len) + for(var/datum/reagent/R in occupant.reagents.reagent_list) + dat += text("
    [R.name]:
    [] units
    ", round(R.volume, 0.1)) + dat += "
    " + var/datum/browser/popup = new(user, "sleeper", "Sleeper Console", 520, 540) //Set up the popup browser window popup.set_title_image(user.browse_rsc_icon(icon, icon_state)) popup.set_content(dat) diff --git a/code/game/machinery/cryo.dm b/code/game/machinery/cryo.dm index 12114bbc399..0bffb385460 100644 --- a/code/game/machinery/cryo.dm +++ b/code/game/machinery/cryo.dm @@ -100,7 +100,13 @@ usr << "Too far away to view contents." /obj/machinery/atmospherics/unary/cryo_cell/attack_hand(mob/user) - ui_interact(user) + if(stat & (NOPOWER|BROKEN)) + if(state_open == 1) + close_machine() + else + open_machine() + else + ui_interact(user) /** @@ -189,7 +195,6 @@ on = 1 if(href_list["open"]) - on = 0 open_machine() if(href_list["close"]) @@ -235,6 +240,7 @@ /obj/machinery/atmospherics/unary/cryo_cell/open_machine() if(!state_open && !panel_open) + on = 0 layer = 3 if(occupant) occupant.bodytemperature = Clamp(occupant.bodytemperature, 261, 360) From f5ee1a573a80b713e245275c01e5558e374265b1 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Sun, 3 Aug 2014 17:59:56 -0300 Subject: [PATCH 31/36] The set internals button on the strip panel will properly appear if it's on the exosuit. The strip panel should be prettier now. --- code/modules/mob/living/carbon/human/human.dm | 86 ++++++++++--------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index d3996e7ca41..c6ad3bcdc61 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -306,77 +306,83 @@ var/has_breathable_mask = istype(wear_mask, /obj/item/clothing/mask) var/list/obscured = check_obscured_slots() - var/dat = {" - Left Hand: [(l_hand && !(l_hand.flags&ABSTRACT)) ? l_hand : "Empty"]
    - Right Hand: [(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Empty"]
    - "} + var/dat = {" + + + "} - dat += "
    Back: [(back && !(back.flags&ABSTRACT)) ? back : "Empty"]" + dat += "" - dat += "
    Head: [(head && !(head.flags&ABSTRACT)) ? head : "Empty"]" + dat += "" if(slot_wear_mask in obscured) - dat += "
    Mask: Obscured" + dat += "" else - dat += "
    Mask: [(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Empty"]" + dat += "" if(slot_glasses in obscured) - dat += "
    Eyes: Obscured" + dat += "" else - dat += "
    Eyes: [(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "Empty"]" + dat += "" if(slot_ears in obscured) - dat += "
    Ears: Obscured" + dat += "" else - dat += "
    Ears: [(ears && !(ears.flags&ABSTRACT)) ? ears : "Empty"]" + dat += "" - dat += "
    " + dat += "" - dat += "
    Exosuit: [(wear_suit && !(wear_suit.flags&ABSTRACT)) ? wear_suit : "Empty"]" + dat += "" if(wear_suit) - dat += "
    [TAB]↳Suit Storage:[(s_store && !(s_store.flags&ABSTRACT)) ? s_store : "Empty"]" - if(has_breathable_mask && istype(wear_suit, /obj/item/weapon/tank)) - dat += "
    [TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]" + dat += "" + else + dat += "" if(slot_shoes in obscured) - dat += "
    Shoes: Obscured" + dat += "" else - dat += "
    Shoes: [(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "Empty"]" + dat += "" if(slot_gloves in obscured) - dat += "
    Gloves: Obscured" + dat += "" else - dat += "
    Gloves: [(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "Empty"]" + dat += "" if(slot_w_uniform in obscured) - dat += "
    Uniform: Obscured" + dat += "" else - dat += "
    Uniform: [(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "Empty"]" - if((w_uniform) || (dna && dna.species.nojumpsuit)) - dat += "
    [TAB]↳Belt: [(belt && !(belt.flags&ABSTRACT)) ? belt : "Empty"]" - if(has_breathable_mask && istype(belt, /obj/item/weapon/tank)) - dat += "
    [TAB][TAB]↳[internal ? "Disable Internals" : "Set Internals"]" - dat += "
    [TAB]↳Pockets:[(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "Left (Empty)"]" - dat += " [(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "Right (Empty)"]" - dat += "
    [TAB]↳ID:[(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Empty"]" + dat += "" - dat += "
    " + if(w_uniform == null || (slot_w_uniform in obscured) || (dna && dna.species.nojumpsuit)) + dat += "" + dat += "" + dat += "" + else + dat += "" + dat += "" + dat += "" if(handcuffed) - dat += "
    Handcuffed:Remove" + dat += "" if(legcuffed) - dat += "
    Legcuffed" + dat += "" - dat += {" -
    -
    Close + dat += {"
    Left Hand:[(l_hand && !(l_hand.flags&ABSTRACT)) ? l_hand : "Empty"]
    Right Hand:[(r_hand && !(r_hand.flags&ABSTRACT)) ? r_hand : "Empty"]
     
    Back:[(back && !(back.flags&ABSTRACT)) ? back : "Empty"]" if(has_breathable_mask && istype(back, /obj/item/weapon/tank)) - dat += "
    [TAB]↳[internal ? "Disable Internals" : "Set Internals"]" + dat += " [internal ? "Disable Internals" : "Set Internals"]" - dat += "
    " + dat += "
     
    Head:[(head && !(head.flags&ABSTRACT)) ? head : "Empty"]
    Mask:Obscured
    Mask:[(wear_mask && !(wear_mask.flags&ABSTRACT)) ? wear_mask : "Empty"]
    Eyes:Obscured
    Eyes:[(glasses && !(glasses.flags&ABSTRACT)) ? glasses : "Empty"]
    Ears:Obscured
    Ears:[(ears && !(ears.flags&ABSTRACT)) ? ears : "Empty"]
     
    Exosuit:[(wear_suit && !(wear_suit.flags&ABSTRACT)) ? wear_suit : "Empty"]
     ↳Suit Storage:[(s_store && !(s_store.flags&ABSTRACT)) ? s_store : "Empty"]" + if(has_breathable_mask && istype(s_store, /obj/item/weapon/tank)) + dat += " [internal ? "Disable Internals" : "Set Internals"]" + dat += "
     ↳Suit Storage:
    Shoes:Obscured
    Shoes:[(shoes && !(shoes.flags&ABSTRACT)) ? shoes : "Empty"]
    Gloves:Obscured
    Gloves:[(gloves && !(gloves.flags&ABSTRACT)) ? gloves : "Empty"]
    Uniform:Obscured
    Uniform:[(w_uniform && !(w_uniform.flags&ABSTRACT)) ? w_uniform : "Empty"]
     ↳Pockets:
     ↳ID:
     ↳Belt:
     ↳Belt:[(belt && !(belt.flags&ABSTRACT)) ? belt : "Empty"]" + if(has_breathable_mask && istype(belt, /obj/item/weapon/tank)) + dat += " [internal ? "Disable Internals" : "Set Internals"]" + dat += "
     ↳Pockets:[(l_store && !(l_store.flags&ABSTRACT)) ? "Left (Full)" : "Left (Empty)"]" + dat += " [(r_store && !(r_store.flags&ABSTRACT)) ? "Right (Full)" : "Right (Empty)"]
     ↳ID:[(wear_id && !(wear_id.flags&ABSTRACT)) ? wear_id : "Empty"]
    Handcuffed: Remove
    Legcuffed
    + Close "} - var/datum/browser/popup = new(user, "mob\ref[src]", "[src]", 340, 500) + var/datum/browser/popup = new(user, "mob\ref[src]", "[src]", 440, 510) popup.set_content(dat) popup.open() @@ -600,4 +606,4 @@ if(istype(idcard, /obj/item/weapon/card/id/syndicate)) threatcount -= 2 - return threatcount + return threatcount From 3fbb78b9973bd441d1630aed87a4426446300d39 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Sun, 3 Aug 2014 18:35:58 -0300 Subject: [PATCH 32/36] Medical records on the medical computer: -Changes my last commit, the 'e' button will never see daylight. -Added some ' ' on the links to prevent the link to disappear when the string is empty. --- code/game/machinery/computer/medical.dm | 34 ++++++++++++------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index 20da240d3ae..ab3182f0219 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -103,31 +103,31 @@ dat += text("Records Maintenance
    \nBackup To Disk
    \nUpload From Disk
    \nDelete All Records
    \n
    \nBack", src, src, src, src) if(4.0) - dat += "Medical Record" + dat += "
    " if(active1 in data_core.general) dat += "" dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" else dat += "" dat += "" if(active2 in data_core.medical) - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" - dat += "" //(per disease info placed in log/comment section) - dat += "" - dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" + dat += "" //(per disease info placed in log/comment section) + dat += "" + dat += "" dat += "" var/counter = 1 From ccae5781c542ff905f3996bb2bfbf4d590259a79 Mon Sep 17 00:00:00 2001 From: Aranclanos Date: Sun, 3 Aug 2014 22:14:56 -0300 Subject: [PATCH 33/36] added two defines CLICK_CD_RANGE and CLICK_CD_MELEE (4 and 8), replaced all changeNext_move() procs to use these two defines. Added melee click cooldown for paper spam on cameras. --- code/__DEFINES/misc.dm | 5 +++++ code/_onclick/click.dm | 8 ++++---- code/_onclick/item_attack.dm | 2 +- code/game/gamemodes/blob/theblob.dm | 4 ++-- code/game/machinery/bots/bots.dm | 6 +++--- code/game/machinery/camera/camera.dm | 1 + code/game/machinery/doors/windowdoor.dm | 4 ++-- code/game/machinery/portable_turret.dm | 4 ++-- code/game/machinery/turrets.dm | 8 ++++---- code/game/mecha/mecha.dm | 4 ++-- code/game/objects/effects/aliens.dm | 6 +++--- .../structures/crates_lockers/closets/fireaxe.dm | 2 +- code/game/objects/structures/displaycase.dm | 4 ++-- code/game/objects/structures/grille.dm | 10 +++++----- code/game/objects/structures/lamarr_cage.dm | 4 ++-- code/game/objects/structures/window.dm | 6 +++--- code/game/turfs/simulated/walls.dm | 8 ++++---- code/modules/events/spacevine.dm | 2 +- code/modules/mob/living/simple_animal/simple_animal.dm | 2 +- code/modules/projectiles/firing.dm | 2 +- code/modules/reagents/reagent_containers/spray.dm | 4 ++-- 21 files changed, 51 insertions(+), 45 deletions(-) diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index 33edf53016b..25c256322ef 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -30,3 +30,8 @@ #define MINERAL_MATERIAL_AMOUNT 2000 //The amount of materials you get from a sheet of mineral like iron/diamond/glass etc + + +#define CLICK_CD_MELEE 8 +#define CLICK_CD_RANGE 4 +//click cooldowns, in tenths of a second \ No newline at end of file diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index 5193efd9561..c67817e6463 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -102,7 +102,7 @@ W.afterattack(A,src,1,params) // 1 indicates adjacency else if(ismob(A)) - changeNext_move(8) + changeNext_move(CLICK_CD_MELEE) UnarmedAttack(A) return @@ -119,7 +119,7 @@ W.afterattack(A,src,1,params) // 1: clicking something Adjacent else if(ismob(A)) - changeNext_move(8) + changeNext_move(CLICK_CD_MELEE) UnarmedAttack(A, 1) return else // non-adjacent click @@ -150,7 +150,7 @@ */ /mob/proc/UnarmedAttack(var/atom/A, var/proximity_flag) if(ismob(A)) - changeNext_move(8) + changeNext_move(CLICK_CD_MELEE) return /* @@ -261,7 +261,7 @@ return /mob/living/LaserEyes(atom/A) - changeNext_move(4) + changeNext_move(CLICK_CD_RANGE) var/turf/T = get_turf(src) var/turf/U = get_turf(A) diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 85586389473..5eccb4b2435 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -11,7 +11,7 @@ visible_message("[src] has been hit by [user] with [W].") /mob/living/attackby(obj/item/I, mob/user) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) I.attack(src, user) /mob/living/proc/attacked_by(var/obj/item/I, var/mob/living/user, var/def_zone) diff --git a/code/game/gamemodes/blob/theblob.dm b/code/game/gamemodes/blob/theblob.dm index 433ed32f59b..d4f0d21229e 100644 --- a/code/game/gamemodes/blob/theblob.dm +++ b/code/game/gamemodes/blob/theblob.dm @@ -150,7 +150,7 @@ /obj/effect/blob/attackby(var/obj/item/weapon/W, var/mob/user) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) src.visible_message("The [src.name] has been attacked with \the [W][(user ? " by [user]" : "")]!") var/damage = 0 @@ -167,7 +167,7 @@ return /obj/effect/blob/attack_animal(mob/living/simple_animal/M as mob) - M.changeNext_move(8) + M.changeNext_move(CLICK_CD_MELEE) playsound(src.loc, 'sound/effects/attackblob.ogg', 50, 1) src.visible_message("The [src.name] has been attacked by \the [M]!") var/damage = rand(M.melee_damage_lower, M.melee_damage_upper) diff --git a/code/game/machinery/bots/bots.dm b/code/game/machinery/bots/bots.dm index 92fda838452..e4fb0e881eb 100644 --- a/code/game/machinery/bots/bots.dm +++ b/code/game/machinery/bots/bots.dm @@ -53,7 +53,7 @@ return /obj/machinery/bot/attack_alien(var/mob/living/carbon/alien/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) src.health -= rand(15,30)*brute_dam_coeff src.visible_message("\red [user] has slashed [src]!") playsound(src.loc, 'sound/weapons/slice.ogg', 25, 1, -1) @@ -64,7 +64,7 @@ /obj/machinery/bot/attack_animal(var/mob/living/simple_animal/M as mob) if(M.melee_damage_upper == 0) return - M.changeNext_move(8) + M.changeNext_move(CLICK_CD_MELEE) src.health -= M.melee_damage_upper src.visible_message("\red [M] has [M.attacktext] [src]!") add_logs(M, src, "attacked", admin=0) @@ -93,7 +93,7 @@ Emag(user) else if(hasvar(W,"force") && hasvar(W,"damtype")) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) switch(W.damtype) if("fire") src.health -= W.force * fire_dam_coeff diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 8d5385d11f7..b58fc889a64 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -190,6 +190,7 @@ itemname = P.name info = P.notehtml U << "You hold \the [itemname] up to the camera ..." + U.changeNext_move(CLICK_CD_MELEE) for(var/mob/O in player_list) if(istype(O, /mob/living/silicon/ai)) var/mob/living/silicon/ai/AI = O diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 3ed5b14d2ed..e8ff575bf40 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -194,7 +194,7 @@ /obj/machinery/door/window/proc/attack_generic(mob/user as mob, damage = 0) if(src.operating) return - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) user.visible_message("[user] smashes against the [src.name].", \ "[user] smashes against the [src.name].") @@ -263,7 +263,7 @@ //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) ) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) var/aforce = I.force playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\The [src] has been hit by [user] with [I].") diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index e52421b06be..11d49aef2bf 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -300,7 +300,7 @@ else //if the turret was attacked with the intention of harming it: - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) health -= I.force * 0.5 if(health <= 0) die() @@ -985,7 +985,7 @@ Status: []
    "}, user << "Access denied." else - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) Parent_Turret.health -= I.force * 0.5 if(Parent_Turret.health <= 0) Parent_Turret.die() diff --git a/code/game/machinery/turrets.dm b/code/game/machinery/turrets.dm index e4e7e0f86df..52a91647851 100644 --- a/code/game/machinery/turrets.dm +++ b/code/game/machinery/turrets.dm @@ -276,7 +276,7 @@ /obj/machinery/turret/attackby(obj/item/weapon/W, mob/user)//I can't believe no one added this before/N ..() - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) playsound(src.loc, 'sound/weapons/smash.ogg', 60, 1) src.spark_system.start() src.health -= W.force * 0.5 @@ -410,7 +410,7 @@ /obj/machinery/turret/attack_animal(mob/living/simple_animal/M as mob) - M.changeNext_move(8) + M.changeNext_move(CLICK_CD_MELEE) if(M.melee_damage_upper == 0) return if(!(stat & BROKEN)) visible_message("\red [M] [M.attacktext] [src]!") @@ -427,7 +427,7 @@ /obj/machinery/turret/attack_alien(mob/living/carbon/alien/humanoid/M as mob) - M.changeNext_move(8) + M.changeNext_move(CLICK_CD_MELEE) if(!(stat & BROKEN)) playsound(src.loc, 'sound/weapons/slash.ogg', 25, 1, -1) visible_message("\red [] has slashed at []!", M, src) @@ -548,7 +548,7 @@ /obj/machinery/gun_turret/attack_alien(mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) user.visible_message("[user] slashes at [src]", "You slash at [src]") take_damage(15) return diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm index 115333657e9..f3909abc787 100644 --- a/code/game/mecha/mecha.dm +++ b/code/game/mecha/mecha.dm @@ -465,7 +465,7 @@ qdel(src) /obj/mecha/attack_hand(mob/user as mob) - user.changeNext_move(8) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. + user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. src.log_message("Attack by hand/paw. Attacker - [user].",1) if ((HULK in user.mutations) && !prob(src.deflect_chance)) @@ -633,7 +633,7 @@ return /obj/mecha/proc/dynattackby(obj/item/weapon/W as obj, mob/user as mob) - user.changeNext_move(8) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. + user.changeNext_move(CLICK_CD_MELEE) // Ugh. Ideally we shouldn't be setting cooldowns outside of click code. src.log_message("Attacked by [W]. Attacker - [user]") if(prob(src.deflect_chance)) diff --git a/code/game/objects/effects/aliens.dm b/code/game/objects/effects/aliens.dm index 0a8c349bba0..3a12acdd6ca 100644 --- a/code/game/objects/effects/aliens.dm +++ b/code/game/objects/effects/aliens.dm @@ -111,7 +111,7 @@ /obj/structure/alien/resin/attack_alien(mob/user) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if(islarva(user)) return user.visible_message("[user] claws at the resin!") @@ -123,7 +123,7 @@ /obj/structure/alien/resin/attackby(obj/item/I, mob/user) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) health -= I.force playsound(loc, 'sound/effects/attackblob.ogg', 100, 1) healthcheck() @@ -198,7 +198,7 @@ /obj/structure/alien/weeds/attackby(obj/item/I, mob/user) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if(I.attack_verb.len) visible_message("[src] has been [pick(I.attack_verb)] with [I] by [user].") else diff --git a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm index e3ff42f2913..b285494aeaf 100644 --- a/code/game/objects/structures/crates_lockers/closets/fireaxe.dm +++ b/code/game/objects/structures/crates_lockers/closets/fireaxe.dm @@ -31,7 +31,7 @@ update_icon() return else if(istype(O, /obj/item/weapon)) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) var/obj/item/weapon/W = O if(src.smashed || src.localopened) if(localopened) diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm index a7752c65025..e0c403006d5 100644 --- a/code/game/objects/structures/displaycase.dm +++ b/code/game/objects/structures/displaycase.dm @@ -66,7 +66,7 @@ /obj/structure/displaycase/attackby(obj/item/weapon/W as obj, mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) src.health -= W.force src.healthcheck() ..() @@ -76,7 +76,7 @@ return src.attack_hand(user) /obj/structure/displaycase/attack_hand(mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if (src.destroyed && src.occupied) new /obj/item/weapon/gun/energy/laser/captain( src.loc ) user << "\b You deactivate the hover field built into the case." diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index b698c96d705..a526f7ec191 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -26,7 +26,7 @@ attack_hand(user) /obj/structure/grille/attack_hand(mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.visible_message("[user] hits [src].", \ "You hit [src].", \ @@ -42,7 +42,7 @@ /obj/structure/grille/attack_alien(mob/user as mob) if(istype(user, /mob/living/carbon/alien/larva)) return - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) user.visible_message("[user] mangles [src].", \ "You mangle [src].", \ @@ -54,7 +54,7 @@ return /obj/structure/grille/attack_slime(mob/living/carbon/slime/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if(!user.is_adult) return playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) @@ -67,7 +67,7 @@ return /obj/structure/grille/attack_animal(var/mob/living/simple_animal/M as mob) - M.changeNext_move(8) + M.changeNext_move(CLICK_CD_MELEE) if(M.melee_damage_upper == 0) return playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) @@ -100,7 +100,7 @@ return /obj/structure/grille/attackby(obj/item/weapon/W as obj, mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) add_fingerprint(user) if(istype(W, /obj/item/weapon/wirecutters)) if(!shock(user, 100)) diff --git a/code/game/objects/structures/lamarr_cage.dm b/code/game/objects/structures/lamarr_cage.dm index 28e4bf516de..94e4b829939 100644 --- a/code/game/objects/structures/lamarr_cage.dm +++ b/code/game/objects/structures/lamarr_cage.dm @@ -61,7 +61,7 @@ /obj/structure/lamarr/attackby(obj/item/weapon/W as obj, mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) src.health -= W.force src.healthcheck() ..() @@ -71,7 +71,7 @@ return src.attack_hand(user) /obj/structure/lamarr/attack_hand(mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if (src.destroyed) return else diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm index 817a9a24e24..a3fb7fc1776 100644 --- a/code/game/objects/structures/window.dm +++ b/code/game/objects/structures/window.dm @@ -109,7 +109,7 @@ R.add_fingerprint(user) qdel(src) else - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) user.visible_message("[user] knocks on [src].") add_fingerprint(user) playsound(loc, 'sound/effects/Glasshit.ogg', 50, 1) @@ -122,7 +122,7 @@ /obj/structure/window/proc/attack_generic(mob/user as mob, damage = 0) //used by attack_alien, attack_animal, and attack_slime if(!can_be_reached(user)) return - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) health -= damage if(health <= 0) user.visible_message("[user] smashes through [src]!") @@ -191,7 +191,7 @@ qdel(src) else if(I.damtype == BRUTE || I.damtype == BURN) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) hit(I.force) if(health <= 7) anchored = 0 diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index a9c26d6f3a4..540c9d2d88f 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -93,7 +93,7 @@ dismantle_wall() /turf/simulated/wall/attack_paw(mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if ((HULK in user.mutations)) if (prob(hardness)) playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) @@ -109,7 +109,7 @@ return src.attack_hand(user) /turf/simulated/wall/attack_animal(var/mob/living/simple_animal/M) - M.changeNext_move(8) + M.changeNext_move(CLICK_CD_MELEE) if(M.environment_smash >= 2) if(istype(src, /turf/simulated/wall/r_wall)) if(M.environment_smash == 3) @@ -125,7 +125,7 @@ return /turf/simulated/wall/attack_hand(mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if (HULK in user.mutations) if (prob(hardness)) playsound(src, 'sound/effects/meteorimpact.ogg', 100, 1) @@ -145,7 +145,7 @@ return /turf/simulated/wall/attackby(obj/item/weapon/W as obj, mob/user as mob) - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey") user << "You don't have the dexterity to do this!" return diff --git a/code/modules/events/spacevine.dm b/code/modules/events/spacevine.dm index db8ccd61136..6bf3499c193 100644 --- a/code/modules/events/spacevine.dm +++ b/code/modules/events/spacevine.dm @@ -248,7 +248,7 @@ /obj/effect/spacevine/attackby(obj/item/weapon/W as obj, mob/user as mob) if (!W || !user || !W.type) return - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) var/override = 0 diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 61b6bf36934..ee89070f77a 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -398,7 +398,7 @@ if(istype(O, /obj/item/weapon/kitchenknife) || istype(O, /obj/item/weapon/butch)) harvest() else - user.changeNext_move(8) + user.changeNext_move(CLICK_CD_MELEE) if(O.force) if(O.force >= force_threshold) var/damage = O.force diff --git a/code/modules/projectiles/firing.dm b/code/modules/projectiles/firing.dm index 4e056555929..cbad4b8404f 100644 --- a/code/modules/projectiles/firing.dm +++ b/code/modules/projectiles/firing.dm @@ -10,7 +10,7 @@ return 0 if(i > 1) newshot() - user.changeNext_move(4) + user.changeNext_move(CLICK_CD_RANGE) update_icon() return 1 diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm index 03d610af63f..92109b168f7 100644 --- a/code/modules/reagents/reagent_containers/spray.dm +++ b/code/modules/reagents/reagent_containers/spray.dm @@ -57,7 +57,7 @@ qdel(D) playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) - user.changeNext_move(4) + user.changeNext_move(CLICK_CD_RANGE) if(reagents.has_reagent("sacid")) message_admins("[key_name_admin(user)] fired sulphuric acid from \a [src].") @@ -217,7 +217,7 @@ qdel(D) playsound(src.loc, 'sound/effects/spray2.ogg', 50, 1, -6) - user.changeNext_move(4) + user.changeNext_move(CLICK_CD_RANGE) if(reagents.has_reagent("sacid")) message_admins("[key_name_admin(user)] fired sulphuric acid from a chem sprayer.") From 2283b303ac916b1f5cba646c419083e52f4d1a54 Mon Sep 17 00:00:00 2001 From: Incoming Date: Mon, 4 Aug 2014 17:51:33 -0400 Subject: [PATCH 34/36] Fixes #4335 Readds the 1/12 chance of stumbling out the bolt of change fully human with no mutantrace. It must have gotten lost during the mutantrace datumizing --- code/modules/projectiles/projectile/magic.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index d5258e9c1d5..d5db0e549cf 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -198,9 +198,9 @@ proc/wabbajack(mob/living/M) var/mob/living/carbon/human/H = new_mob ready_dna(H) - if(H.dna) + if(H.dna && prob(50)) var/list/randspecies = list() - for(var/t in typesof(/datum/species)) // returns a bunch of types + for(var/t in typesof(/datum/species) - /datum/species) // returns a bunch of types var/datum/species/temp = new t() randspecies += "[temp.type]" var/datum/species/new_species = pick(randspecies) From 4e91b2b655bcd85d1a8ae20683ee621bd8ed6157 Mon Sep 17 00:00:00 2001 From: Incoming Date: Tue, 5 Aug 2014 14:11:45 -0400 Subject: [PATCH 35/36] Simplifies the species picking Adds an update_icons() to minimize the effects of #4252, but it's still a problem --- code/modules/projectiles/projectile/magic.dm | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index d5db0e549cf..efc4d0d1800 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -199,12 +199,9 @@ proc/wabbajack(mob/living/M) var/mob/living/carbon/human/H = new_mob ready_dna(H) if(H.dna && prob(50)) - var/list/randspecies = list() - for(var/t in typesof(/datum/species) - /datum/species) // returns a bunch of types - var/datum/species/temp = new t() - randspecies += "[temp.type]" - var/datum/species/new_species = pick(randspecies) + var/datum/species/new_species = pick(typesof(/datum/species) - /datum/species) H.dna.species = new new_species() + H.update_icons() else return From 879f5d7c0ecb4e49786a06fc5cbf0bc697f413f4 Mon Sep 17 00:00:00 2001 From: Incoming Date: Tue, 5 Aug 2014 19:51:08 -0400 Subject: [PATCH 36/36] Changed it! --- code/modules/projectiles/projectile/magic.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm index efc4d0d1800..cdab219a80d 100644 --- a/code/modules/projectiles/projectile/magic.dm +++ b/code/modules/projectiles/projectile/magic.dm @@ -199,7 +199,7 @@ proc/wabbajack(mob/living/M) var/mob/living/carbon/human/H = new_mob ready_dna(H) if(H.dna && prob(50)) - var/datum/species/new_species = pick(typesof(/datum/species) - /datum/species) + var/new_species = pick(typesof(/datum/species) - /datum/species) H.dna.species = new new_species() H.update_icons() else
    Medical Record
    Name:[active1.fields["name"]]
    ID:[active1.fields["id"]]
    Sex:e[active1.fields["sex"]]
    Age:e[active1.fields["age"]]
    Fingerprint:e[active1.fields["fingerprint"]]
    Physical Status:e[active1.fields["p_stat"]]
    Mental Status:e[active1.fields["m_stat"]]
    Sex: [active1.fields["sex"]] 
    Age: [active1.fields["age"]] 
    Fingerprint: [active1.fields["fingerprint"]] 
    Physical Status: [active1.fields["p_stat"]] 
    Mental Status: [active1.fields["m_stat"]] 
    General Record Lost!

    Medical Data
    Blood Type:e[active2.fields["blood_type"]]
    DNA:e[active2.fields["b_dna"]]

    Minor Disabilities:

    e[active2.fields["mi_dis"]]
    Details:e[active2.fields["mi_dis_d"]]

    Major Disabilities:

    e[active2.fields["ma_dis"]]
    Details:e[active2.fields["ma_dis_d"]]

    Allergies:

    e[active2.fields["alg"]]
    Details:e[active2.fields["alg_d"]]

    Current Diseases:

    e[active2.fields["cdi"]]
    Details:e[active2.fields["cdi_d"]]

    Important Notes:

    e[active2.fields["notes"]]
    Blood Type: [active2.fields["blood_type"]] 
    DNA: [active2.fields["b_dna"]] 

    Minor Disabilities:

     [active2.fields["mi_dis"]] 
    Details: [active2.fields["mi_dis_d"]] 

    Major Disabilities:

     [active2.fields["ma_dis"]] 
    Details: [active2.fields["ma_dis_d"]] 

    Allergies:

     [active2.fields["alg"]] 
    Details: [active2.fields["alg_d"]] 

    Current Diseases:

     [active2.fields["cdi"]] 
    Details: [active2.fields["cdi_d"]] 

    Important Notes:

     [active2.fields["notes"]] 

    Comments/Log