From e4bce0bb141dd1f0fabb3f328ce6555e5c304862 Mon Sep 17 00:00:00 2001 From: Pete Goodfellow Date: Mon, 15 Apr 2013 15:40:33 +0100 Subject: [PATCH 01/62] Replaced most reagent initialisations with the helper proc create_reagents(). --- code/game/machinery/kitchen/microwave.dm | 20 ++++++++---------- code/game/mecha/equipment/tools/tools.dm | 3 +-- code/game/objects/effects/effect_system.dm | 4 +--- code/game/objects/items/devices/scanners.dm | 4 +--- code/game/objects/items/toys.dm | 10 +++------ .../objects/items/weapons/extinguisher.dm | 6 ++---- .../items/weapons/grenades/chem_grenade.dm | 4 +--- .../objects/items/weapons/implants/implant.dm | 4 +--- code/game/objects/items/weapons/mop.dm | 4 +--- code/game/objects/items/weapons/tools.dm | 6 ++---- code/game/objects/structures/janicart.dm | 9 ++------ code/game/objects/structures/mop_bucket.dm | 4 +--- code/modules/hydroponics/biogenerator.dm | 4 +--- code/modules/hydroponics/growninedible.dm | 4 +--- .../carbon/alien/humanoid/caste/drone.dm | 4 +--- .../carbon/alien/humanoid/caste/hunter.dm | 4 +--- .../carbon/alien/humanoid/caste/sentinel.dm | 4 +--- .../living/carbon/alien/humanoid/humanoid.dm | 4 +--- .../mob/living/carbon/alien/humanoid/queen.dm | 4 +--- .../mob/living/carbon/alien/larva/larva.dm | 4 +--- code/modules/mob/living/carbon/brain/brain.dm | 4 +--- code/modules/mob/living/carbon/human/human.dm | 4 +--- .../mob/living/carbon/metroid/metroid.dm | 12 +++-------- .../mob/living/carbon/monkey/monkey.dm | 4 +--- code/modules/paperwork/pen.dm | 16 ++++++-------- code/modules/reagents/Chemistry-Holder.dm | 21 ++++--------------- code/modules/reagents/Chemistry-Machinery.dm | 4 +--- code/modules/reagents/reagent_containers.dm | 4 +--- .../reagent_containers/glass/bottle.dm | 10 +++------ code/modules/reagents/reagent_dispenser.dm | 4 +--- code/modules/reagents/syringe_gun.dm | 4 +--- 31 files changed, 56 insertions(+), 141 deletions(-) diff --git a/code/game/machinery/kitchen/microwave.dm b/code/game/machinery/kitchen/microwave.dm index e78f81548ee..3dd751a1911 100644 --- a/code/game/machinery/kitchen/microwave.dm +++ b/code/game/machinery/kitchen/microwave.dm @@ -26,22 +26,20 @@ ********************/ /obj/machinery/microwave/New() - //..() //do not need this - reagents = new/datum/reagents(100) - reagents.my_atom = src - if (!available_recipes) + create_reagents(100) + if(!available_recipes) available_recipes = new - for (var/type in (typesof(/datum/recipe)-/datum/recipe)) - available_recipes+= new type + for(var/type in (typesof(/datum/recipe) - /datum/recipe)) + available_recipes += new type acceptable_items = new acceptable_reagents = new - for (var/datum/recipe/recipe in available_recipes) - for (var/item in recipe.items) + for(var/datum/recipe/recipe in available_recipes) + for(var/item in recipe.items) acceptable_items |= item - for (var/reagent in recipe.reagents) + for(var/reagent in recipe.reagents) acceptable_reagents |= reagent - if (recipe.items) - max_n_of_items = max(max_n_of_items,recipe.items.len) + if(recipe.items) + max_n_of_items = max(max_n_of_items, recipe.items.len) /******************* * Item Adding diff --git a/code/game/mecha/equipment/tools/tools.dm b/code/game/mecha/equipment/tools/tools.dm index ddef7f9a516..dccc0c2c84d 100644 --- a/code/game/mecha/equipment/tools/tools.dm +++ b/code/game/mecha/equipment/tools/tools.dm @@ -185,8 +185,7 @@ range = MELEE|RANGED New() - reagents = new/datum/reagents(200) - reagents.my_atom = src + create_reagents(200) reagents.add_reagent("water", 200) ..() return diff --git a/code/game/objects/effects/effect_system.dm b/code/game/objects/effects/effect_system.dm index fc066e87eaf..2d0ed4781c2 100644 --- a/code/game/objects/effects/effect_system.dm +++ b/code/game/objects/effects/effect_system.dm @@ -447,9 +447,7 @@ steam.start() -- spawns the effect /obj/effect/effect/chem_smoke/New() ..() - var/datum/reagents/R = new/datum/reagents(500) - reagents = R - R.my_atom = src + create_reagents(500) spawn (200+rand(10,30)) delete() diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm index cf858462bb4..e753d4f51bc 100644 --- a/code/game/objects/items/devices/scanners.dm +++ b/code/game/objects/items/devices/scanners.dm @@ -233,9 +233,7 @@ MASS SPECTROMETER /obj/item/device/mass_spectrometer/New() ..() - var/datum/reagents/R = new/datum/reagents(5) - reagents = R - R.my_atom = src + create_reagents(5) /obj/item/device/mass_spectrometer/on_reagent_change() if(reagents.total_volume) diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm index 7deaf762d77..d3ba809341c 100644 --- a/code/game/objects/items/toys.dm +++ b/code/game/objects/items/toys.dm @@ -30,9 +30,7 @@ item_state = "balloon-empty" /obj/item/toy/balloon/New() - var/datum/reagents/R = new/datum/reagents(10) - reagents = R - R.my_atom = src + create_reagents(10) /obj/item/toy/balloon/attack(mob/living/carbon/human/M as mob, mob/user as mob) return @@ -419,10 +417,8 @@ flags = USEDELAY /obj/item/toy/waterflower/New() - var/datum/reagents/R = new/datum/reagents(10) - reagents = R - R.my_atom = src - R.add_reagent("water", 10) + create_reagents(10) + reagents.add_reagent("water", 10) /obj/item/toy/waterflower/attack(mob/living/carbon/human/M as mob, mob/user as mob) return diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index d1e6212803f..826ea015536 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -33,10 +33,8 @@ sprite_name = "miniFE" /obj/item/weapon/extinguisher/New() - var/datum/reagents/R = new/datum/reagents(max_water) - reagents = R - R.my_atom = src - R.add_reagent("water", max_water) + create_reagents(max_water) + reagents.add_reagent("water", max_water) /obj/item/weapon/extinguisher/examine() set src in usr diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm index 600358a97cb..9146f5a142a 100644 --- a/code/game/objects/items/weapons/grenades/chem_grenade.dm +++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm @@ -14,9 +14,7 @@ var/obj/item/device/assembly/trigger = null // Grenade assemblies by Sayu New() - var/datum/reagents/R = new/datum/reagents(1000) - reagents = R - R.my_atom = src + create_reagents(1000) verbs -= /obj/item/weapon/grenade/chem_grenade/verb/rotate // only used for infrared beam grenades // When constructing a grenade in code rather than by hand diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm index c02ddd09bf8..0066bd65bce 100644 --- a/code/game/objects/items/weapons/implants/implant.dm +++ b/code/game/objects/items/weapons/implants/implant.dm @@ -100,9 +100,7 @@ /obj/item/weapon/implant/chem/New() ..() - var/datum/reagents/R = new/datum/reagents(50) - reagents = R - R.my_atom = src + create_reagents(50) /obj/item/weapon/implant/chem/trigger(emote, mob/source) if(emote == "deathgasp") diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index 2caaf97c021..d98f79aa097 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -15,9 +15,7 @@ /obj/item/weapon/mop/New() - var/datum/reagents/R = new/datum/reagents(5) - reagents = R - R.my_atom = src + create_reagents(5) obj/item/weapon/mop/proc/clean(turf/simulated/A) diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index a72a899ef8e..308f4954016 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -152,10 +152,8 @@ /obj/item/weapon/weldingtool/New() // var/random_fuel = min(rand(10,20),max_fuel) - var/datum/reagents/R = new/datum/reagents(max_fuel) - reagents = R - R.my_atom = src - R.add_reagent("fuel", max_fuel) + create_reagents(max_fuel) + reagents.add_reagent("fuel", max_fuel) return diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 330f5d5f57d..9a28f232e57 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -16,9 +16,7 @@ /obj/structure/janitorialcart/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) /obj/structure/janitorialcart/examine() @@ -174,10 +172,7 @@ /obj/structure/stool/bed/chair/janicart/New() handle_rotation() - - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) /obj/structure/stool/bed/chair/janicart/examine() diff --git a/code/game/objects/structures/mop_bucket.dm b/code/game/objects/structures/mop_bucket.dm index bceee3b23f1..b43607fcb07 100644 --- a/code/game/objects/structures/mop_bucket.dm +++ b/code/game/objects/structures/mop_bucket.dm @@ -10,9 +10,7 @@ /obj/structure/mopbucket/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) /obj/structure/mopbucket/examine() diff --git a/code/modules/hydroponics/biogenerator.dm b/code/modules/hydroponics/biogenerator.dm index c75cda5dba5..b8ddadf09e4 100644 --- a/code/modules/hydroponics/biogenerator.dm +++ b/code/modules/hydroponics/biogenerator.dm @@ -14,9 +14,7 @@ New() ..() - var/datum/reagents/R = new/datum/reagents(1000) - reagents = R - R.my_atom = src + create_reagents(1000) beaker = new /obj/item/weapon/reagent_containers/glass/beaker/large(src) on_reagent_change() //When the reagents change, change the icon as well. diff --git a/code/modules/hydroponics/growninedible.dm b/code/modules/hydroponics/growninedible.dm index 6a0b5e6a520..c24e02fef31 100644 --- a/code/modules/hydroponics/growninedible.dm +++ b/code/modules/hydroponics/growninedible.dm @@ -17,9 +17,7 @@ var/potency = 1 var/plant_type = 0 New() - var/datum/reagents/R = new/datum/reagents(50) - reagents = R - R.my_atom = src + create_reagents(50) /obj/item/weapon/grown/proc/changePotency(newValue) //-QualityVan potency = newValue diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm index e8cf1555e27..db7e7f2900b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/drone.dm @@ -7,9 +7,7 @@ plasma_rate = 15 /mob/living/carbon/alien/humanoid/drone/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) if(src.name == "alien drone") src.name = text("alien drone ([rand(1, 1000)])") src.real_name = src.name diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 3a15f620b20..428dc0d0b0b 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -9,9 +9,7 @@ plasma_rate = 5 /mob/living/carbon/alien/humanoid/hunter/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) if(name == "alien hunter") name = text("alien hunter ([rand(1, 1000)])") real_name = name diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm index 226824c6ab4..d40108475c3 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/sentinel.dm @@ -9,9 +9,7 @@ plasma_rate = 10 /mob/living/carbon/alien/humanoid/sentinel/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) if(name == "alien sentinel") name = text("alien sentinel ([rand(1, 1000)])") real_name = name diff --git a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm index b2f7c69af66..b12ab4cb83d 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/humanoid.dm @@ -11,9 +11,7 @@ //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/humanoid/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(1000) if(name == "alien") name = text("alien ([rand(1, 1000)])") real_name = name diff --git a/code/modules/mob/living/carbon/alien/humanoid/queen.dm b/code/modules/mob/living/carbon/alien/humanoid/queen.dm index 1b98392b814..95cf91edb16 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/queen.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/queen.dm @@ -10,9 +10,7 @@ /mob/living/carbon/alien/humanoid/queen/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) //there should only be one queen for(var/mob/living/carbon/alien/humanoid/queen/Q in living_mob_list) diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index 0cb0f850d81..b20670e8954 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -15,9 +15,7 @@ //This is fine right now, if we're adding organ specific damage this needs to be updated /mob/living/carbon/alien/larva/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) if(name == "alien larva") name = "alien larva ([rand(1, 1000)])" real_name = name diff --git a/code/modules/mob/living/carbon/brain/brain.dm b/code/modules/mob/living/carbon/brain/brain.dm index 0de81585a37..d837c80ebb1 100644 --- a/code/modules/mob/living/carbon/brain/brain.dm +++ b/code/modules/mob/living/carbon/brain/brain.dm @@ -7,9 +7,7 @@ var/alert = null New() - var/datum/reagents/R = new/datum/reagents(1000) - reagents = R - R.my_atom = src + create_reagents(1000) ..() Del() diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 9996989e3d1..edc87eb26a6 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -13,9 +13,7 @@ /mob/living/carbon/human/New() - var/datum/reagents/R = new/datum/reagents(1000) - reagents = R - R.my_atom = src + create_reagents(1000) if(!dna) dna = new /datum/dna(null) diff --git a/code/modules/mob/living/carbon/metroid/metroid.dm b/code/modules/mob/living/carbon/metroid/metroid.dm index 23837559ef2..24f565b9972 100644 --- a/code/modules/mob/living/carbon/metroid/metroid.dm +++ b/code/modules/mob/living/carbon/metroid/metroid.dm @@ -62,9 +62,7 @@ /mob/living/carbon/slime/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) name = text("[colour] baby slime ([rand(1, 1000)])") real_name = name spawn (1) @@ -747,9 +745,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 /obj/item/slime_extract/New() ..() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) /obj/item/slime_extract/grey name = "grey slime extract" @@ -1107,9 +1103,7 @@ mob/living/carbon/slime/var/temperature_resistance = T0C+75 /obj/item/slime_core/New() ..() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) POWERFLAG = rand(1,10) Uses = rand(7, 25) //flags |= NOREACT diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 778941187d7..752f1fa4ddf 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -12,9 +12,7 @@ var/obj/item/weapon/card/id/wear_id = null // Fix for station bounced radios -- Skie /mob/living/carbon/monkey/New() - var/datum/reagents/R = new/datum/reagents(1000) - reagents = R - R.my_atom = src + create_reagents(1000) internal_organs += new /obj/item/organ/appendix internal_organs += new /obj/item/organ/heart diff --git a/code/modules/paperwork/pen.dm b/code/modules/paperwork/pen.dm index 49a6dbd9635..2ab3c71d57a 100644 --- a/code/modules/paperwork/pen.dm +++ b/code/modules/paperwork/pen.dm @@ -63,10 +63,8 @@ /obj/item/weapon/pen/sleepypen/New() - var/datum/reagents/R = new /datum/reagents(30) //Used to be 300 - reagents = R - R.my_atom = src - R.add_reagent("chloralhydrate", 22) //Used to be 100 sleep toxin //30 Chloral seems to be fatal, reducing it to 22. + create_reagents(30) + reagents.add_reagent("chloralhydrate", 22) //Used to be 100 sleep toxin //30 Chloral seems to be fatal, reducing it to 22. ..() @@ -96,10 +94,8 @@ /obj/item/weapon/pen/paralysis/New() - var/datum/reagents/R = new/datum/reagents(50) - reagents = R - R.my_atom = src - R.add_reagent("zombiepowder", 10) - R.add_reagent("impedrezene", 25) - R.add_reagent("cryptobiolin", 15) + create_reagents(50) + reagents.add_reagent("zombiepowder", 10) + reagents.add_reagent("impedrezene", 25) + reagents.add_reagent("cryptobiolin", 15) ..() \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index 6e1e31abaa3..2f75251a0ea 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -248,17 +248,11 @@ datum if(!C.required_other) matching_other = 1 - else - /*if(istype(my_atom, /obj/item/slime_core)) - var/obj/item/slime_core/M = my_atom + else if(istype(my_atom, /obj/item/slime_extract)) + var/obj/item/slime_extract/M = my_atom - if(M.POWERFLAG == C.required_other && M.Uses > 0) // added a limit to slime cores -- Muskets requested this - matching_other = 1*/ - if(istype(my_atom, /obj/item/slime_extract)) - var/obj/item/slime_extract/M = my_atom - - if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this - matching_other = 1 + if(M.Uses > 0) // added a limit to slime cores -- Muskets requested this + matching_other = 1 @@ -278,13 +272,6 @@ datum for(var/mob/M in seen) M << "\blue \icon[my_atom] The solution begins to bubble." - /* if(istype(my_atom, /obj/item/slime_core)) - var/obj/item/slime_core/ME = my_atom - ME.Uses-- - if(ME.Uses <= 0) // give the notification that the slime core is dead - for(var/mob/M in viewers(4, get_turf(my_atom)) ) - M << "\blue \icon[my_atom] The innards begin to boil!" - */ if(istype(my_atom, /obj/item/slime_extract)) var/obj/item/slime_extract/ME2 = my_atom ME2.Uses-- diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm index 41c171fe4e0..b2776b91fe4 100644 --- a/code/modules/reagents/Chemistry-Machinery.dm +++ b/code/modules/reagents/Chemistry-Machinery.dm @@ -188,9 +188,7 @@ var/useramount = 30 // Last used amount /obj/machinery/chem_master/New() - var/datum/reagents/R = new/datum/reagents(100) - reagents = R - R.my_atom = src + create_reagents(100) /obj/machinery/chem_master/ex_act(severity) switch(severity) diff --git a/code/modules/reagents/reagent_containers.dm b/code/modules/reagents/reagent_containers.dm index 0828e545fcd..6f55530469d 100644 --- a/code/modules/reagents/reagent_containers.dm +++ b/code/modules/reagents/reagent_containers.dm @@ -20,9 +20,7 @@ ..() if (!possible_transfer_amounts) src.verbs -= /obj/item/weapon/reagent_containers/verb/set_APTFT - var/datum/reagents/R = new/datum/reagents(volume) - reagents = R - R.my_atom = src + create_reagents(volume) /obj/item/weapon/reagent_containers/attack_self(mob/user as mob) return diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm index 0b03e21d95c..d197d3ca2eb 100644 --- a/code/modules/reagents/reagent_containers/glass/bottle.dm +++ b/code/modules/reagents/reagent_containers/glass/bottle.dm @@ -204,12 +204,10 @@ amount_per_transfer_from_this = 5 New() - var/datum/reagents/R = new/datum/reagents(20) - reagents = R - R.my_atom = src + ..() var/datum/disease/F = new /datum/disease/gbs var/list/data = list("virus"= F) - R.add_reagent("blood", 20, data) + reagents.add_reagent("blood", 20, data) /obj/item/weapon/reagent_containers/glass/bottle/fake_gbs name = "GBS culture bottle" @@ -230,9 +228,7 @@ amount_per_transfer_from_this = 5 New() - var/datum/reagents/R = new/datum/reagents(20) - reagents = R - R.my_atom = src + ..() var/datum/disease/F = new /datum/disease/rhumba_beat var/list/data = list("virus"= F) R.add_reagent("blood", 20, data) diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm index bf0c6d90a6d..26cfcb77b4c 100644 --- a/code/modules/reagents/reagent_dispenser.dm +++ b/code/modules/reagents/reagent_dispenser.dm @@ -17,9 +17,7 @@ return New() - var/datum/reagents/R = new/datum/reagents(1000) - reagents = R - R.my_atom = src + create_reagents(1000) if (!possible_transfer_amounts) src.verbs -= /obj/structure/reagent_dispensers/verb/set_APTFT ..() diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm index 915e1899ffc..e64f5132fcc 100644 --- a/code/modules/reagents/syringe_gun.dm +++ b/code/modules/reagents/syringe_gun.dm @@ -117,6 +117,4 @@ density = 0 New() - var/datum/reagents/R = new/datum/reagents(15) - reagents = R - R.my_atom = src \ No newline at end of file + create_reagents(15) \ No newline at end of file From e71c96e93a62a13513f2c708545b24a4fe398290 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Tue, 30 Apr 2013 09:22:59 -0400 Subject: [PATCH 02/62] Removed the barely implemented sleeping and resting states of silicons (doesn't make sense anyway and probably wasn't intentionally existent). Also cleaned up powersink code to enforce its mode and all variables affected --- code/game/objects/items/devices/powersink.dm | 186 ++++++++++-------- code/modules/mob/living/silicon/login.dm | 4 + code/modules/mob/living/silicon/robot/life.dm | 8 +- 3 files changed, 106 insertions(+), 92 deletions(-) diff --git a/code/game/objects/items/devices/powersink.dm b/code/game/objects/items/devices/powersink.dm index e156a258c78..325372af3d8 100644 --- a/code/game/objects/items/devices/powersink.dm +++ b/code/game/objects/items/devices/powersink.dm @@ -18,103 +18,119 @@ var/max_power = 1e8 // maximum power that can be drained before exploding var/mode = 0 // 0 = off, 1=clamped (off), 2=operating + var/const/DISCONNECTED = 0 + var/const/CLAMPED_OFF = 1 + var/const/OPERATING = 2 var/obj/structure/cable/attached // the attached cable - attackby(var/obj/item/I, var/mob/user) - if(istype(I, /obj/item/weapon/screwdriver)) - if(mode == 0) - var/turf/T = loc - if(isturf(T) && !T.intact) - attached = locate() in T - if(!attached) - user << "No exposed cable here to attach to." - return - else - anchored = 1 - mode = 1 - user << "You attach the device to the cable." - for(var/mob/M in viewers(user)) - if(M == user) continue - M << "[user] attaches the power sink to the cable." - return - else - user << "Device must be placed over an exposed cable to attach to it." - return - else - if (mode == 2) - processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite - anchored = 0 - mode = 0 - user << "You detach the device from the cable." - for(var/mob/M in viewers(user)) - if(M == user) continue - M << "[user] detaches the power sink from the cable." - SetLuminosity(0) - icon_state = "powersink0" +/obj/item/device/powersink/update_icon() + icon_state = "powersink[mode == OPERATING]" +/obj/item/device/powersink/proc/set_mode(value) + if(value == mode) + return + switch(value) + if(DISCONNECTED) + attached = null + if(mode == OPERATING) + processing_objects.Remove(src) + anchored = 0 + + if(CLAMPED_OFF) + if(!attached) return + if(mode == OPERATING) + processing_objects.Remove(src) + anchored = 1 + + if(OPERATING) + if(!attached) + return + processing_objects.Add(src) + anchored = 1 + + mode = value + update_icon() + SetLuminosity(0) + +/obj/item/device/powersink/attackby(var/obj/item/I, var/mob/user) + if(istype(I, /obj/item/weapon/screwdriver)) + if(mode == DISCONNECTED) + var/turf/T = loc + if(isturf(T) && !T.intact) + attached = locate() in T + if(!attached) + user << "No exposed cable here to attach to." + else + set_mode(CLAMPED_OFF) + user.visible_message( \ + "[user] attaches \the [src] to the cable.", \ + "You attach \the [src] to the cable.", + "You hear some wires being connected to something.") + else + user << "Device must be placed over an exposed cable to attach to it." else + set_mode(DISCONNECTED) + user.visible_message( \ + "[user] detaches \the [src] from the cable.", \ + "You detach \the [src] from the cable.", + "You hear some wires being disconnected from something.") + else + ..() + +/obj/item/device/powersink/attack_paw() + return + +/obj/item/device/powersink/attack_ai() + return + +/obj/item/device/powersink/attack_hand(var/mob/user) + switch(mode) + if(DISCONNECTED) ..() + if(CLAMPED_OFF) + user.visible_message( \ + "[user] activates \the [src]!", \ + "You activate \the [src]!", + "You hear a click.") + set_mode(OPERATING) + if(OPERATING) + user.visible_message( \ + "[user] deactivates \the [src]!", \ + "You deactivate \the [src]!", + "You hear a click.") + set_mode(CLAMPED_OFF) - attack_paw() - return +/obj/item/device/powersink/process() + if(!attached) + set_mode(DISCONNECTED) - attack_ai() - return + var/datum/powernet/PN = attached.get_powernet() + if(PN) + SetLuminosity(5) - attack_hand(var/mob/user) - switch(mode) - if(0) - ..() + // found a powernet, so drain up to max power from it - if(1) - user << "You activate the device!" - for(var/mob/M in viewers(user)) - if(M == user) continue - M << "[user] activates the power sink!" - mode = 2 - icon_state = "powersink1" - processing_objects.Add(src) + var/drained = min ( drain_rate, PN.avail ) + PN.newload += drained + power_drained += drained - if(2) //This switch option wasn't originally included. It exists now. --NeoFite - user << "You deactivate the device!" - for(var/mob/M in viewers(user)) - if(M == user) continue - M << "[user] deactivates the power sink!" - mode = 1 - SetLuminosity(0) - icon_state = "powersink0" - processing_objects.Remove(src) + // if tried to drain more than available on powernet + // now look for APCs and drain their cells + if(drained < drain_rate) + for(var/obj/machinery/power/terminal/T in PN.nodes) + if(istype(T.master, /obj/machinery/power/apc)) + var/obj/machinery/power/apc/A = T.master + if(A.operating && A.cell) + A.cell.charge = max(0, A.cell.charge - 50) + power_drained += 50 - process() - if(attached) - var/datum/powernet/PN = attached.get_powernet() - if(PN) - SetLuminosity(5) - - // found a powernet, so drain up to max power from it - - var/drained = min ( drain_rate, PN.avail ) - PN.newload += drained - power_drained += drained - - // if tried to drain more than available on powernet - // now look for APCs and drain their cells - if(drained < drain_rate) - for(var/obj/machinery/power/terminal/T in PN.nodes) - if(istype(T.master, /obj/machinery/power/apc)) - var/obj/machinery/power/apc/A = T.master - if(A.operating && A.cell) - A.cell.charge = max(0, A.cell.charge - 50) - power_drained += 50 - - - if(power_drained > max_power * 0.95) - playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) - if(power_drained >= max_power) - processing_objects.Remove(src) - explosion(src.loc, 3,6,9,12) - del(src) + if(power_drained > max_power * 0.95) + playsound(src, 'sound/effects/screech.ogg', 100, 1, 1) + if(power_drained >= max_power) + processing_objects.Remove(src) + explosion(src.loc, 3,6,9,12) + del(src) diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index 32e0c8d3460..719ee0728ea 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -2,4 +2,8 @@ if(mind && ticker && ticker.mode) ticker.mode.remove_cultist(mind, 1) ticker.mode.remove_revolutionary(mind, 1) + + verbs -= /mob/living/verb/lay_down + verbs -= /mob/living/verb/mob_sleep + ..() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index e25a987aadb..e54265107cf 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -30,6 +30,7 @@ SetParalysis(min(paralysis, 30)) // SetWeakened(min(weakened, 20)) sleeping = 0 + resting = 0 adjustBruteLoss(0) adjustToxLoss(0) adjustOxyLoss(0) @@ -71,13 +72,6 @@ if(getOxyLoss() > 50) Paralyse(3) - if(src.sleeping) - Paralyse(3) - src.sleeping-- - - if(src.resting) - Weaken(5) - if(health < config.health_threshold_dead && src.stat != 2) //die only once death() From 1f289e685c85366696e7a988893e64b893f1062c Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Tue, 30 Apr 2013 09:47:36 -0400 Subject: [PATCH 03/62] Fixes talisman items not fully removing selves when used --- code/game/gamemodes/cult/talisman.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/gamemodes/cult/talisman.dm b/code/game/gamemodes/cult/talisman.dm index a319e83421e..ee42ee6d391 100644 --- a/code/game/gamemodes/cult/talisman.dm +++ b/code/game/gamemodes/cult/talisman.dm @@ -41,6 +41,7 @@ user.take_organ_damage(5, 0) if(src && src.imbue!="supply" && src.imbue!="runestun") if(delete) + user.drop_item(src) del(src) return else @@ -53,6 +54,7 @@ if(imbue == "runestun") user.take_organ_damage(5, 0) call(/obj/effect/rune/proc/runestun)(T) + user.drop_item(src) del(src) else ..() ///If its some other talisman, use the generic attack code, is this supposed to work this way? From d06848ad97b60e481631803afd59f6dffe20c645 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Tue, 30 Apr 2013 21:32:22 -0600 Subject: [PATCH 04/62] Shards are dangerous, Take Two! -Shards cut your hand if you try to attack with one and you are not wearing any gloves. -Adds a sound to attacking grilles with shards. -Changed the randomized force into throwforce. Should be less favourable to break down grilles with shards now. --- .../game/objects/items/stacks/sheets/glass.dm | 29 ++++++++++++------- code/game/objects/structures/grille.dm | 1 + html/changelog.html | 8 ++++- 3 files changed, 27 insertions(+), 11 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 228f694424f..d2883467f9f 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -231,16 +231,12 @@ /* * Glass shards - TODO: Move this into code/game/object/item/weapons */ -/obj/item/weapon/shard/Bump() +/obj/item/weapon/shard/pickup() - spawn( 0 ) - if (prob(20)) - src.force = 15 - else - src.force = 4 - ..() - return - return + if (prob(20)) + src.throwforce = 15 + else + src.throwforce = 4 /obj/item/weapon/shard/New() @@ -289,4 +285,17 @@ if(affecting.take_damage(5, 0)) H.UpdateDamageIcon(0) H.updatehealth() - ..() \ No newline at end of file + ..() + +/obj/item/weapon/shard/afterattack(atom/A as mob|obj, mob/living/carbon/user as mob) + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(!H.gloves) + H << "\The [src] cuts into your hand!" + var/organ = ((H.hand ? "l_":"r_") + "arm") + var/datum/limb/affecting = H.get_organ(organ) + if(affecting.take_damage(force/2)) + H.UpdateDamageIcon(0) + else + user << "\The [src] cuts into your hand!" + user.take_organ_damage(force/2) \ No newline at end of file diff --git a/code/game/objects/structures/grille.dm b/code/game/objects/structures/grille.dm index c2514a11241..dd3023413f4 100644 --- a/code/game/objects/structures/grille.dm +++ b/code/game/objects/structures/grille.dm @@ -159,6 +159,7 @@ //window placing end else if(istype(W, /obj/item/weapon/shard)) + playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) health -= W.force * 0.1 else if(!shock(user, 70)) playsound(loc, 'sound/effects/grillehit.ogg', 80, 1) diff --git a/html/changelog.html b/html/changelog.html index 777bf011407..d73b9e85f5c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -50,7 +50,13 @@ should be listed in the changelog upon commit tho. Thanks. --> - +
+

30 April 2013

+

Ikarrus updated:

+
    +
  • Researchers have discovered that glass shards are, in fact, dangerous due to their typically sharp nature. Our internal Safety Committee advises that glass shards only be handled while using Nanotrasen-approved hand-protective equipment.
  • +
+

26 April 2013

From 7b6576787abba126cf1ec10fea344c8585e862be Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sat, 4 May 2013 16:49:03 -0600 Subject: [PATCH 05/62] Changelings Scaling to Server Population Adds scaling of number of changelings to server's population if TRAITOR_SCALING is enabled in the server config. pop/6 during Changeling mode pop/18 during TraitorChan mode (For reference, Traitor uses pop/5) --- code/game/gamemodes/changeling/changeling.dm | 12 ++++++++-- .../game/gamemodes/changeling/traitor_chan.dm | 22 ++++++++++++++----- code/game/gamemodes/traitor/traitor.dm | 2 +- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 30cc32c2d86..524986cea5f 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -36,7 +36,8 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" 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 + var/const/changeling_amount = 4 //hard limit on changelings if scaling is turned off + var/const/changeling_scaling_coeff = 6 //how much does the amount of players get divided by to determine changelings /datum/game_mode/changeling/announce() world << "The current game mode is - Changeling!" @@ -49,13 +50,20 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" var/list/datum/mind/possible_changelings = get_players_for_role(BE_CHANGELING) + var/num_changelings = 1 + + if(config.traitor_scaling) + num_changelings = max(1, round((num_players())/(changeling_scaling_coeff))) + else + num_changelings = max(1, min(num_players(), changeling_amount)) + for(var/datum/mind/player in possible_changelings) for(var/job in restricted_jobs)//Removing robots from the list if(player.assigned_role == job) possible_changelings -= player if(possible_changelings.len>0) - for(var/i = 0, i < changeling_amount, i++) + for(var/i = 0, i < num_changelings, i++) if(!possible_changelings.len) break var/datum/mind/changeling = pick(possible_changelings) possible_changelings -= changeling diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index 6ddbb223978..04699a3a163 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -7,9 +7,12 @@ required_enemies = 2 recommended_enemies = 3 + var/const/changeling_amount = 1 //hard limit on changelings if scaling is turned off + var/const/changeling_scaling_coeff = 18 //how much does the amount of players get divided by to determine changelings + /datum/game_mode/traitor/changeling/announce() world << "The current game mode is - Traitor+Changeling!" - world << "There is an alien creature on the station along with some syndicate operatives out for their own gain! Do not let the changeling and the traitors succeed!" + world << "There are alien creatures on the station along with some syndicate operatives out for their own gain! Do not let the changelings or the traitors succeed!" /datum/game_mode/traitor/changeling/pre_setup() @@ -18,16 +21,25 @@ var/list/datum/mind/possible_changelings = get_players_for_role(BE_CHANGELING) + var/num_changelings = 1 + + if(config.traitor_scaling) + num_changelings = max(1, round((num_players())/(changeling_scaling_coeff))) + else + num_changelings = max(1, min(num_players(), changeling_amount)) + for(var/datum/mind/player in possible_changelings) for(var/job in restricted_jobs)//Removing robots from the list if(player.assigned_role == job) possible_changelings -= player if(possible_changelings.len>0) - var/datum/mind/changeling = pick(possible_changelings) - //possible_changelings-=changeling - changelings += changeling - modePlayer += changelings + for(var/i = 0, i < num_changelings, i++) + if(!possible_changelings.len) break + var/datum/mind/changeling = pick(possible_changelings) + possible_changelings -= changeling + changelings += changeling + modePlayer += changelings return ..() else return 0 diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm index 9e7483e96d2..1b6f936b6c6 100644 --- a/code/game/gamemodes/traitor/traitor.dm +++ b/code/game/gamemodes/traitor/traitor.dm @@ -24,7 +24,7 @@ /datum/game_mode/traitor/announce() world << "The current game mode is - Traitor!" - world << "There is a syndicate traitor on the station. Do not let the traitor succeed!" + world << "There are syndicate traitors on the station. Do not let the traitors succeed!" /datum/game_mode/traitor/pre_setup() From 4860b6566b206ba2153c0e09d8a6060047a84858 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sat, 4 May 2013 18:07:13 -0600 Subject: [PATCH 06/62] Increased changeling_scaling_coeff to 8 after further thought. --- code/game/gamemodes/changeling/changeling.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 524986cea5f..1dd8bde2a11 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -37,7 +37,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" 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 - var/const/changeling_scaling_coeff = 6 //how much does the amount of players get divided by to determine changelings + var/const/changeling_scaling_coeff = 8 //how much does the amount of players get divided by to determine changelings /datum/game_mode/changeling/announce() world << "The current game mode is - Changeling!" @@ -244,4 +244,4 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" if(dna_owner == DNA.real_name) chosen_dna = DNA break - return chosen_dna \ No newline at end of file + return chosen_dna From 2540568e2f99cbebd8f24387e1c9b4d20b1f561a Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sun, 5 May 2013 10:26:52 -0600 Subject: [PATCH 07/62] Tweaked coefficients a bit higher. 8 -> 10 18 -> 25 Changeling Mode 3 lings at 25 round-start-ready pop 4 lings at 35 round-start-ready pop 5 lings at 45 round-start-ready pop 6 lings at 55 round-start-ready pop 7 lings at 65 round-start-ready pop Traitor-chan 2 lings at 38 round-start-ready pop 3 lings at 62 round-start-ready pop etc --- code/game/gamemodes/changeling/changeling.dm | 4 ++-- code/game/gamemodes/changeling/traitor_chan.dm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm index 1dd8bde2a11..1a4a2d58886 100644 --- a/code/game/gamemodes/changeling/changeling.dm +++ b/code/game/gamemodes/changeling/changeling.dm @@ -37,7 +37,7 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" 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 - var/const/changeling_scaling_coeff = 8 //how much does the amount of players get divided by to determine changelings + var/const/changeling_scaling_coeff = 10 //how much does the amount of players get divided by to determine changelings /datum/game_mode/changeling/announce() world << "The current game mode is - Changeling!" @@ -244,4 +244,4 @@ var/list/possible_changeling_IDs = list("Alpha","Beta","Gamma","Delta","Epsilon" if(dna_owner == DNA.real_name) chosen_dna = DNA break - return chosen_dna + return chosen_dna diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm index 04699a3a163..ad786b669fb 100644 --- a/code/game/gamemodes/changeling/traitor_chan.dm +++ b/code/game/gamemodes/changeling/traitor_chan.dm @@ -8,7 +8,7 @@ recommended_enemies = 3 var/const/changeling_amount = 1 //hard limit on changelings if scaling is turned off - var/const/changeling_scaling_coeff = 18 //how much does the amount of players get divided by to determine changelings + var/const/changeling_scaling_coeff = 25 //how much does the amount of players get divided by to determine changelings /datum/game_mode/traitor/changeling/announce() world << "The current game mode is - Traitor+Changeling!" From d379f74a3073b39bc7f1cc4d9c853d4a26c6d3f2 Mon Sep 17 00:00:00 2001 From: Rolan7 Date: Mon, 6 May 2013 18:38:55 -0400 Subject: [PATCH 08/62] Changed moneyplants to use the plant's potency instead of a random value when generating spacecash. --- code/modules/hydroponics/grown.dm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/code/modules/hydroponics/grown.dm b/code/modules/hydroponics/grown.dm index 0b33edacb80..62b29c3acee 100644 --- a/code/modules/hydroponics/grown.dm +++ b/code/modules/hydroponics/grown.dm @@ -883,7 +883,8 @@ icon_state = "spawner" potency = 10 New() - switch(rand(1,100))//(potency) //It wants to use the default potency instead of the new, so it was always 10. Will try to come back to this later - Cheridan + ..() + switch(potency) if(0 to 10) new/obj/item/weapon/spacecash/(src.loc) if(11 to 20) From 27c6028dbf23a528d8db8b4b1cb3c5c2417a0eb3 Mon Sep 17 00:00:00 2001 From: KazeEspada Date: Mon, 6 May 2013 19:25:00 -0700 Subject: [PATCH 09/62] mice become items when they die. mousetraps now make the SNAP sound based on their location rather then the targets. --- code/modules/assembly/mousetrap.dm | 2 +- .../mob/living/simple_animal/friendly/mouse.dm | 16 +++++++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 6bd47d3b5b5..c7a16de3326 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -60,7 +60,7 @@ var/mob/living/simple_animal/mouse/M = target visible_message("\red SPLAT!") M.splat() - playsound(target.loc, 'sound/effects/snap.ogg', 50, 1) + playsound(src.loc, 'sound/effects/snap.ogg', 50, 1) armed = 0 update_icon() pulse(0) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 1909be755b8..3d36ecf52cb 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -31,10 +31,14 @@ /mob/living/simple_animal/mouse/proc/splat() src.health = 0 - src.stat = DEAD src.icon_dead = "mouse_[color]_splat" - src.icon_state = "mouse_[color]_splat" + Die() +/mob/living/simple_animal/mouse/Die() + ..() + var/obj/item/trash/deadmouse/M = new(src.loc) + M.icon_state = src.icon_dead + del (src) /mob/living/simple_animal/mouse/HasEntered(AM as mob|obj) if( ishuman(AM) ) @@ -66,4 +70,10 @@ desc = "Jerry the cat is not amused." response_help = "pets" response_disarm = "gently pushes aside" - response_harm = "splats" \ No newline at end of file + response_harm = "splats" + +/obj/item/trash/deadmouse + name = "dead mouse" + desc = "It looks like somebody dropped the bass on it." + icon = 'icons/mob/animal.dmi' + icon_state = "mouse_gray_dead" \ No newline at end of file From 0e0622dc128af6963b83d3229dd5c75bb1967145 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Mon, 6 May 2013 22:12:28 -0600 Subject: [PATCH 10/62] Raised toolbox force to 10 Reduced extinguisher force to 5 --- code/game/objects/items/weapons/extinguisher.dm | 2 +- code/game/objects/items/weapons/storage/toolbox.dm | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index d1e6212803f..bcbe6175e31 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -10,7 +10,7 @@ w_class = 3.0 throw_speed = 2 throw_range = 10 - force = 10.0 + force = 5.0 m_amt = 90 attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") var/max_water = 50 diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 87d04358cc1..5d047064ef9 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -5,8 +5,8 @@ icon_state = "red" item_state = "toolbox_red" flags = FPRINT | TABLEPASS| CONDUCT - force = 5.0 - throwforce = 10.0 + force = 10.0 + throwforce = 15.0 throw_speed = 1 throw_range = 7 w_class = 4.0 @@ -72,7 +72,8 @@ icon_state = "syndicate" item_state = "toolbox_syndi" origin_tech = "combat=1;syndicate=1" - force = 7.0 + force = 15.0 + throwforce = 18.0 New() ..() From 9990655525299a78d2b2270aaf9356705c3dcc4b Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Tue, 7 May 2013 08:26:25 -0600 Subject: [PATCH 11/62] Attached changelog --- html/changelog.html | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index c6d2a478a81..4a610ceb834 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -49,7 +49,13 @@ should be listed in the changelog upon commit tho. Thanks. --> - +
+

7 May 2013

+

Ikarrus updated:

+
    +
  • Raised damage dealt by toolboxes, reduced damage dealt by fire extinguishers.
  • +
+

2 May 2013

@@ -62,8 +68,6 @@ should be listed in the changelog upon commit tho. Thanks. -->
- -

24 April 2013

Carnie updated:

From 861798c27050ad65e0347dd4b71d2e8ebae3f2ab Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Tue, 7 May 2013 21:12:01 -0600 Subject: [PATCH 12/62] Removed extinguisher change --- code/game/objects/items/weapons/extinguisher.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm index bcbe6175e31..1aa824b98a8 100644 --- a/code/game/objects/items/weapons/extinguisher.dm +++ b/code/game/objects/items/weapons/extinguisher.dm @@ -10,7 +10,7 @@ w_class = 3.0 throw_speed = 2 throw_range = 10 - force = 5.0 + force = 10.0 m_amt = 90 attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed") var/max_water = 50 @@ -129,4 +129,4 @@ step(user, user.inertia_dir) else return ..() - return \ No newline at end of file + return From 0ee89e9cd2dde4b33af70401e01e96f74841d234 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Tue, 7 May 2013 21:13:13 -0600 Subject: [PATCH 13/62] Increased toolbox force to 12 --- code/game/objects/items/weapons/storage/toolbox.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 5d047064ef9..33a0b08ff10 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -5,7 +5,7 @@ icon_state = "red" item_state = "toolbox_red" flags = FPRINT | TABLEPASS| CONDUCT - force = 10.0 + force = 12.0 throwforce = 15.0 throw_speed = 1 throw_range = 7 @@ -84,4 +84,4 @@ new /obj/item/weapon/crowbar(src) new /obj/item/weapon/cable_coil(src,30,color) new /obj/item/weapon/wirecutters(src) - new /obj/item/device/multitool(src) \ No newline at end of file + new /obj/item/device/multitool(src) From dc5252cefa80e3b8c4f8bb0d80a6cc6052c94709 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Tue, 7 May 2013 21:17:16 -0600 Subject: [PATCH 14/62] Updated changelog --- html/changelog.html | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 4a610ceb834..e48960c0fed 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -49,13 +49,16 @@ should be listed in the changelog upon commit tho. Thanks. --> -
+ + +

7 May 2013

Ikarrus updated:

    -
  • Raised damage dealt by toolboxes, reduced damage dealt by fire extinguishers.
  • +
  • As a part of the most recent round of budget cuts, toolboxes will now be made with a cheaper, heavier alloy. Corporate security feels the need to remind employees to avoid being struck with toolboxes, as it can really hurt.
-
+
+

2 May 2013

@@ -66,7 +69,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Made grey backpacks slightly less ugly
  • - +

    24 April 2013

    @@ -120,7 +123,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Stun batons/prods now work off power cells, which can be removed and replaced! Use a screwdriver to remove the battery.
  • - +

    17 April 2013

    @@ -129,7 +132,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • If the configuration option is enabled, AIs and or Cyborgs will not be able to communicate vocally. This means they cannot talk normally and need to use alternative methods to do so
  • - +

    10 April 2013

    @@ -142,7 +145,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • NT bluespace engineers have ironed-out that little issue with the teleporter occasionally malfunctioning and dropping users into deep space. Please note, however, that bluespace teleporters are still sensitive experimental technology, and should be Test Fired before use to ensure proper function.
  • - +

    9 April 2013

    @@ -2712,4 +2715,4 @@ should be listed in the changelog upon commit tho. Thanks. -->

    Some icons by Yusuke Kamiyamane. All rights reserved. Licensed under a Creative Commons Attribution 3.0 License.

    - + From cff9ed5f7103fcb69a6bb67c2894b681bcf6cd28 Mon Sep 17 00:00:00 2001 From: carnie Date: Wed, 8 May 2013 08:20:15 +0100 Subject: [PATCH 15/62] >Resolves some dna runtimes. - check_dna_integrity() was not being used properly. >Removed a for(obj/item in world) loop triggered by bloodying items. It now uses a caching system. >New skin_tones - they are now sprite-based. This is to prepare for expansion of the mutantrace system. Thanks validsalid x >Removed fat icons from the game - when you are obese you will now just look like a regular human. You will not be immune to being pushed. You will not be immune to choking. You will still overheat and run slower and appear fat upon "examine" verb use. Modified code/__HELPERS/mobs.dm Modified code/game/atoms.dm Modified code/game/dna.dm Modified code/game/machinery/computer/hologram.dm Modified code/game/objects/items.dm Modified code/modules/client/preferences.dm Modified code/modules/client/preferences_savefile.dm Modified code/modules/flufftext/Hallucination.dm Modified code/modules/mob/living/carbon/alien/larva/larva.dm Modified code/modules/mob/living/carbon/human/human.dm Modified code/modules/mob/living/carbon/human/human_defines.dm Modified code/modules/mob/living/carbon/human/life.dm Modified code/modules/mob/living/carbon/human/update_icons.dm Modified code/modules/mob/living/carbon/monkey/monkey.dm Modified code/modules/mob/living/silicon/robot/robot.dm Modified code/modules/mob/living/simple_animal/constructs.dm Modified code/modules/mob/living/simple_animal/friendly/corgi.dm Modified code/modules/mob/living/simple_animal/friendly/farm_animals.dm Modified code/modules/mob/new_player/preferences_setup.dm Modified icons/effects/genetics.dmi Modified icons/mob/human.dmi Signed-off-by: carnie --- code/__HELPERS/mobs.dm | 24 +- code/game/atoms.dm | 106 ++-- code/game/dna.dm | 16 +- code/game/machinery/computer/hologram.dm | 3 +- code/game/objects/items.dm | 25 +- code/modules/client/preferences.dm | 10 +- code/modules/client/preferences_savefile.dm | 6 +- code/modules/flufftext/Hallucination.dm | 2 +- .../mob/living/carbon/alien/larva/larva.dm | 8 - code/modules/mob/living/carbon/human/human.dm | 7 +- .../mob/living/carbon/human/human_defines.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 8 +- .../mob/living/carbon/human/update_icons.dm | 562 +++++++----------- .../mob/living/carbon/monkey/monkey.dm | 5 - .../modules/mob/living/silicon/robot/robot.dm | 5 - .../mob/living/simple_animal/constructs.dm | 5 - .../living/simple_animal/friendly/corgi.dm | 5 - .../simple_animal/friendly/farm_animals.dm | 2 +- .../mob/new_player/preferences_setup.dm | 7 +- icons/effects/genetics.dmi | Bin 79865 -> 55978 bytes icons/mob/human.dmi | Bin 11483 -> 47395 bytes 21 files changed, 299 insertions(+), 509 deletions(-) diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 0da2da6deec..fa7d1cdd380 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -39,20 +39,22 @@ proc/random_name(gender, attempts_to_find_unique_name=10) break proc/random_skin_tone() - return pick(60;"caucasian", 15;"afroamerican", 10;"african", 10;"latino", 5;"albino", 20;"oriental", 10;"mediteranian") + return pick(skin_tones) var/list/skin_tones = list( - "caucasian" = "fdc", - "afroamerican" = "963", - "african" = "630", - "latino" = "c90", - "albino" = "fff", - "oriental" = "ff6", - "mediteranian" = "cc0" + "albino", + "caucasian1", + "caucasian2", + "caucasian3", + "latino", + "mediterranean", + "asian1", + "asian2", + "arab", + "indian", + "african1", + "african2" ) -/proc/skin_tone2color(skin_tone) - . = skin_tones[skin_tone] - if(!.) . = "fdc" proc/age2agedescription(age) switch(age) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 98777f7e0ac..235ac44654b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -304,69 +304,57 @@ its easier to just keep the beam vertical. if(!istype(W, /obj/item/weapon/grab) && !istype(W, /obj/item/weapon/plastique) && !istype(W, /obj/item/weapon/reagent_containers/spray) && !istype(W, /obj/item/weapon/packageWrap) && !istype(W, /obj/item/device/detective_scanner)) visible_message("[src] has been hit by [user] with [W].") +var/list/blood_splatter_icons = list() +/atom/proc/blood_splatter_index() + return "\ref[initial(icon)]-[initial(icon_state)]" //returns 1 if made bloody, returns 0 otherwise -/atom/proc/add_blood(mob/living/carbon/human/M as mob) - if (!( istype(M, /mob/living/carbon/human) )) +/atom/proc/add_blood(mob/living/carbon/M) + if(!initial(icon) || !initial(icon_state)) return 0 - check_dna_integrity(M) //check dna is valid and create/setup if necessary - if (!( src.flags ) & FPRINT) + if(!istype(M)) return 0 - if(!blood_DNA || !istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it. + if(!check_dna_integrity(M)) //check dna is valid and create/setup if necessary + return 0 //no dna! + if(!(flags & FPRINT)) + return 0 + if(!istype(blood_DNA, /list)) //if our list of DNA doesn't exist yet (or isn't a list) initialise it. blood_DNA = list() //adding blood to items - if (istype(src, /obj/item)&&!istype(src, /obj/item/weapon/melee/energy))//Only regular items. Energy melee weapon are not affected. - var/obj/item/O = src - - //if we haven't made our blood_overlay already - if( !O.blood_overlay ) - var/icon/I = new /icon(O.icon, O.icon_state) - I.Blend(new /icon('icons/effects/blood.dmi', rgb(255,255,255)),ICON_ADD) //fills the icon_state with white (except where it's transparent) - I.Blend(new /icon('icons/effects/blood.dmi', "itemblood"),ICON_MULTIPLY) //adds blood and the remaining white areas become transparant - - //not sure if this is worth it. It attaches the blood_overlay to every item of the same type if they don't have one already made. - for(var/obj/item/A in world) - if(A.type == O.type && !A.blood_overlay) - A.blood_overlay = I - + if(istype(src, /obj/item)) //apply the blood-splatter overlay if it isn't already in there if(!blood_DNA.len) - O.overlays += O.blood_overlay - + //try to find a pre-processed blood-splatter. otherwise, make a new one + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = blood_splatter_icons[index] + if(!blood_splatter_icon ) + blood_splatter_icon = icon(initial(icon), initial(icon_state), , 1) //we only want to apply blood-splatters to the initial icon_state for each object + blood_splatter_icon.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent) + blood_splatter_icon.Blend(icon('icons/effects/blood.dmi', "itemblood"), ICON_MULTIPLY) //adds blood and the remaining white areas become transparant + blood_splatter_icon = fcopy_rsc(blood_splatter_icon) + blood_splatter_icons[index] = blood_splatter_icon + overlays += blood_splatter_icon + //if this blood isn't already in the list, add it - if(blood_DNA[M.dna.unique_enzymes]) return 0 //already bloodied with this blood. Cannot add more. blood_DNA[M.dna.unique_enzymes] = M.dna.b_type return 1 //we applied blood to the item //adding blood to turfs - else if (istype(src, /turf/simulated)) + else if(istype(src, /turf/simulated)) var/turf/simulated/T = src //get one blood decal and infect it with virus from M.viruses - for(var/obj/effect/decal/cleanable/blood/B in T.contents) - if(!B.blood_DNA[M.dna.unique_enzymes]) - B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type - /*for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = D.Copy(1) - B.viruses += newDisease - newDisease.holder = B*/ - return 1 //we bloodied the floor - - //if there isn't a blood decal already, make one. - var/obj/effect/decal/cleanable/blood/newblood = new /obj/effect/decal/cleanable/blood(T) - newblood.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type - /*for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = D.Copy(1) - newblood.viruses += newDisease - newDisease.holder = newblood*/ + var/obj/effect/decal/cleanable/blood/B = locate() in T.contents + if(!B) B = new /obj/effect/decal/cleanable/blood(T) + B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type return 1 //we bloodied the floor //adding blood to humans - else if (istype(src, /mob/living/carbon/human)) + else if(istype(src, /mob/living/carbon/human)) var/mob/living/carbon/human/H = src //if this blood isn't already in the list, add it if(blood_DNA[H.dna.unique_enzymes]) @@ -391,34 +379,22 @@ its easier to just keep the beam vertical. // Only adds blood on the floor -- Skie /atom/proc/add_blood_floor(mob/living/carbon/M as mob) - if( istype(M, /mob/living/carbon/monkey) || istype(M, /mob/living/carbon/human)) - if( istype(src, /turf/simulated) ) - var/turf/simulated/source1 = src - var/obj/effect/decal/cleanable/blood/this = new /obj/effect/decal/cleanable/blood(source1) - this.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type - /*for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = D.Copy(1) - this.viruses += newDisease - newDisease.holder = this*/ - - else if( istype(M, /mob/living/carbon/alien )) - if( istype(src, /turf/simulated) ) - var/turf/simulated/source2 = src - var/obj/effect/decal/cleanable/xenoblood/this = new /obj/effect/decal/cleanable/xenoblood(source2) - this.blood_DNA["UNKNOWN BLOOD"] = "X*" - /*for(var/datum/disease/D in M.viruses) - var/datum/disease/newDisease = D.Copy(1) - this.viruses += newDisease - newDisease.holder = this*/ - - else if( istype(M, /mob/living/silicon/robot )) - if( istype(src, /turf/simulated) ) - var/turf/simulated/source2 = src - new /obj/effect/decal/cleanable/oil(source2) + if(istype(src, /turf/simulated)) + if(check_dna_integrity(M)) //mobs with dna = (monkeys + humans at time of writing) + var/obj/effect/decal/cleanable/blood/B = locate() in contents + if(!B) B = new(src) + B.blood_DNA[M.dna.unique_enzymes] = M.dna.b_type + else if(istype(M, /mob/living/carbon/alien)) + var/obj/effect/decal/cleanable/xenoblood/B = locate() in contents + if(!B) B = new(src) + B.blood_DNA["UNKNOWN BLOOD"] = "X*" + else if(istype(M, /mob/living/silicon/robot)) + var/obj/effect/decal/cleanable/oil/B = locate() in contents + if(!B) B = new(src) /atom/proc/clean_blood() if(istype(blood_DNA, /list)) - del(blood_DNA) + blood_DNA = null return 1 diff --git a/code/game/dna.dm b/code/game/dna.dm index 623d209e155..a0e0082ec3b 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -39,7 +39,7 @@ L[DNA_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.h_color) L[DNA_FACIAL_HAIR_STYLE_BLOCK] = construct_block(hair_styles_list.Find(H.f_style), facial_hair_styles_list.len) L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.f_color) - L[DNA_SKIN_TONE_BLOCK] = construct_block(skin_tones.Find(H.s_tone), skin_tones.len) + L[DNA_SKIN_TONE_BLOCK] = construct_block(skin_tones.Find(H.skin_tone), skin_tones.len) L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) for(var/i=1, i<=DNA_UNI_IDENTITY_BLOCKS, i++) @@ -98,11 +98,11 @@ /proc/check_dna_integrity(mob/living/carbon/character) if(!istype(character)) - return 0 + return if(!character.dna) if(ready_dna(character)) - return 1 - return 0 + return character.dna + return if(length(character.dna.uni_identity) != DNA_UNI_IDENTITY_BLOCKS*DNA_BLOCK_SIZE) character.dna.uni_identity = character.dna.generate_uni_identity(character) @@ -110,11 +110,11 @@ character.dna.struc_enzymes = character.dna.generate_struc_enzymes() if(!character.dna.real_name || length(character.dna.unique_enzymes) != DNA_UNIQUE_ENZYMES_LEN) character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) - return 1 + return character.dna /proc/ready_dna(mob/living/carbon/character, blood_type) if(!istype(character, /mob/living/carbon/monkey) && !istype(character, /mob/living/carbon/human)) - return 0 + return if(!character.dna) character.dna = new /datum/dna() if(blood_type) @@ -123,7 +123,7 @@ character.dna.uni_identity = character.dna.generate_uni_identity(character) character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character) character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character) - return 1 + return character.dna /////////////////////////// DNA DATUM @@ -211,7 +211,7 @@ var/structure = H.dna.uni_identity H.h_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) H.f_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) - H.s_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] + H.skin_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] H.eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) H.gender = (deconstruct_block(getblock(structure, DNA_GENDER_BLOCK), 2)-1) ? MALE : FEMALE H.f_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] diff --git a/code/game/machinery/computer/hologram.dm b/code/game/machinery/computer/hologram.dm index 4c6b5bb6380..7254b0b6380 100644 --- a/code/game/machinery/computer/hologram.dm +++ b/code/game/machinery/computer/hologram.dm @@ -27,14 +27,13 @@ return /obj/machinery/computer/hologram_comp/proc/render() - var/icon/I = new /icon('icons/mob/human.dmi', "body_m_s") + var/icon/I = new /icon('icons/mob/human.dmi', "[skin_tones[1]]_m_s") if (src.lumens >= 0) I.Blend(rgb(src.lumens, src.lumens, src.lumens), ICON_ADD) else I.Blend(rgb(- src.lumens, -src.lumens, -src.lumens), ICON_SUBTRACT) - I.Blend(new /icon('icons/mob/human.dmi', "mouth_m_s"), ICON_OVERLAY) I.Blend(new /icon('icons/mob/underwear.dmi', "Mens White"), ICON_OVERLAY) var/icon/U = new /icon('icons/mob/human_face.dmi', "hair_a_s") diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 56956f5e557..61386be8161 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -1,7 +1,6 @@ /obj/item name = "item" icon = 'icons/obj/items.dmi' - var/icon/blood_overlay = null //this saves our blood splatter overlay, which will be processed not to go over the edges of the sprite var/abstract = 0 var/item_state = null var/r_speed = 1.0 @@ -385,14 +384,6 @@ if(ishuman(M)) //START HUMAN var/mob/living/carbon/human/H = M - - if(istype(src, /obj/item/clothing/under) || istype(src, /obj/item/clothing/suit)) - if(FAT in H.mutations) - if(!(flags & ONESIZEFITSALL)) - if(!disable_warning) - H << "\red You're too fat to wear the [name]." - return 0 - switch(slot) if(slot_l_hand) if(H.l_hand) @@ -674,8 +665,14 @@ /obj/item/clean_blood() . = ..() - if(blood_overlay) - overlays.Remove(blood_overlay) - if(istype(src, /obj/item/clothing/gloves)) - var/obj/item/clothing/gloves/G = src - G.transfer_blood = 0 \ No newline at end of file + if(.) + if(initial(icon) && initial(icon_state)) + var/index = blood_splatter_index() + var/icon/blood_splatter_icon = blood_splatter_icons[index] + if(blood_splatter_icon) + overlays -= blood_splatter_icon + +/obj/item/clothing/gloves/clean_blood() + . = ..() + if(.) + transfer_blood = 0 \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 04378d48110..156c338fdd4 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -50,7 +50,7 @@ datum/preferences var/h_color = "000" //Hair color var/f_style = "Shaved" //Face hair type var/f_color = "000" //Facial hair color - var/s_tone = "caucasian" //Skin color + var/skin_tone = "caucasian" //Skin color var/eye_color = "000" //Eye color //Mob preview @@ -157,7 +157,7 @@ datum/preferences dat += "
    " dat += "Blood Type: [b_type]
    " - dat += "Skin Tone:
        [s_tone]
    " + dat += "Skin Tone:
    [skin_tone]
    " dat += "Underwear:
    [underwear]
    " dat += "Backpack:
    [backbaglist[backbag]]
    " @@ -493,7 +493,7 @@ datum/preferences if("eyes") eye_color = random_eye_color() if("s_tone") - s_tone = random_skin_tone() + skin_tone = random_skin_tone() if("bag") backbag = rand(1,3) if("all") @@ -564,7 +564,7 @@ datum/preferences if("s_tone") var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones if(new_s_tone) - s_tone = new_s_tone + skin_tone = new_s_tone if("ooccolor") var/new_ooccolor = input(user, "Choose your OOC colour:", "Game Preference") as color|null @@ -667,7 +667,7 @@ datum/preferences character.h_color = h_color character.f_color = f_color - character.s_tone = s_tone + character.skin_tone = skin_tone character.h_style = h_style character.f_style = f_style character.underwear = underwear diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index b079a33ece1..e81362ca614 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -163,7 +163,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["hair_color"] >> h_color S["facial_hair_color"] >> f_color S["eye_color"] >> eye_color - S["skin_tone"] >> s_tone + S["skin_tone"] >> skin_tone S["hair_style_name"] >> h_style S["facial_style_name"] >> f_style S["underwear"] >> underwear @@ -203,7 +203,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car h_color = sanitize_hexcolor(h_color, 3, 0) f_color = sanitize_hexcolor(f_color, 3, 0) eye_color = sanitize_hexcolor(eye_color, 3, 0) - s_tone = sanitize_inlist(s_tone, skin_tones) + skin_tone = sanitize_inlist(skin_tone, skin_tones) backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag)) userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob)) @@ -236,7 +236,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["hair_color"] << h_color S["facial_hair_color"] << f_color S["eye_color"] << eye_color - S["skin_tone"] << s_tone + S["skin_tone"] << skin_tone S["hair_style_name"] << h_style S["facial_style_name"] << f_style S["underwear"] << underwear diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 9264c0e28dd..5a3205749e1 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -229,7 +229,7 @@ proc/check_panel(mob/M) var/image/stand_icon = null var/image/currentimage = null var/icon/base = null - var/s_tone + var/skin_tone var/mob/living/clone = null var/image/left var/image/right diff --git a/code/modules/mob/living/carbon/alien/larva/larva.dm b/code/modules/mob/living/carbon/alien/larva/larva.dm index c6e137289fa..394ae96452c 100644 --- a/code/modules/mob/living/carbon/alien/larva/larva.dm +++ b/code/modules/mob/living/carbon/alien/larva/larva.dm @@ -33,14 +33,6 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(70)) - src << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return - if(!(tmob.status_flags & CANPUSH)) - now_pushing = 0 - return tmob.LAssailant = src now_pushing = 0 diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 6c35fe3bfee..62e5fc112d5 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -3,7 +3,7 @@ real_name = "unknown" voice_name = "unknown" icon = 'icons/mob/human.dmi' - icon_state = "body_m_s" + icon_state = "caucasian1_m_s" var/list/hud_list = list() @@ -66,11 +66,6 @@ slime.UpdateFeed() return - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(40) && !(FAT in src.mutations)) - src << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return if(tmob.r_hand && istype(tmob.r_hand, /obj/item/weapon/shield/riot)) if(prob(99)) now_pushing = 0 diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 3cb7acc54ac..3b312d82d58 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -10,7 +10,7 @@ //Eye colour var/eye_color = "000" - var/s_tone = "caucasian" //Skin tone + var/skin_tone = "caucasian1" //Skin tone var/lip_style = null //no lipstick by default- arguably misleading, as it could be used for general makeup diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index f2c39d1c916..9f53824097c 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -755,17 +755,13 @@ if(FAT in mutations) if(overeatduration < 100) src << "\blue You feel fit again!" - mutations.Remove(FAT) - update_mutantrace(0) - update_mutations(0) + mutations -= FAT update_inv_w_uniform(0) update_inv_wear_suit() else if(overeatduration > 500) src << "\red You suddenly feel blubbery!" - mutations.Add(FAT) - update_mutantrace(0) - update_mutations(0) + mutations |= FAT update_inv_w_uniform(0) update_inv_wear_suit() diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index e001ab7eeeb..0faf8addaab 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -123,6 +123,18 @@ Please contact me on #coderbus IRC. ~Carn x var/list/overlays_lying[TOTAL_LAYERS] var/list/overlays_standing[TOTAL_LAYERS] +/mob/living/carbon/human/proc/apply_overlay(cache_index) + var/image/I = lying ? overlays_lying[cache_index] : overlays_standing[cache_index] + if(I) + overlays += I + +/mob/living/carbon/human/proc/remove_overlay(cache_index) + if(overlays_lying[cache_index]) + overlays -= overlays_lying[cache_index] + overlays_lying[cache_index] = null + if(overlays_standing[cache_index]) + overlays -= overlays_standing[cache_index] + overlays_standing[cache_index] = null //UPDATES OVERLAYS FROM OVERLAYS_LYING/OVERLAYS_STANDING //this proc is messy as I was forced to include some old laggy cloaking code to it so that I don't break cloakers @@ -162,11 +174,14 @@ Please contact me on #coderbus IRC. ~Carn x //DAMAGE OVERLAYS //constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists -/mob/living/carbon/human/UpdateDamageIcon(var/update_icons=1) - overlays -= overlays_lying[DAMAGE_LAYER] - overlays -= overlays_standing[DAMAGE_LAYER] +/mob/living/carbon/human/UpdateDamageIcon(update_icons=0) + remove_overlay(DAMAGE_LAYER) + var/image/standing = image("icon" = 'icons/mob/dam_human.dmi', "icon_state" = "blank", "layer" = -DAMAGE_LAYER) var/image/lying = image("icon" = 'icons/mob/dam_human.dmi', "icon_state" = "blank2", "layer" = -DAMAGE_LAYER) + overlays_standing[DAMAGE_LAYER] = standing + overlays_lying[DAMAGE_LAYER] = lying + for(var/datum/limb/O in organs) if(O.brutestate) standing.overlays += "[O.icon_name]_[O.brutestate]0" //we're adding icon_states of the base image as overlays @@ -174,79 +189,59 @@ Please contact me on #coderbus IRC. ~Carn x if(O.burnstate) standing.overlays += "[O.icon_name]_0[O.burnstate]" lying.overlays += "[O.icon_name]2_0[O.burnstate]" - - overlays_standing[DAMAGE_LAYER] = standing - overlays_lying[DAMAGE_LAYER] = lying - if (src.lying) - overlays += overlays_lying[DAMAGE_LAYER] - else - overlays += overlays_standing[DAMAGE_LAYER] + + apply_overlay(DAMAGE_LAYER) if(update_icons) update_icons() //BASE MOB SPRITE -/mob/living/carbon/human/proc/update_body(var/update_icons=1) - if(stand_icon) del(stand_icon) - if(lying_icon) del(lying_icon) +/mob/living/carbon/human/proc/update_body(update_icons=0) + stand_icon = null + lying_icon = null if(dna && dna.mutantrace) return - var/husk = (HUSK in src.mutations) //100% unnecessary -Agouri //nope, do you really want to iterate through src.mutations repeatedly? -Pete - var/fat = (FAT in src.mutations) var/skeleton = (SKELETON in src.mutations) - var/g = "m" - - if(gender == FEMALE) g = "f" + + var/base_icon_state //Base mob icon - if(husk) - stand_icon = new /icon('icons/mob/human.dmi', "husk_s") - lying_icon = new /icon('icons/mob/human.dmi', "husk_l") - else if(fat) - stand_icon = new /icon('icons/mob/human.dmi', "fatbody_s") - lying_icon = new /icon('icons/mob/human.dmi', "fatbody_l") - else if(skeleton) - stand_icon = new /icon('icons/mob/human.dmi', "skeleton_s") - lying_icon = new /icon('icons/mob/human.dmi', "skeleton_l") + if(skeleton) + base_icon_state = "skeleton" else - stand_icon = new /icon('icons/mob/human.dmi', "body_[g]_s") - lying_icon = new /icon('icons/mob/human.dmi', "body_[g]_l") + if(HUSK in src.mutations) + base_icon_state = "husk" + else + base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]" + + stand_icon = icon('icons/mob/human.dmi', "[base_icon_state]_s") + lying_icon = icon('icons/mob/human.dmi', "[base_icon_state]_l") - //Skin tone - if(!skeleton) - var/color = skin_tones[s_tone] - if(color) - color = "#" + color - stand_icon.Blend(color, ICON_MULTIPLY) - lying_icon.Blend(color, ICON_MULTIPLY) + //Mouth (lipstick!) + if(lip_style) //skeletons are allowed to wear lipstick no matter what you think, agouri. + stand_icon.Blend(icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) + lying_icon.Blend(icon('icons/mob/human_face.dmi', "lips_[lip_style]_l"), ICON_OVERLAY) //Eyes - var/icon/eyes_s = new/icon('icons/mob/human_face.dmi', "eyes_s") - var/icon/eyes_l = new/icon('icons/mob/human_face.dmi', "eyes_l") + if(!skeleton) + var/icon/eyes_s = icon('icons/mob/human_face.dmi', "eyes_s") + var/icon/eyes_l = icon('icons/mob/human_face.dmi', "eyes_l") eyes_s.Blend("#[eye_color]", ICON_ADD) eyes_l.Blend("#[eye_color]", ICON_ADD) stand_icon.Blend(eyes_s, ICON_OVERLAY) lying_icon.Blend(eyes_l, ICON_OVERLAY) - //Mouth (lipstick!) - if(lip_style) //skeletons are allowed to wear lipstick no matter what you think, agouri. - stand_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) - lying_icon.Blend(new/icon('icons/mob/human_face.dmi', "lips_[lip_style]_l"), ICON_OVERLAY) - - //Underwear - if(underwear && !fat && !skeleton) - var/datum/sprite_accessory/underwear/U = underwear_all[underwear] - if(U) - stand_icon.Blend(new /icon(U.icon, "[U.icon_state]_s"), ICON_OVERLAY) - lying_icon.Blend(new /icon(U.icon, "[U.icon_state]_l"), ICON_OVERLAY) + //Underwear + if(underwear) + var/datum/sprite_accessory/underwear/U = underwear_all[underwear] + if(U) + stand_icon.Blend(icon(U.icon, "[U.icon_state]_s"), ICON_OVERLAY) + lying_icon.Blend(icon(U.icon, "[U.icon_state]_l"), ICON_OVERLAY) if(update_icons) update_icons() //HAIR OVERLAY -/mob/living/carbon/human/proc/update_hair(var/update_icons=1) +/mob/living/carbon/human/proc/update_hair(update_icons=0) //Reset our hair - overlays -= overlays_lying[HAIR_LAYER] - overlays -= overlays_standing[HAIR_LAYER] - overlays_standing[HAIR_LAYER] = null - overlays_lying[HAIR_LAYER] = null + remove_overlay(HAIR_LAYER) //mutants don't have hair. masks and helmets can obscure our hair too. if( (dna && dna.mutantrace) || (head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR)) ) @@ -286,20 +281,11 @@ Please contact me on #coderbus IRC. ~Carn x overlays_lying[HAIR_LAYER] = image(face_lying, "layer" = -HAIR_LAYER) overlays_standing[HAIR_LAYER] = image(face_standing, "layer" = -HAIR_LAYER) - if (src.lying) - overlays += overlays_lying[HAIR_LAYER] - else - overlays += overlays_standing[HAIR_LAYER] - + apply_overlay(HAIR_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_mutations(var/update_icons=1) - overlays -= overlays_lying[MUTATIONS_LAYER] - overlays -= overlays_standing[MUTATIONS_LAYER] - - var/fat - if(FAT in mutations) - fat = "fat" +/mob/living/carbon/human/update_mutations(update_icons=0) + remove_overlay(MUTATIONS_LAYER) var/image/lying = image("icon" = 'icons/effects/genetics.dmi', "layer" = -MUTATIONS_LAYER) var/image/standing = image("icon" = 'icons/effects/genetics.dmi', "layer" = -MUTATIONS_LAYER) @@ -309,20 +295,16 @@ Please contact me on #coderbus IRC. ~Carn x for(var/mut in mutations) switch(mut) if(HULK) - if(fat) - lying.underlays += "hulk_[fat]_l" - standing.underlays += "hulk_[fat]_s" - else - lying.underlays += "hulk_[g]_l" - standing.underlays += "hulk_[g]_s" + lying.underlays += "hulk_[g]_l" + standing.underlays += "hulk_[g]_s" add_image = 1 if(COLD_RESISTANCE) - lying.underlays += "fire[fat]_l" - standing.underlays += "fire[fat]_s" + lying.underlays += "fire_l" + standing.underlays += "fire_s" add_image = 1 if(TK) - lying.underlays += "telekinesishead[fat]_l" - standing.underlays += "telekinesishead[fat]_s" + lying.underlays += "telekinesishead_l" + standing.underlays += "telekinesishead_s" add_image = 1 if(LASER) lying.overlays += "lasereyes_l" @@ -331,43 +313,30 @@ Please contact me on #coderbus IRC. ~Carn x if(add_image) overlays_lying[MUTATIONS_LAYER] = lying overlays_standing[MUTATIONS_LAYER] = standing - if (src.lying) - overlays += overlays_lying[MUTATIONS_LAYER] - else - overlays += overlays_standing[MUTATIONS_LAYER] - else - overlays -= overlays_lying[MUTATIONS_LAYER] - overlays -= overlays_standing[MUTATIONS_LAYER] - overlays_lying[MUTATIONS_LAYER] = null - overlays_standing[MUTATIONS_LAYER] = null + + apply_overlay(MUTATIONS_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/proc/update_mutantrace(var/update_icons=1) - overlays -= overlays_lying[MUTANTRACE_LAYER] - overlays -= overlays_standing[MUTANTRACE_LAYER] - var/fat - if( FAT in mutations ) - fat = "fat" +/mob/living/carbon/human/proc/update_mutantrace(update_icons=0) + remove_overlay(MUTANTRACE_LAYER) if(dna) switch(dna.mutantrace) if("lizard","golem","slime","shadow","adamantine", "fly") - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_l", "layer" = -MUTANTRACE_LAYER) - overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s", "layer" = -MUTANTRACE_LAYER) + overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l", "layer" = -MUTANTRACE_LAYER) + overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s", "layer" = -MUTANTRACE_LAYER) if("plant") if(stat == DEAD) //TODO overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d", "layer" = -MUTANTRACE_LAYER) else - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_l", "layer" = -MUTANTRACE_LAYER) - overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace][fat]_[gender]_s", "layer" = -MUTANTRACE_LAYER) - else - overlays -= overlays_lying[MUTANTRACE_LAYER] - overlays -= overlays_standing[MUTANTRACE_LAYER] - overlays_lying[MUTANTRACE_LAYER] = null - overlays_standing[MUTANTRACE_LAYER] = null + overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l", "layer" = -MUTANTRACE_LAYER) + overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s", "layer" = -MUTANTRACE_LAYER) + update_body(0) update_hair(0) + + apply_overlay(MUTANTRACE_LAYER) if(update_icons) update_icons() /* --------------------------------------- */ @@ -401,306 +370,214 @@ Please contact me on #coderbus IRC. ~Carn x /* --------------------------------------- */ //vvvvvv UPDATE_INV PROCS vvvvvv -/mob/living/carbon/human/update_inv_w_uniform(var/update_icons=1) - if(w_uniform && istype(w_uniform, /obj/item/clothing/under) ) +/mob/living/carbon/human/update_inv_w_uniform(update_icons=0) + remove_overlay(UNIFORM_LAYER) + + if(istype(w_uniform, /obj/item/clothing/under)) + var/obj/item/clothing/under/U = w_uniform if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) w_uniform.screen_loc = ui_iclothing client.screen += w_uniform - overlays -= overlays_lying[UNIFORM_LAYER] - overlays -= overlays_standing[UNIFORM_LAYER] + var/t_color = w_uniform.color if(!t_color) t_color = icon_state - var/image/lying = image("icon_state" = "[t_color]_l", "layer" = -UNIFORM_LAYER) - var/image/standing = image("icon_state" = "[t_color]_s", "layer" = -UNIFORM_LAYER) - - if(FAT in mutations) - if(w_uniform.flags&ONESIZEFITSALL) - lying.icon = 'icons/mob/uniform_fat.dmi' - standing.icon = 'icons/mob/uniform_fat.dmi' - else - src << "\red You burst out of \the [w_uniform]!" - drop_from_inventory(w_uniform) - return - else - lying.icon = 'icons/mob/uniform.dmi' - standing.icon = 'icons/mob/uniform.dmi' - + var/image/lying = image("icon" = 'icons/mob/uniform.dmi', "icon_state" = "[t_color]_l", "layer" = -UNIFORM_LAYER) + var/image/standing = image("icon" = 'icons/mob/uniform.dmi', "icon_state" = "[t_color]_s", "layer" = -UNIFORM_LAYER) + overlays_lying[UNIFORM_LAYER] = lying + overlays_standing[UNIFORM_LAYER] = standing + if(w_uniform.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood") - - if(w_uniform:hastie) //WE CHECKED THE TYPE ABOVE. THIS REALLY SHOULD BE FINE. - var/tie_color = w_uniform:hastie.color - if(!tie_color) tie_color = w_uniform:hastie.icon_state + + if(U.hastie) + var/tie_color = U.hastie.color + if(!tie_color) tie_color = U.hastie.icon_state lying.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]2") standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]") - - overlays_lying[UNIFORM_LAYER] = lying - overlays_standing[UNIFORM_LAYER] = standing - if (src.lying) - overlays += overlays_lying[UNIFORM_LAYER] - else - overlays += overlays_standing[UNIFORM_LAYER] else - overlays -= overlays_lying[UNIFORM_LAYER] - overlays -= overlays_standing[UNIFORM_LAYER] - overlays_lying[UNIFORM_LAYER] = null - overlays_standing[UNIFORM_LAYER] = null // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY - for( var/obj/item/thing in list(r_store, l_store, wear_id, belt) ) // - if(thing) // - u_equip(thing) // - if (client) // - client.screen -= thing // - // - if (thing) // - thing.loc = loc // - thing.dropped(src) // - thing.layer = initial(thing.layer) + for(var/obj/item/thing in list(r_store, l_store, wear_id, belt)) // + drop_from_inventory(thing) + + apply_overlay(UNIFORM_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_wear_id(var/update_icons=1) +/mob/living/carbon/human/update_inv_wear_id(update_icons=0) + remove_overlay(ID_LAYER) if(wear_id) if(client && hud_used && hud_used.hud_shown) wear_id.screen_loc = ui_id //TODO client.screen += wear_id - overlays -= overlays_lying[ID_LAYER] - overlays -= overlays_standing[ID_LAYER] + overlays_lying[ID_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id2", "layer" = -ID_LAYER) overlays_standing[ID_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id", "layer" = -ID_LAYER) - if (src.lying) - overlays += overlays_lying[ID_LAYER] - else - overlays += overlays_standing[ID_LAYER] - else - overlays -= overlays_lying[ID_LAYER] - overlays -= overlays_standing[ID_LAYER] - overlays_lying[ID_LAYER] = null - overlays_standing[ID_LAYER] = null + + apply_overlay(ID_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_gloves(var/update_icons=1) +/mob/living/carbon/human/update_inv_gloves(update_icons=0) + remove_overlay(GLOVES_LAYER) if(gloves) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) gloves.screen_loc = ui_gloves client.screen += gloves - overlays -= overlays_lying[GLOVES_LAYER] - overlays -= overlays_standing[GLOVES_LAYER] + var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state var/image/lying = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]2", "layer" = -GLOVES_LAYER) var/image/standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]", "layer" = -GLOVES_LAYER) + overlays_lying[GLOVES_LAYER] = lying + overlays_standing[GLOVES_LAYER] = standing + if(gloves.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands") - overlays_lying[GLOVES_LAYER] = lying - overlays_standing[GLOVES_LAYER] = standing - if (src.lying) - overlays += overlays_lying[GLOVES_LAYER] - else - overlays += overlays_standing[GLOVES_LAYER] else if(blood_DNA) overlays_lying[GLOVES_LAYER] = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands2") overlays_standing[GLOVES_LAYER] = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands") - else - overlays -= overlays_lying[GLOVES_LAYER] - overlays -= overlays_standing[GLOVES_LAYER] - overlays_lying[GLOVES_LAYER] = null - overlays_standing[GLOVES_LAYER] = null + + apply_overlay(GLOVES_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_glasses(var/update_icons=1) +/mob/living/carbon/human/update_inv_glasses(update_icons=0) + remove_overlay(GLASSES_LAYER) + if(glasses) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) glasses.screen_loc = ui_glasses client.screen += glasses - overlays -= overlays_lying[GLASSES_LAYER] - overlays -= overlays_standing[GLASSES_LAYER] + overlays_lying[GLASSES_LAYER] = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]2", "layer" = -GLASSES_LAYER) overlays_standing[GLASSES_LAYER] = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]", "layer" = -GLASSES_LAYER) - if (src.lying) - overlays += overlays_lying[GLASSES_LAYER] - else - overlays += overlays_standing[GLASSES_LAYER] - else - overlays -= overlays_lying[GLASSES_LAYER] - overlays -= overlays_standing[GLASSES_LAYER] - overlays_lying[GLASSES_LAYER] = null - overlays_standing[GLASSES_LAYER] = null + + apply_overlay(GLASSES_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_ears(var/update_icons=1) +/mob/living/carbon/human/update_inv_ears(update_icons=0) + remove_overlay(EARS_LAYER) + if(ears) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) ears.screen_loc = ui_ears client.screen += ears - overlays -= overlays_lying[EARS_LAYER] - overlays -= overlays_standing[EARS_LAYER] + overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]2", "layer" = -EARS_LAYER) overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]", "layer" = -EARS_LAYER) - if (src.lying) - overlays += overlays_lying[EARS_LAYER] - else - overlays += overlays_standing[EARS_LAYER] - else - overlays -= overlays_lying[EARS_LAYER] - overlays -= overlays_standing[EARS_LAYER] - overlays_lying[EARS_LAYER] = null - overlays_standing[EARS_LAYER] = null + + apply_overlay(EARS_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_shoes(var/update_icons=1) +/mob/living/carbon/human/update_inv_shoes(update_icons=0) + remove_overlay(SHOES_LAYER) + if(shoes) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) shoes.screen_loc = ui_shoes client.screen += shoes + var/image/lying = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]2", "layer" = -SHOES_LAYER) var/image/standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]", "layer" = -SHOES_LAYER) + overlays_lying[SHOES_LAYER] = lying + overlays_standing[SHOES_LAYER] = standing + if(shoes.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood") - overlays -= overlays_lying[SHOES_LAYER] - overlays -= overlays_standing[SHOES_LAYER] - overlays_lying[SHOES_LAYER] = lying - overlays_standing[SHOES_LAYER] = standing - if (src.lying) - overlays += overlays_lying[SHOES_LAYER] - else - overlays += overlays_standing[SHOES_LAYER] - else - overlays -= overlays_lying[SHOES_LAYER] - overlays -= overlays_standing[SHOES_LAYER] - overlays_lying[SHOES_LAYER] = null - overlays_standing[SHOES_LAYER] = null + + apply_overlay(SHOES_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_s_store(var/update_icons=1) +/mob/living/carbon/human/update_inv_s_store(update_icons=0) + remove_overlay(SUIT_STORE_LAYER) + if(s_store) if(client && hud_used && hud_used.hud_shown) s_store.screen_loc = ui_sstore1 //TODO client.screen += s_store - overlays -= overlays_lying[SUIT_STORE_LAYER] - overlays -= overlays_standing[SUIT_STORE_LAYER] + var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state overlays_lying[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]2", "layer" = -SUIT_STORE_LAYER) overlays_standing[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]", "layer" = -SUIT_STORE_LAYER) - if (src.lying) - overlays += overlays_lying[SUIT_STORE_LAYER] - else - overlays += overlays_standing[SUIT_STORE_LAYER] - else - overlays -= overlays_lying[SUIT_STORE_LAYER] - overlays -= overlays_standing[SUIT_STORE_LAYER] - overlays_lying[SUIT_STORE_LAYER] = null - overlays_standing[SUIT_STORE_LAYER] = null + + apply_overlay(SUIT_STORE_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_head(var/update_icons=1) +/mob/living/carbon/human/update_inv_head(update_icons=0) + remove_overlay(HEAD_LAYER) + if(head) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) head.screen_loc = ui_head //TODO client.screen += head - overlays -= overlays_lying[HEAD_LAYER] - overlays -= overlays_standing[HEAD_LAYER] + var/image/lying var/image/standing if(istype(head,/obj/item/clothing/head/kitty)) - lying = image("icon" = head:mob2, "layer" = -HEAD_LAYER) - standing = image("icon" = head:mob, "layer" = -HEAD_LAYER) + var/obj/item/clothing/head/kitty/K = head + lying = image("icon" = K.mob2, "layer" = -HEAD_LAYER) + standing = image("icon" = K.mob, "layer" = -HEAD_LAYER) else lying = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]2", "layer" = -HEAD_LAYER) standing = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]", "layer" = -HEAD_LAYER) + overlays_lying[HEAD_LAYER] = lying + overlays_standing[HEAD_LAYER] = standing + if(head.blood_DNA) lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood2") standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood") - overlays_lying[HEAD_LAYER] = lying - overlays_standing[HEAD_LAYER] = standing - if (src.lying) - overlays += overlays_lying[HEAD_LAYER] - else - overlays += overlays_standing[HEAD_LAYER] - else - overlays -= overlays_lying[HEAD_LAYER] - overlays -= overlays_standing[HEAD_LAYER] - overlays_lying[HEAD_LAYER] = null - overlays_standing[HEAD_LAYER] = null + + apply_overlay(HEAD_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_belt(var/update_icons=1) +/mob/living/carbon/human/update_inv_belt(update_icons=0) + remove_overlay(BELT_LAYER) + if(belt) if(client && hud_used && hud_used.hud_shown) - belt.screen_loc = ui_belt //TODO + belt.screen_loc = ui_belt client.screen += belt - overlays -= overlays_lying[BELT_LAYER] - overlays -= overlays_standing[BELT_LAYER] + var/t_state = belt.item_state if(!t_state) t_state = belt.icon_state overlays_lying[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]2", "layer" = -BELT_LAYER) overlays_standing[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]", "layer" = -BELT_LAYER) - if (src.lying) - overlays += overlays_lying[BELT_LAYER] - else - overlays += overlays_standing[BELT_LAYER] - else - overlays -= overlays_lying[BELT_LAYER] - overlays -= overlays_standing[BELT_LAYER] - overlays_lying[BELT_LAYER] = null - overlays_standing[BELT_LAYER] = null + + apply_overlay(BELT_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_wear_suit(var/update_icons=1) - if( wear_suit && istype(wear_suit, /obj/item/clothing/suit) ) //TODO check this +/mob/living/carbon/human/update_inv_wear_suit(update_icons=0) + remove_overlay(SUIT_LAYER) + + if(istype(wear_suit, /obj/item/clothing/suit)) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) wear_suit.screen_loc = ui_oclothing //TODO client.screen += wear_suit - overlays -= overlays_lying[SUIT_LAYER] - overlays -= overlays_standing[SUIT_LAYER] + var/image/lying = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]2", "layer" = -SUIT_LAYER) var/image/standing = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]", "layer" = -SUIT_LAYER) - - if(FAT in mutations) - if(!wear_suit.flags&ONESIZEFITSALL) - src << "\red You burst out of \the [wear_suit]!" - var/obj/item/clothing/c = wear_suit - wear_suit = null - if(client) - client.screen -= c - c.loc = loc - c.dropped(src) - c.layer = initial(c.layer) - lying = null - standing = null - - else - if( istype(wear_suit, /obj/item/clothing/suit/straight_jacket) ) - drop_from_inventory(handcuffed) - drop_l_hand() - drop_r_hand() - - if(wear_suit.blood_DNA) - var/obj/item/clothing/suit/S = wear_suit - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood") - overlays_lying[SUIT_LAYER] = lying overlays_standing[SUIT_LAYER] = standing - if (src.lying) - overlays += overlays_lying[SUIT_LAYER] - else - overlays += overlays_standing[SUIT_LAYER] - else - overlays -= overlays_lying[SUIT_LAYER] - overlays -= overlays_standing[SUIT_LAYER] - overlays_lying[SUIT_LAYER] = null - overlays_standing[SUIT_LAYER] = null + + if(istype(wear_suit, /obj/item/clothing/suit/straight_jacket)) + drop_from_inventory(handcuffed) + drop_l_hand() + drop_r_hand() + + if(wear_suit.blood_DNA) + var/obj/item/clothing/suit/S = wear_suit + lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood2") + standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood") + + apply_overlay(SUIT_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_pockets(var/update_icons=1) +/mob/living/carbon/human/update_inv_pockets(update_icons=0) if(l_store) if(client && hud_used && hud_used.hud_shown) l_store.screen_loc = ui_storage1 //TODO @@ -712,50 +589,39 @@ Please contact me on #coderbus IRC. ~Carn x if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_wear_mask(var/update_icons=1) - if( wear_mask && istype(wear_mask, /obj/item/clothing/mask) ) +/mob/living/carbon/human/update_inv_wear_mask(update_icons=0) + remove_overlay(FACEMASK_LAYER) + + if(istype(wear_mask, /obj/item/clothing/mask)) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) wear_mask.screen_loc = ui_mask //TODO client.screen += wear_mask - overlays -= overlays_lying[FACEMASK_LAYER] - overlays -= overlays_standing[FACEMASK_LAYER] + var/image/lying = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]2", "layer" = -FACEMASK_LAYER) var/image/standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]", "layer" = -FACEMASK_LAYER) - if( !istype(wear_mask, /obj/item/clothing/mask/cigarette) && wear_mask.blood_DNA ) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") overlays_lying[FACEMASK_LAYER] = lying overlays_standing[FACEMASK_LAYER] = standing - if (src.lying) - overlays += overlays_lying[FACEMASK_LAYER] - else - overlays += overlays_standing[FACEMASK_LAYER] - else - overlays -= overlays_lying[FACEMASK_LAYER] - overlays -= overlays_standing[FACEMASK_LAYER] - overlays_lying[FACEMASK_LAYER] = null - overlays_standing[FACEMASK_LAYER] = null + + if(wear_mask.blood_DNA && !istype(wear_mask, /obj/item/clothing/mask/cigarette)) + lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood2") + standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") + + apply_overlay(FACEMASK_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_back(var/update_icons=1) +/mob/living/carbon/human/update_inv_back(update_icons=0) + remove_overlay(BACK_LAYER) + if(back) if(client && hud_used && hud_used.hud_shown) back.screen_loc = ui_back //TODO client.screen += back - overlays -= overlays_lying[BACK_LAYER] - overlays -= overlays_standing[BACK_LAYER] + overlays_lying[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]2", "layer" = -BACK_LAYER) overlays_standing[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]", "layer" = -BACK_LAYER) - if (src.lying) - overlays += overlays_lying[BACK_LAYER] - else - overlays += overlays_standing[BACK_LAYER] - else - overlays -= overlays_lying[BACK_LAYER] - overlays -= overlays_standing[BACK_LAYER] - overlays_lying[BACK_LAYER] = null - overlays_standing[BACK_LAYER] = null + + apply_overlay(BACK_LAYER) if(update_icons) update_icons() @@ -766,7 +632,9 @@ Please contact me on #coderbus IRC. ~Carn x hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar -/mob/living/carbon/human/update_inv_handcuffed(var/update_icons=1) +/mob/living/carbon/human/update_inv_handcuffed(update_icons=0) + remove_overlay(HANDCUFF_LAYER) + if(handcuffed) drop_r_hand() drop_l_hand() @@ -776,78 +644,66 @@ Please contact me on #coderbus IRC. ~Carn x var/obj/screen/inventory/L = hud_used.adding[4] R.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "markus") L.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "gabrielle") - overlays -= overlays_lying[HANDCUFF_LAYER] - overlays -= overlays_standing[HANDCUFF_LAYER] + overlays_lying[HANDCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "handcuff2", "layer" = -HANDCUFF_LAYER) overlays_standing[HANDCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "handcuff1", "layer" = -HANDCUFF_LAYER) - if(src.lying) - overlays += overlays_lying[HANDCUFF_LAYER] - else - overlays += overlays_standing[HANDCUFF_LAYER] else if(hud_used) var/obj/screen/inventory/R = hud_used.adding[3] var/obj/screen/inventory/L = hud_used.adding[4] R.overlays = null L.overlays = null - overlays -= overlays_lying[HANDCUFF_LAYER] - overlays -= overlays_standing[HANDCUFF_LAYER] - overlays_lying[HANDCUFF_LAYER] = null - overlays_standing[HANDCUFF_LAYER] = null + + apply_overlay(HANDCUFF_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_legcuffed(var/update_icons=1) +/mob/living/carbon/human/update_inv_legcuffed(update_icons=0) + remove_overlay(LEGCUFF_LAYER) + if(legcuffed) - overlays -= overlays_lying[LEGCUFF_LAYER] - overlays -= overlays_standing[LEGCUFF_LAYER] - overlays_lying[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff2", "layer" = -LEGCUFF_LAYER) - overlays_standing[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff1", "layer" = -LEGCUFF_LAYER) - if(src.lying) - overlays += overlays_lying[LEGCUFF_LAYER] - else - overlays += overlays_standing[LEGCUFF_LAYER] if(src.m_intent != "walk") src.m_intent = "walk" if(src.hud_used && src.hud_used.move_intent) src.hud_used.move_intent.icon_state = "walking" + + overlays_lying[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff2", "layer" = -LEGCUFF_LAYER) + overlays_standing[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff1", "layer" = -LEGCUFF_LAYER) - else - overlays -= overlays_lying[LEGCUFF_LAYER] - overlays -= overlays_standing[LEGCUFF_LAYER] - overlays_lying[LEGCUFF_LAYER] = null - overlays_standing[LEGCUFF_LAYER] = null + apply_overlay(LEGCUFF_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_r_hand(var/update_icons=1) +/mob/living/carbon/human/update_inv_r_hand(update_icons=0) + remove_overlay(R_HAND_LAYER) + if(r_hand) if(client) r_hand.screen_loc = ui_rhand //TODO client.screen += r_hand + var/t_state = r_hand.item_state if(!t_state) t_state = r_hand.icon_state - overlays -= overlays_standing[R_HAND_LAYER] + overlays_standing[R_HAND_LAYER] = image("icon" = 'icons/mob/items_righthand.dmi', "icon_state" = "[t_state]", "layer" = -R_HAND_LAYER) - overlays += overlays_standing[R_HAND_LAYER] - else - overlays -= overlays_standing[R_HAND_LAYER] - overlays_standing[R_HAND_LAYER] = null + + apply_overlay(R_HAND_LAYER) if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_l_hand(var/update_icons=1) +/mob/living/carbon/human/update_inv_l_hand(update_icons=0) + remove_overlay(L_HAND_LAYER) + if(l_hand) if(client) l_hand.screen_loc = ui_lhand //TODO client.screen += l_hand + var/t_state = l_hand.item_state if(!t_state) t_state = l_hand.icon_state - overlays -= overlays_standing[L_HAND_LAYER] + overlays_standing[L_HAND_LAYER] = image("icon" = 'icons/mob/items_lefthand.dmi', "icon_state" = "[t_state]", "layer" = -L_HAND_LAYER) - overlays += overlays_standing[L_HAND_LAYER] - else - overlays -= overlays_standing[L_HAND_LAYER] - overlays_standing[L_HAND_LAYER] = null + + apply_overlay(L_HAND_LAYER) if(update_icons) update_icons() //Human Overlays Indexes///////// diff --git a/code/modules/mob/living/carbon/monkey/monkey.dm b/code/modules/mob/living/carbon/monkey/monkey.dm index 1beac95ed93..88974b121ac 100644 --- a/code/modules/mob/living/carbon/monkey/monkey.dm +++ b/code/modules/mob/living/carbon/monkey/monkey.dm @@ -47,11 +47,6 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (HULK in tmob.mutations)) - if(prob(70)) - usr << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return if(!(tmob.status_flags & CANPUSH)) now_pushing = 0 return diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 78a2070aedc..2f513e5c0a4 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -327,11 +327,6 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(20)) - usr << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return if(!(tmob.status_flags & CANPUSH)) now_pushing = 0 return diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index e2ed726be3a..6e597ffbe1d 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -60,11 +60,6 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(5)) - src << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return if(!(tmob.status_flags & CANPUSH)) now_pushing = 0 return diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 5fb5eca6582..2f1d7af47df 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -326,11 +326,6 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(70)) - src << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return if(!(tmob.status_flags & CANPUSH)) now_pushing = 0 return diff --git a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm index 5d79c98fb6b..84d52743fac 100644 --- a/code/modules/mob/living/simple_animal/friendly/farm_animals.dm +++ b/code/modules/mob/living/simple_animal/friendly/farm_animals.dm @@ -140,7 +140,7 @@ var/list/responses = list( "[src] looks at you imploringly.", "[src] looks at you pleadingly", "[src] looks at you with a resigned expression.", - "[src] seems resigned to it's fate.") + "[src] seems resigned to its fate.") M << pick(responses) else ..() diff --git a/code/modules/mob/new_player/preferences_setup.dm b/code/modules/mob/new_player/preferences_setup.dm index d4447280d2a..7cfb72db6c3 100644 --- a/code/modules/mob/new_player/preferences_setup.dm +++ b/code/modules/mob/new_player/preferences_setup.dm @@ -6,7 +6,7 @@ datum/preferences else gender = pick(MALE,FEMALE) underwear = random_underwear(gender) - s_tone = random_skin_tone() + skin_tone = random_skin_tone() h_style = random_hair_style(gender) f_style = random_facial_hair_style(gender) h_color = random_short_color() @@ -23,10 +23,7 @@ datum/preferences var/g = "m" if(gender == FEMALE) g = "f" - preview_icon = new /icon('icons/mob/human.dmi', "body_[g]_s") - - // Skin tone - preview_icon.Blend("#[skin_tones[s_tone]]", ICON_MULTIPLY) + preview_icon = new /icon('icons/mob/human.dmi', "[skin_tone]_[g]_s") if(underwear) var/datum/sprite_accessory/underwear/U = underwear_all[underwear] diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi index 81b4308f1ceafeb0039f6cd113a1a390dbe9b7a7..89e9c05b78c99c49f516a7dc834ab349b9d34fdc 100644 GIT binary patch literal 55978 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 NFwiyDsnK%8{u>^rMkD|L literal 79865 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

    av*jt$`JoKvU9K@jKB;>=@c}_+W|VW{LT&L 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 diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index 2edfe8382e8fc67a1b37b0e264a69e533d17bafb..c80d270793375cccf6368adbd6f355f6cec6f086 100644 GIT binary patch literal 47395 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%0Ad3OKqJ$`{jf?2t|=l|C|vYyV$uRs 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 QLBNlKjH>ikDU*=@2dsmB_5c6? literal 11483 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 Date: Wed, 8 May 2013 15:13:12 -0400 Subject: [PATCH 16/62] Update to Sandbox Panel The panel itself has been updated with subcategories and additional options. The "air regulator" option was removed because what even does that mean. The Suit Up option has been fixed, and should work properly now. Additional items include an all-access ID, RCD, flashlight, light replacer, plasteel, cable, floorbot, medbot, gas mask, and emergency air tank. The hrefs var was moved out of global scope because that's a terrible place for something so generically named. The Spawn Item and Spawn Canister dialogs now use a browser window instead of a pick list. This window is cached per user. Sandbox's Spawn Airlock option gets a new interface. It allows you to pick the accesses of the new airlock, as well as its paintjob, name, glass inserts where appropriate, and an option to make the access list "require one" instead of "require all." It adds an airlock frame which can be repositioned; attack-hand-ing the airlock frame (if it has the airlock builder datum attached) will now open the window. An administrative option has been added to the sandbox panel, which is configurable through game_options.txt. Because the item spawning uses a persistent browser window, it is susceptible to spamming. The added option forces the window closed after each item is spawned. This only affects the item and canister selection windows, and not the whole sandbox panel. --- code/controllers/configuration.dm | 4 + code/game/gamemodes/sandbox/airlock_maker.dm | 138 ++++++++++ code/game/gamemodes/sandbox/h_sandbox.dm | 252 ++++++++++++------- config/game_options.txt | 9 +- tgstation.dme | 1 + 5 files changed, 318 insertions(+), 86 deletions(-) create mode 100644 code/game/gamemodes/sandbox/airlock_maker.dm diff --git a/code/controllers/configuration.dm b/code/controllers/configuration.dm index 37b13994707..d5e116a430d 100644 --- a/code/controllers/configuration.dm +++ b/code/controllers/configuration.dm @@ -108,6 +108,8 @@ var/silent_ai = 0 var/silent_borg = 0 + var/sandbox_autoclose = 0 // close the sandbox panel after spawning an item, potentially reducing griff + /datum/configuration/New() var/list/L = typesof(/datum/game_mode) - /datum/game_mode @@ -340,6 +342,8 @@ config.silent_ai = 1 if("silent_borg") config.silent_borg = 1 + if("sandbox_autoclose") + config.sandbox_autoclose = 1 else diary << "Unknown setting in configuration: '[name]'" diff --git a/code/game/gamemodes/sandbox/airlock_maker.dm b/code/game/gamemodes/sandbox/airlock_maker.dm new file mode 100644 index 00000000000..96854aa76d1 --- /dev/null +++ b/code/game/gamemodes/sandbox/airlock_maker.dm @@ -0,0 +1,138 @@ +/* + This is for the sandbox for now, + maybe useful later for an actual thing? + -Sayu +*/ + +obj/structure/door_assembly + var/datum/airlock_maker/maker = null + + attack_hand() + ..() + if(maker) + maker.interact() + +datum/airlock_maker + var/obj/structure/door_assembly/linked = null + + var/list/access_used = null + var/require_all = 1 + + var/paintjob = "none" + var/glassdoor = 0 + + var/doorname = "Airlock" + + New(var/atom/target_loc) + linked = new(target_loc) + linked.maker = src + linked.anchored = 0 + access_used = list() + + interact() + + proc/linkpretty(href,desc,active) + if(!desc) + var/static/list/defaults = list("No","Yes") + desc = defaults[active+1] + if(active) + return "[desc]" + return "[desc]" + + proc/interact() + var/list/leftcolumn = list() + var/list/rightcolumn = list() + leftcolumn += "Required Access" + for(var/access in get_all_accesses()) + leftcolumn += linkpretty("access=[access]",get_access_desc(access),access in access_used) + leftcolumn += "Require all listed accesses: [linkpretty("reqall",null,require_all)]" + + rightcolumn += "Paintjob" + for(var/option in list("none","engineering","atmos","security","command","medical","research","mining","maintenance","external","highsecurity")) + rightcolumn += linkpretty("paint=[option]",option,option == paintjob) + rightcolumn += "Glass door: " + linkpretty("glass",null,glassdoor) + "

    " + var/length = max(leftcolumn.len,rightcolumn.len) + + var/dat = "You may move the model airlock around. A new airlock will be built in its space when you click done, below.



    " + dat += "Door name: \"[doorname]\"" + dat += "" + for(var/i=1; i<=length; i++) + dat += "" + + dat += "
    " + if(i<=leftcolumn.len) + dat += leftcolumn[i] + dat += "" + if(i<=rightcolumn.len) + dat += rightcolumn[i] + dat += "

    Finalize Airlock Construction | Cancel and Destroy Airlock" + usr << browse(dat,"window=airlockmaker") + + Topic(var/href,var/list/href_list) + if(!usr) return + if(!src || !linked || !linked.loc) + usr << browse(null,"window=airlockmaker") + return + + if("rename" in href_list) + var/newname = input(usr,"New airlock name:","Name the airlock",doorname) as null|text + if(newname) + doorname = newname + if("access" in href_list) + var/value = text2num(href_list["access"]) + access_used ^= value + if("reqall" in href_list) + require_all = !require_all + if("paint" in href_list) + paintjob = href_list["paint"] + if("glass" in href_list) + glassdoor = !glassdoor + + if("cancel" in href_list) + usr << browse(null,"window=airlockmaker") + del linked + del src + return + + if("done" in href_list) + usr << browse(null,"window=airlockmaker") + var/turf/t_loc = linked.loc + del linked + if(!istype(t_loc)) + return + + var/target_type = "/obj/machinery/door/airlock" + if(glassdoor) + if(paintjob != "none") + if(paintjob in list("external","highsecurity")) // no glass version + target_type += "/[paintjob]" + else + target_type += "/glass_[paintjob]" + else + target_type += "/glass" + else if(paintjob != "none") + target_type += "/[paintjob]" + var/final = target_type + target_type = text2path(final) + if(!target_type) + usr << "Didn't work, contact Sayu with this: [final]" + usr << browse(null,"window=airlockmaker") + return + + var/obj/machinery/door/D = new target_type(t_loc) + + D.name = doorname + + if(access_used.len == 0) + D.req_access = null + D.req_one_access = null + else if(require_all) + D.req_access = access_used.Copy() + D.req_one_access = null + else + D.req_access = null + D.req_one_access = access_used.Copy() + + return + + interact() \ No newline at end of file diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 439befdc63a..88a6e368273 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -1,19 +1,6 @@ //This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 var/hsboxspawn = 1 -var/list - hrefs = list( - "hsbsuit" = "Suit Up (Space Travel Gear)", - "hsbmetal" = "Spawn 50 Metal", - "hsbglass" = "Spawn 50 Glass", - "hsbairlock" = "Spawn Airlock", - "hsbregulator" = "Spawn Air Regulator", - "hsbfilter" = "Spawn Air Filter", - "hsbcanister" = "Spawn Canister", - "hsbfueltank" = "Spawn Welding Fuel Tank", - "hsbwater tank" = "Spawn Water Tank", - "hsbtoolbox" = "Spawn Toolbox", - "hsbmedkit" = "Spawn Medical Kit") mob var/datum/hSB/sandbox = null @@ -26,128 +13,223 @@ mob sandbox.admin = 1 verbs += new/mob/proc/sandbox_panel sandbox_panel() + set name = "Sandbox Panel" if(sandbox) sandbox.update() datum/hSB var/owner = null var/admin = 0 + + var/objinfo = null + var/canisterinfo = null + var/hsbinfo = null + + var/global/list/spawn_forbidden = list(/obj/item/weapon/grab, /obj/item/tk_grab, /obj/item/weapon/dummy, /obj/item/assembly,/obj/item/device/onetankbomb) + proc update() - var/hsbpanel = "
    h_Sandbox Panel

    " - if(admin) - hsbpanel += "Administration Tools:
    " - hsbpanel += "- Toggle Object Spawning

    " - hsbpanel += "Regular Tools:
    " - for(var/T in hrefs) - hsbpanel += "- [hrefs[T]]
    " - if(hsboxspawn) - hsbpanel += "- Spawn Object

    " - usr << browse(hsbpanel, "window=hsbpanel") + var/global/list/hrefs = list( + "Space Gear", + "Suit Up (Space Travel Gear)" = "hsbsuit", + "Spawn Gas Mask" = "hsbspawn&path=[/obj/item/clothing/mask/gas]", + "Spawn Emergency Air Tank" = "hsbspawn&path=[/obj/item/weapon/tank/emergency_oxygen/double]", + + "Standard Tools", + "Spawn Flashlight" = "hsbspawn&path=[/obj/item/device/flashlight]", + "Spawn Toolbox" = "hsbspawn&path=[/obj/item/weapon/storage/toolbox/mechanical]", + "Spawn Light Replacer" = "hsbspawn&path=[/obj/item/device/lightreplacer]", + "Spawn Rapid Construction Device" = "hsbrcd", + "Spawn RCD Ammo" = "hsbspawn&path=[/obj/item/weapon/rcd_ammo]", + "Spawn Medical Kit" = "hsbspawn&path=[/obj/item/weapon/storage/firstaid/regular]", + "Spawn All-Access ID" = "hsbaaid", + + "Building Supplies", + "Spawn 50 Metal" = "hsbmetal", + "Spawn 50 Plasteel" = "hsbplasteel", + "Spawn 50 Glass" = "hsbglass", + "Spawn Full Cable Coil" = "hsbspawn&path=[/obj/item/weapon/cable_coil]", + "Spawn Hyper Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/cell/hyper]", + "Spawn Airlock" = "hsbairlock", + + "Miscellaneous", + "Spawn Air Scrubber" = "hsbspawn&path=[/obj/machinery/portable_atmospherics/scrubber]", + "Spawn Canister" = "hsbcanister", + "Spawn Welding Fuel Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/fueltank]", + "Spawn Water Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/watertank]", + + "Bots", + "Spawn Floorbot" = "hsbspawn&path=[/obj/machinery/bot/floorbot]", + "Spawn Medbot" = "hsbspawn&path=[/obj/machinery/bot/medbot]") + + if(!hsbinfo) + hsbinfo = "
    Sandbox Panel

    " + if(admin) + hsbinfo += "Administration
    " + hsbinfo += "- Toggle Object Spawning
    " + hsbinfo += "- Toggle Item Spawn Panel Auto-close
    " + for(var/T in hrefs) + var/href = hrefs[T] + if(href) + hsbinfo += "- [T]
    " + else + hsbinfo += "
    [T]
    " + if(hsboxspawn) + hsbinfo += "
    - Spawn Other Item

    " + + usr << browse(hsbinfo, "window=hsbpanel") + Topic(href, href_list) - if(!(src.owner == usr.ckey)) return - if(!usr) return //I guess this is possible if they log out or die with the panel open? It happened. + if(!usr || !src || !(src.owner == usr.ckey)) + if(usr) + usr << browse(null,"window=sandbox") + return + if(href_list["hsb"]) switch(href_list["hsb"]) + // + // Admin: toggle spawning + // if("hsbtobj") if(!admin) return if(hsboxspawn) - world << "Sandbox: [usr.key] has disabled object spawning!" + world << "\red Sandbox: \black[usr.key] has disabled object spawning!" hsboxspawn = 0 return - if(!hsboxspawn) - world << "Sandbox: [usr.key] has enabled object spawning!" + else + world << "\blue Sandbox: \black[usr.key] has enabled object spawning!" hsboxspawn = 1 return + // + // Admin: Toggle auto-close + // + if("hsbtac") + if(!admin) return + if(config.sandbox_autoclose) + world << "\blue Sandbox: \black [usr.key] has removed the object spawn limiter." + config.sandbox_autoclose = 0 + else + world << "\red Sandbox: \black [usr.key] has added a limiter to object spawning. The window will now auto-close after use." + config.sandbox_autoclose = 1 + return + + // + // Spacesuit with full air jetpack set as internals + // if("hsbsuit") var/mob/living/carbon/human/P = usr + if(!istype(P)) return if(P.wear_suit) P.wear_suit.loc = P.loc P.wear_suit.layer = initial(P.wear_suit.layer) P.wear_suit = null P.wear_suit = new/obj/item/clothing/suit/space(P) P.wear_suit.layer = 20 + P.update_inv_wear_suit() if(P.head) P.head.loc = P.loc P.head.layer = initial(P.head.layer) P.head = null P.head = new/obj/item/clothing/head/helmet/space(P) P.head.layer = 20 + P.update_inv_head() if(P.wear_mask) P.wear_mask.loc = P.loc P.wear_mask.layer = initial(P.wear_mask.layer) P.wear_mask = null P.wear_mask = new/obj/item/clothing/mask/gas(P) P.wear_mask.layer = 20 + P.update_inv_wear_mask() if(P.back) P.back.loc = P.loc P.back.layer = initial(P.back.layer) P.back = null - P.back = new/obj/item/weapon/tank/jetpack(P) + P.back = new/obj/item/weapon/tank/jetpack/oxygen(P) P.back.layer = 20 + P.update_inv_back() P.internal = P.back + if(P.internals) + P.internals.icon_state = "internal1" + if("hsbmetal") - var/obj/item/stack/sheet/hsb = new/obj/item/stack/sheet/metal - hsb.amount = 50 - hsb.loc = usr.loc + new/obj/item/stack/sheet/metal{amount=50}(usr.loc) + + if("hsbplasteel") + new/obj/item/stack/sheet/plasteel{amount=50}(usr.loc) + if("hsbglass") - var/obj/item/stack/sheet/hsb = new/obj/item/stack/sheet/glass - hsb.amount = 50 - hsb.loc = usr.loc + new/obj/item/stack/sheet/glass{amount=50}(usr.loc) + + if("hsbaaid") + var/obj/item/weapon/card/id/gold/ID = new(usr.loc) + ID.registered_name = usr.real_name + ID.assignment = "Sandbox" + ID.access = get_all_accesses() + + if("hsbrcd") + new/obj/item/weapon/rcd{matter=30;canRwall=1}(usr.loc) + + // + // New sandbox airlock maker + // if("hsbairlock") - var/obj/machinery/door/hsb = new/obj/machinery/door/airlock + new /datum/airlock_maker(usr.loc) - //TODO: DEFERRED make this better, with an HTML window or something instead of 15 popups - hsb.req_access = list() - var/accesses = get_all_accesses() - for(var/A in accesses) - if(alert(usr, "Will this airlock require [get_access_desc(A)] access?", "Sandbox:", "Yes", "No") == "Yes") - hsb.req_access += A - - hsb.loc = usr.loc - usr << "Sandbox: Created an airlock." + // + // Canister select window + // if("hsbcanister") - var/list/hsbcanisters = typesof(/obj/machinery/portable_atmospherics/canister/) - /obj/machinery/portable_atmospherics/canister/ - var/hsbcanister = input(usr, "Choose a canister to spawn.", "Sandbox:") in hsbcanisters + "Cancel" - if(!(hsbcanister == "Cancel")) - new hsbcanister(usr.loc) - if("hsbfueltank") - //var/obj/hsb = new/obj/weldfueltank - //hsb.loc = usr.loc - if("hsbwatertank") - //var/obj/hsb = new/obj/watertank - //hsb.loc = usr.loc - if("hsbtoolbox") - var/obj/item/weapon/storage/hsb = new/obj/item/weapon/storage/toolbox/mechanical - for(var/obj/item/device/radio/T in hsb) - del(T) - new/obj/item/weapon/crowbar (hsb) - hsb.loc = usr.loc - if("hsbmedkit") - var/obj/item/weapon/storage/firstaid/hsb = new/obj/item/weapon/storage/firstaid/regular - hsb.loc = usr.loc + if(!canisterinfo) + canisterinfo = "Choose a canister type:
    " + for(var/O in (typesof(/obj/machinery/portable_atmospherics/canister/) - /obj/machinery/portable_atmospherics/canister/)) + canisterinfo += "[O]
    " + usr << browse(canisterinfo,"window=sandbox") + + // + // Object spawn window + // if("hsbobj") if(!hsboxspawn) return - var/list/selectable = list() - for(var/O in typesof(/obj/item/)) - //Note, these istypes don't work - if(istype(O, /obj/item/weapon/gun)) - continue - if(istype(O, /obj/item/assembly)) - continue - if(istype(O, /obj/item/device/camera)) - continue - if(istype(O, /obj/item/weapon/cloaking_device)) - continue - if(istype(O, /obj/item/weapon/dummy)) - continue - if(istype(O, /obj/item/weapon/melee/energy/sword)) - continue - if(istype(O, /obj/structure)) - continue - selectable += O + if(!objinfo) + objinfo = "Items:

    " + for(var/O in reverselist(typesof(/obj/item/))) + var/allow = 1 + for(var/typekey in spawn_forbidden) + if(ispath(O,typekey)) + allow = 0 + break + if(!allow) + continue + objinfo += "[O]
    " - var/hsbitem = input(usr, "Choose an object to spawn.", "Sandbox:") in selectable + "Cancel" - if(hsbitem != "Cancel") - new hsbitem(usr.loc) + usr << browse(objinfo,"window=sandbox") + + // + // For the object spawn specifically, checks to see if it is turned off + // + if("hsb_safespawn") + if(!hsboxspawn) + usr << browse(null,"window=sandbox") + return + + var/typepath = text2path(href_list["path"]) + if(!typepath) + usr << "Bad path: \"[href_list["path"]]\"" + return + new typepath(usr.loc) + + if(config.sandbox_autoclose) + usr << browse(null,"window=sandbox") + // + // For everything else in the href list + // + if("hsbspawn") + var/typepath = text2path(href_list["path"]) + if(!typepath) + usr << "Bad path: \"[href_list["path"]]\"" + return + new typepath(usr.loc) + + if(config.sandbox_autoclose) + usr << browse(null,"window=sandbox") diff --git a/config/game_options.txt b/config/game_options.txt index bb6b3eace9e..0eab68d60c3 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -141,4 +141,11 @@ JOBS_HAVE_MINIMAL_ACCESS ### NON-VOCAL SILICONS ### ## Uncomment to stop the AI, or cyborgs, from having vocal communication. #SILENT_AI -#SILENT_BORG \ No newline at end of file +#SILENT_BORG + +### SANDBOX PANEL AUTOCLOSE ### +## The sandbox panel's item spawning dialog now stays open even after you click an option. +## If you find that your players are abusing the sandbox panel, this option may slow them down +## without preventing people from using it properly. +## Only functions in sandbox game mode. +#SANDBOX_AUTOCLOSE \ No newline at end of file diff --git a/tgstation.dme b/tgstation.dme index b4d0e7df24d..71f177a9e28 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -220,6 +220,7 @@ #include "code\game\gamemodes\nuclear\nuclearbomb.dm" #include "code\game\gamemodes\nuclear\pinpointer.dm" #include "code\game\gamemodes\revolution\revolution.dm" +#include "code\game\gamemodes\sandbox\airlock_maker.dm" #include "code\game\gamemodes\sandbox\h_sandbox.dm" #include "code\game\gamemodes\sandbox\sandbox.dm" #include "code\game\gamemodes\traitor\traitor.dm" From 133921f3482230a52fc7b24aa5f82672fd48b540 Mon Sep 17 00:00:00 2001 From: supersayu Date: Wed, 8 May 2013 16:05:38 -0400 Subject: [PATCH 17/62] Makes the scrubber spawn "on", with a higher pressure intake, in case it is needed. Makes the spawned ID display the appropriate name and rank. --- code/game/gamemodes/sandbox/h_sandbox.dm | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index 88a6e368273..db05e0a9cec 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -53,7 +53,7 @@ datum/hSB "Spawn Airlock" = "hsbairlock", "Miscellaneous", - "Spawn Air Scrubber" = "hsbspawn&path=[/obj/machinery/portable_atmospherics/scrubber]", + "Spawn Air Scrubber" = "hsbscrubber", "Spawn Canister" = "hsbcanister", "Spawn Welding Fuel Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/fueltank]", "Spawn Water Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/watertank]", @@ -151,6 +151,10 @@ datum/hSB if(P.internals) P.internals.icon_state = "internal1" + if("hsbscrubber") // This is beyond its normal capability but this is sandbox and you spawned one, I assume you need it + var/obj/hsb = new/obj/machinery/portable_atmospherics/scrubber{volume_rate=50*ONE_ATMOSPHERE;on=1}(usr.loc) + hsb.update_icon() // hackish but it wasn't meant to be spawned I guess? + if("hsbmetal") new/obj/item/stack/sheet/metal{amount=50}(usr.loc) @@ -165,6 +169,7 @@ datum/hSB ID.registered_name = usr.real_name ID.assignment = "Sandbox" ID.access = get_all_accesses() + ID.name = "[ID.registered_name]'s ID Card ([ID.assignment])" if("hsbrcd") new/obj/item/weapon/rcd{matter=30;canRwall=1}(usr.loc) From b92dff68c3c2976b1c1a13973c3a699894104cc9 Mon Sep 17 00:00:00 2001 From: supersayu Date: Wed, 8 May 2013 16:56:52 -0400 Subject: [PATCH 18/62] Corgi Inventory Update * Removing items works again * Item duplication bug for non-accepted items fixed * Corgi inventory refreshes correctly * When a corgi rejects a head or body item, it will drop in their square (You put X on Y, but they shake it off!) * Descriptive texts improved * Plastic Explosives can be planted on the corgi through the inventory window --- .../living/simple_animal/friendly/corgi.dm | 172 +++++++++++------- 1 file changed, 102 insertions(+), 70 deletions(-) diff --git a/code/modules/mob/living/simple_animal/friendly/corgi.dm b/code/modules/mob/living/simple_animal/friendly/corgi.dm index 5fb5eca6582..09f3c337a02 100644 --- a/code/modules/mob/living/simple_animal/friendly/corgi.dm +++ b/code/modules/mob/living/simple_animal/friendly/corgi.dm @@ -40,7 +40,7 @@ else dat += "
    Back: Nothing" - user << browse(dat, text("window=mob[];size=325x500", name)) + user << browse(dat, text("window=mob[];size=325x500", real_name)) onclose(user, "mob[real_name]") return @@ -82,6 +82,7 @@ SetLuminosity(0) inventory_head.loc = src.loc inventory_head = null + regenerate_icons() else usr << "\red There is nothing to remove from its [remove_from]." return @@ -89,76 +90,23 @@ if(inventory_back) inventory_back.loc = src.loc inventory_back = null + regenerate_icons() else usr << "\red There is nothing to remove from its [remove_from]." return - //show_inv(usr) //Commented out because changing Ian's name and then calling up his inventory opens a new inventory...which is annoying. + show_inv(usr) //Adding things to inventory else if(href_list["add_inv"]) if(get_dist(src,usr) > 1 || !(ishuman(usr) || ismonkey(usr) || isrobot(usr) || isalienadult(usr))) return + var/add_to = href_list["add_inv"] - if(!usr.get_active_hand()) - usr << "\red You have nothing in your hand to put on its [add_to]." - return + switch(add_to) if("head") - if(inventory_head) - usr << "\red It's is already wearing something." - return - else - place_on_head(usr.get_active_hand()) - - var/obj/item/item_to_add = usr.get_active_hand() - if(!item_to_add) - return - - //Corgis are supposed to be simpler, so only a select few objects can actually be put - //to be compatible with them. The objects are below. - //Many hats added, Some will probably be removed, just want to see which ones are popular. - - var/list/allowed_types = list( - /obj/item/clothing/head/helmet, - /obj/item/clothing/glasses/sunglasses, - /obj/item/clothing/head/caphat, - /obj/item/clothing/head/collectable/captain, - /obj/item/clothing/head/that, - /obj/item/clothing/head/that, - /obj/item/clothing/head/kitty, - /obj/item/clothing/head/collectable/kitty, - /obj/item/clothing/head/rabbitears, - /obj/item/clothing/head/collectable/rabbitears, - /obj/item/clothing/head/beret, - /obj/item/clothing/head/collectable/beret, - /obj/item/clothing/head/det_hat, - /obj/item/clothing/head/nursehat, - /obj/item/clothing/head/pirate, - /obj/item/clothing/head/collectable/pirate, - /obj/item/clothing/head/ushanka, - /obj/item/clothing/head/chefhat, - /obj/item/clothing/head/collectable/chef, - /obj/item/clothing/head/collectable/police, - /obj/item/clothing/head/wizard/fake, - /obj/item/clothing/head/wizard, - /obj/item/clothing/head/collectable/wizard, - /obj/item/clothing/head/hardhat, - /obj/item/clothing/head/collectable/hardhat, - /obj/item/clothing/head/hardhat/white, - /obj/item/weapon/bedsheet, - /obj/item/clothing/head/helmet/space/santahat, - /obj/item/clothing/head/collectable/paper, - /obj/item/clothing/head/soft - ) - - if( ! ( item_to_add.type in allowed_types ) ) - usr << "\red It doesn't seem too keen on wearing that item." - return - - usr.drop_item() - - place_on_head(item_to_add) + place_on_head(usr.get_active_hand()) if("back") if(inventory_back) @@ -166,7 +114,12 @@ return else var/obj/item/item_to_add = usr.get_active_hand() + if(!item_to_add) + usr.visible_message("\blue [usr] pets [src]","\blue You rest your hand on [src]'s back for a moment.") + return + if(istype(item_to_add,/obj/item/weapon/plastique)) // last thing he ever wears, I guess + item_to_add.afterattack(src,usr,1) return //Corgis are supposed to be simpler, so only a select few objects can actually be put @@ -178,7 +131,14 @@ ) if( ! ( item_to_add.type in allowed_types ) ) - usr << "\red This object won't fit." + usr << "You set [item_to_add] on [src]'s back, but \he shakes it off!" + usr.drop_item() + item_to_add.loc = loc + if(prob(25)) + step_rand(item_to_add) + for(var/i in list(1,2,4,8,4,8,4,dir)) + dir = i + sleep(1) return usr.drop_item() @@ -186,73 +146,147 @@ src.inventory_back = item_to_add regenerate_icons() - //show_inv(usr) //Commented out because changing Ian's name and then calling up his inventory opens a new inventory...which is annoying. + show_inv(usr) else ..() +//Corgis are supposed to be simpler, so only a select few objects can actually be put +//to be compatible with them. The objects are below. +//Many hats added, Some will probably be removed, just want to see which ones are popular. /mob/living/simple_animal/corgi/proc/place_on_head(obj/item/item_to_add) - item_to_add.loc = src - src.inventory_head = item_to_add - regenerate_icons() - //Various hats and items (worn on his head) change Ian's behaviour. His attributes are reset when a HAT is removed. - switch(inventory_head && inventory_head.type) + if(istype(item_to_add,/obj/item/weapon/plastique)) // last thing he ever wears, I guess + item_to_add.afterattack(src,usr,1) + return + + if(inventory_head) + usr << "\red You can't put more than one hat on [src]!" + return + if(!item_to_add) + usr.visible_message("\blue [usr] pets [src]","\blue You rest your hand on [src]'s head for a moment.") + return + + + var/valid = 0 + + //Various hats and items (worn on his head) change Ian's behaviour. His attributes are reset when a hat is removed. + switch(item_to_add.type) + if( /obj/item/clothing/glasses/sunglasses, /obj/item/clothing/head/that, /obj/item/clothing/head/collectable/paper, + /obj/item/clothing/head/hardhat, /obj/item/clothing/head/collectable/hardhat,/obj/item/clothing/head/hardhat/white, /obj/item/weapon/paper ) + valid = 1 + + if(/obj/item/clothing/head/helmet) + name = "Sergeant [real_name]" + desc = "The ever-loyal, the ever-vigilant." + valid = 1 + + if(/obj/item/clothing/head/chefhat, /obj/item/clothing/head/collectable/chef) + name = "Sous chef [real_name]" + desc = "Your food will be taste-tested. All of it." + valid = 1 + if(/obj/item/clothing/head/caphat, /obj/item/clothing/head/collectable/captain) name = "Captain [real_name]" desc = "Probably better than the last captain." + valid = 1 + if(/obj/item/clothing/head/kitty, /obj/item/clothing/head/collectable/kitty) name = "Runtime" emote_see = list("coughs up a furball", "stretches") emote_hear = list("purrs") speak = list("Purrr", "Meow!", "MAOOOOOW!", "HISSSSS", "MEEEEEEW") desc = "It's a cute little kitty-cat! ... wait ... what the hell?" + valid = 1 + if(/obj/item/clothing/head/rabbitears, /obj/item/clothing/head/collectable/rabbitears) name = "Hoppy" emote_see = list("twitches its nose", "hops around a bit") desc = "This is hoppy. It's a corgi-...urmm... bunny rabbit" + valid = 1 + if(/obj/item/clothing/head/beret, /obj/item/clothing/head/collectable/beret) name = "Yann" desc = "Mon dieu! C'est un chien!" speak = list("le woof!", "le bark!", "JAPPE!!") emote_see = list("cowers in fear", "surrenders", "plays dead","looks as though there is a wall in front of him") + valid = 1 + if(/obj/item/clothing/head/det_hat) name = "Detective [real_name]" desc = "[name] sees through your lies..." emote_see = list("investigates the area","sniffs around for clues","searches for scooby snacks") + valid = 1 + if(/obj/item/clothing/head/nursehat) name = "Nurse [real_name]" desc = "[name] needs 100cc of beef jerky...STAT!" + valid = 1 + if(/obj/item/clothing/head/pirate, /obj/item/clothing/head/collectable/pirate) name = "[pick("Ol'","Scurvy","Black","Rum","Gammy","Bloody","Gangrene","Death","Long-John")] [pick("kibble","leg","beard","tooth","poop-deck","Threepwood","Le Chuck","corsair","Silver","Crusoe")]" desc = "Yaarghh!! Thar' be a scurvy dog!" emote_see = list("hunts for treasure","stares coldly...","gnashes his tiny corgi teeth") emote_hear = list("growls ferociously", "snarls") speak = list("Arrrrgh!!","Grrrrrr!") + valid = 1 + if(/obj/item/clothing/head/ushanka) name = "[pick("Comrade","Commissar","Glorious Leader")] [real_name]" desc = "A follower of Karl Barx." emote_see = list("contemplates the failings of the capitalist economic model", "ponders the pros and cons of vangaurdism") + valid = 1 + if(/obj/item/clothing/head/collectable/police) name = "Officer [real_name]" emote_see = list("drools","looks for donuts") desc = "Stop right there criminal scum!" + valid = 1 + if(/obj/item/clothing/head/wizard/fake, /obj/item/clothing/head/wizard, /obj/item/clothing/head/collectable/wizard) name = "Grandwizard [real_name]" speak = list("YAP", "Woof!", "Bark!", "AUUUUUU", "EI NATH!") + valid = 1 + if(/obj/item/weapon/bedsheet) name = "\improper Ghost" speak = list("WoooOOOooo~","AUUUUUUUUUUUUUUUUUU") emote_see = list("stumbles around", "shivers") emote_hear = list("howls","groans") desc = "Spooky!" + valid = 1 + if(/obj/item/clothing/head/helmet/space/santahat) name = "Rudolph the Red-Nosed Corgi" emote_hear = list("barks christmas songs", "yaps") desc = "He has a very shiny nose." SetLuminosity(4) + valid = 1 + if(/obj/item/clothing/head/soft) name = "Corgi Tech [real_name]" desc = "The reason your yellow gloves have chew-marks." + valid = 1 + + if(valid) + usr.visible_message("[usr] puts [item_to_add] on [real_name]'s head. [src] looks at [usr] and barks once.", + "You put [item_to_add] on [real_name]'s head. [src] gives you a peculiar look, then wags \his tail once and barks.", + "You hear a friendly-sounding bark.") + usr.drop_item() + item_to_add.loc = src + src.inventory_head = item_to_add + regenerate_icons() + + else + usr << "You set [item_to_add] on [src]'s head, but \he shakes it off!" + usr.drop_item() + item_to_add.loc = loc + if(prob(25)) + step_rand(item_to_add) + for(var/i in list(1,2,4,8,4,8,4,dir)) + dir = i + sleep(1) + + return valid //IAN! SQUEEEEEEEEE~ @@ -309,7 +343,7 @@ movement_target.attack_animal(src) else if(ishuman(movement_target.loc) ) if(prob(20)) - emote("stares at the [movement_target] that [movement_target.loc] has with a sad puppy-face") + emote("stares at [movement_target.loc]'s [movement_target] with a sad puppy-face") if(prob(1)) emote(pick("dances around","chases its tail")) @@ -358,9 +392,7 @@ /mob/living/simple_animal/corgi/attackby(var/obj/item/O as obj, var/mob/user as mob) //Marker -Agouri if(istype(O, /obj/item/weapon/newspaper)) if(!stat) - for(var/mob/M in viewers(user, null)) - if ((M.client && !( M.blinded ))) - M.show_message("\blue [user] baps [name] on the nose with the rolled up [O]") + user.visible_message("\blue [user] baps [name] on the nose with the rolled up [O]") spawn(0) for(var/i in list(1,2,4,8,4,2,1,2)) dir = i From 2f2b2abb63c0384f24411edda8da131a425c55ec Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Thu, 9 May 2013 17:27:33 -0600 Subject: [PATCH 19/62] Reduced toolbox force to 11 --- code/game/objects/items/weapons/storage/toolbox.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 33a0b08ff10..1db34e27393 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -5,7 +5,7 @@ icon_state = "red" item_state = "toolbox_red" flags = FPRINT | TABLEPASS| CONDUCT - force = 12.0 + force = 11.0 throwforce = 15.0 throw_speed = 1 throw_range = 7 @@ -84,4 +84,4 @@ new /obj/item/weapon/crowbar(src) new /obj/item/weapon/cable_coil(src,30,color) new /obj/item/weapon/wirecutters(src) - new /obj/item/device/multitool(src) + new /obj/item/device/multitool(src) From 5e7cffcf5cc7b4f0a24e59a81129ae6b76fa8bba Mon Sep 17 00:00:00 2001 From: carnie Date: Fri, 10 May 2013 18:41:08 +0100 Subject: [PATCH 20/62] update_icons.dm changes for humans. This ties in with the dna changes and the changes to skin_tone and hair colours >update_mutantrace() is no more, it is now part of update_body() >Moved a lot of stuff into update_base_icon_state(), this will allow making mutantraces modular. Almost all icon operations are now removed from human overlays (obviously some are still required for recolouring hair and eyes). Any remaining dynamically generated overlay icons are applied individually. This will allow byond to cache them better. This will also eliminate the bug where humans are initially invisible/unclickable when you first encounter them (due to network latency where the icons are being downloaded). >UpdateDamageIcons() renamed to update_damage_overlays(), so it has the same sort of name as the other procs >update_icons=true or false arguments removed from human overaly-update procs, no longer required. (i.e. the update_body() update_inv_whatever etc procs do not call update_icons() - see documentation for details) >mutantrace icon_states moved into human.dmi >skeletons are now a mutantrace, not a mutation. >update_icons system should now be even more efficient (thanks partly to aranclanos) >documentation rewritten >copypasted code moved into helper procs - super tidy code :3 Other: >Removed compile error where the core code was reliant on compiling away mission code. >:[ >s_tone renamed to skin_tone Modified code/modules/mob/living/carbon/human/update_icons.dm Modified code/__DEFINES.dm Modified code/datums/datumvars.dm Modified code/datums/limbs.dm Modified code/game/dna.dm Modified code/game/gamemodes/changeling/changeling_powers.dm Modified code/game/gamemodes/cult/cult_items.dm Modified code/game/gamemodes/cult/runes.dm Modified code/game/machinery/doors/airlock.dm Modified code/game/machinery/portable_turret.dm Modified code/game/machinery/teleporter.dm Modified code/game/mecha/combat/combat.dm Modified code/game/objects/items.dm Modified code/game/objects/items/stacks/medical.dm Modified code/game/objects/items/stacks/sheets/glass.dm Modified code/game/objects/items/weapons/storage/bible.dm Modified code/modules/assembly/mousetrap.dm Modified code/modules/hydroponics/hydroitemcode.dm Modified code/modules/mob/living/carbon/carbon.dm Modified code/modules/mob/living/carbon/human/death.dm Modified code/modules/mob/living/carbon/human/human.dm Modified code/modules/mob/living/carbon/human/human_damage.dm Modified code/modules/mob/living/carbon/human/human_defines.dm Modified code/modules/mob/living/living.dm Modified code/modules/mob/living/simple_animal/friendly/slime.dm Modified code/modules/mob/mob_grab.dm Modified code/modules/power/lighting.dm Modified code/modules/reagents/Chemistry-Reagents.dm Modified code/unused/_debug.dm Modified icons/effects/genetics.dmi Modified icons/mob/human.dmi Modified maps/RandomZLevels/wildwest.dm Modified tgstation.dme Signed-off-by: carnie --- code/__DEFINES.dm | 3 - code/datums/datumvars.dm | 5 +- code/datums/limbs.dm | 2 +- code/game/dna.dm | 5 +- .../gamemodes/changeling/changeling_powers.dm | 6 +- code/game/gamemodes/cult/cult_items.dm | 2 +- code/game/gamemodes/cult/runes.dm | 2 +- code/game/machinery/doors/airlock.dm | 2 +- code/game/machinery/portable_turret.dm | 10 +- code/game/machinery/teleporter.dm | 5 +- code/game/mecha/combat/combat.dm | 2 +- code/game/objects/items.dm | 2 +- code/game/objects/items/stacks/medical.dm | 2 +- .../game/objects/items/stacks/sheets/glass.dm | 2 +- .../objects/items/weapons/storage/bible.dm | 2 +- code/modules/assembly/mousetrap.dm | 2 +- code/modules/hydroponics/hydroitemcode.dm | 4 +- code/modules/mob/living/carbon/carbon.dm | 4 +- code/modules/mob/living/carbon/human/death.dm | 40 +- code/modules/mob/living/carbon/human/human.dm | 6 +- .../mob/living/carbon/human/human_damage.dm | 14 +- .../mob/living/carbon/human/human_defines.dm | 4 +- .../mob/living/carbon/human/update_icons.dm | 598 ++++++++---------- code/modules/mob/living/living.dm | 4 +- .../living/simple_animal/friendly/slime.dm | 5 - code/modules/mob/mob_grab.dm | 6 - code/modules/power/lighting.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 7 +- code/unused/_debug.dm | 2 +- icons/effects/genetics.dmi | Bin 55978 -> 14646 bytes icons/mob/human.dmi | Bin 47395 -> 83056 bytes maps/RandomZLevels/wildwest.dm | 8 +- tgstation.dme | 4 - 33 files changed, 339 insertions(+), 423 deletions(-) diff --git a/code/__DEFINES.dm b/code/__DEFINES.dm index 997dd321621..0968b8a8221 100644 --- a/code/__DEFINES.dm +++ b/code/__DEFINES.dm @@ -200,9 +200,6 @@ var/turf/space/Space_Tile = locate(/turf/space) // A space tile to reference whe #define SHOCKWAVE 19 // attack a nearby tile and cause a massive shockwave, knocking most people on their asses (25%) #define ELECTRICITY 20 // ability to shoot electric attacks (15%) - //2spooky -#define SKELETON 29 - //disabilities #define NEARSIGHTED 1 #define EPILEPSY 2 diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index e403fb402e3..9123dbbd15e 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -727,7 +727,7 @@ client usr << "This can only be done to instances of type /mob/living/carbon/human" return - var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow", "fly") + var/new_mutantrace = input("Please choose a new mutantrace","Mutantrace",null) as null|anything in list("NONE","golem","lizard","slime","plant","shadow", "fly", "skeleton") switch(new_mutantrace) if(null) return if("NONE") new_mutantrace = "" @@ -736,7 +736,8 @@ client return if(H.dna) H.dna.mutantrace = new_mutantrace - H.update_mutantrace() + H.update_body() + H.update_hair() else if(href_list["regenerateicons"]) if(!check_rights(0)) return diff --git a/code/datums/limbs.dm b/code/datums/limbs.dm index 48681db3eb6..39b9881aceb 100644 --- a/code/datums/limbs.dm +++ b/code/datums/limbs.dm @@ -119,7 +119,7 @@ return brute_dam + burn_dam -//Updates an organ's brute/burn states for use by updateDamageIcon() +//Updates an organ's brute/burn states for use by update_damage_overlays() //Returns 1 if we need to update overlays. 0 otherwise. /datum/limb/proc/update_icon() var/tbrute = round( (brute_dam/max_damage)*3, 1 ) diff --git a/code/game/dna.dm b/code/game/dna.dm index a0e0082ec3b..6fdf27bc184 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -88,7 +88,8 @@ owner.dna.mutantrace = mutantrace if(update_mutantrace && istype(owner, /mob/living/carbon/human)) var/mob/living/carbon/human/H = owner - H.update_mutantrace() + H.update_body() + H.update_hair() if(se) owner.dna.struc_enzymes = se @@ -217,7 +218,7 @@ H.f_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] H.h_style = hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), hair_styles_list.len)] - H.update_body(0) + H.update_body() H.update_hair() return 1 diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index b4901597126..d0e2c1739b3 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -75,8 +75,8 @@ src << "We must be grabbing a creature in our active hand to absorb them." return - var/mob/living/carbon/human/T = G.affecting - if(!istype(T)) + var/mob/living/carbon/T = G.affecting + if(!check_dna_integrity(T)) src << "[T] is not compatible with our biology." return @@ -695,7 +695,7 @@ var/list/datum/dna/hivemind_bank = list() var/mob/living/carbon/T = changeling_sting(40,/mob/living/carbon/proc/changeling_transformation_sting) if(!T) return 0 - if((HUSK in T.mutations) || (!ishuman(T) && !ismonkey(T))) + if((HUSK in T.mutations) || !check_dna_integrity(T)) src << "Our sting appears ineffective against its DNA." return 0 T.visible_message("[T] transforms!") diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm index c6eae94fe57..1d3ebb0c812 100644 --- a/code/game/gamemodes/cult/cult_items.dm +++ b/code/game/gamemodes/cult/cult_items.dm @@ -20,7 +20,7 @@ var/organ = ((user.hand ? "l_":"r_") + "arm") var/datum/limb/affecting = user.get_organ(organ) if(affecting.take_damage(rand(force/2, force))) //random amount of damage between half of the blade's force and the full force of the blade. - user.UpdateDamageIcon(0) + user.update_damage_overlays(0) return /obj/item/weapon/melee/cultblade/pickup(mob/living/user as mob) diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm index 1c53e6a5273..03b927690bd 100644 --- a/code/game/gamemodes/cult/runes.dm +++ b/code/game/gamemodes/cult/runes.dm @@ -278,7 +278,7 @@ var/list/sacrificed = list() // corpse_to_raise.update_inv_handcuffed(0) corpse_to_raise.stat = CONSCIOUS corpse_to_raise.updatehealth() - corpse_to_raise.UpdateDamageIcon(0) + corpse_to_raise.update_damage_overlays(0) corpse_to_raise.key = ghost.key //the corpse will keep its old mind! but a new player takes ownership of it (they are essentially possessed) //This means, should that player leave the body, the original may re-enter diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index 0c66a20dd71..6efb1692312 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -626,7 +626,7 @@ About the new airlock wires panel: H.Stun(8) H.Weaken(5) if(affecting.take_damage(10, 0)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) else visible_message("\red [user] headbutts the airlock. Good thing they're wearing a helmet.") return diff --git a/code/game/machinery/portable_turret.dm b/code/game/machinery/portable_turret.dm index 881db20c87c..6738fe6ef3b 100644 --- a/code/game/machinery/portable_turret.dm +++ b/code/game/machinery/portable_turret.dm @@ -95,15 +95,15 @@ iconholder = 1 eprojectile = /obj/item/projectile/beam - if(/obj/item/weapon/gun/energy/laser/practice/sc_laser) - iconholder = 1 - eprojectile = /obj/item/projectile/beam +// if(/obj/item/weapon/gun/energy/laser/practice/sc_laser) +// iconholder = 1 +// eprojectile = /obj/item/projectile/beam if(/obj/item/weapon/gun/energy/laser/retro) iconholder = 1 - if(/obj/item/weapon/gun/energy/laser/retro/sc_retro) - iconholder = 1 +// if(/obj/item/weapon/gun/energy/laser/retro/sc_retro) +// iconholder = 1 if(/obj/item/weapon/gun/energy/laser/captain) iconholder = 1 diff --git a/code/game/machinery/teleporter.dm b/code/game/machinery/teleporter.dm index cf8485f925c..4e86f337951 100644 --- a/code/game/machinery/teleporter.dm +++ b/code/game/machinery/teleporter.dm @@ -159,10 +159,11 @@ do_teleport(M, com.locked) if(ishuman(M))//don't remove people from the round randomly you jerks var/mob/living/carbon/human/human = M - if(human.dna.mutantrace == null) + if(human.dna && !human.dna.mutantrace) M << "You hear a buzzing in your ears." human.dna.mutantrace = "fly" - human.update_mutantrace() + human.update_body() + human.update_hair() human.apply_effect((rand(90, 150)), IRRADIATE, 0) randmutb(human) domutcheck(human, null) diff --git a/code/game/mecha/combat/combat.dm b/code/game/mecha/combat/combat.dm index 3e60a776835..d571ee97cde 100644 --- a/code/game/mecha/combat/combat.dm +++ b/code/game/mecha/combat/combat.dm @@ -58,7 +58,7 @@ H.reagents.add_reagent("cryptobiolin", force) else return - if(update) H.UpdateDamageIcon(0) + if(update) H.update_damage_overlays(0) H.updatehealth() else diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 61386be8161..00c0922bd57 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -640,7 +640,7 @@ if(istype(M, /mob/living/carbon/human)) var/datum/limb/affecting = M:get_organ("head") if(affecting.take_damage(7)) - M:UpdateDamageIcon(0) + M:update_damage_overlays(0) else M.take_organ_damage(7) M.eye_blurry += rand(3,4) diff --git a/code/game/objects/items/stacks/medical.dm b/code/game/objects/items/stacks/medical.dm index dd47ac778bd..2b5fd33050e 100644 --- a/code/game/objects/items/stacks/medical.dm +++ b/code/game/objects/items/stacks/medical.dm @@ -60,7 +60,7 @@ affecting = H.get_organ("head") if (affecting.heal_damage(src.heal_brute, src.heal_burn)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) M.updatehealth() else M.heal_organ_damage((src.heal_brute/2), (src.heal_burn/2)) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index 228f694424f..887d8b31311 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -287,6 +287,6 @@ var/datum/limb/affecting = H.get_organ(pick("l_leg", "r_leg")) H.Weaken(3) if(affecting.take_damage(5, 0)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) H.updatehealth() ..() \ No newline at end of file diff --git a/code/game/objects/items/weapons/storage/bible.dm b/code/game/objects/items/weapons/storage/bible.dm index dd82d2d152e..609ffafb431 100644 --- a/code/game/objects/items/weapons/storage/bible.dm +++ b/code/game/objects/items/weapons/storage/bible.dm @@ -28,7 +28,7 @@ var/heal_amt = 10 for(var/datum/limb/affecting in H.organs) if(affecting.heal_damage(heal_amt, heal_amt)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) return /obj/item/weapon/storage/bible/attack(mob/living/M as mob, mob/living/user as mob) diff --git a/code/modules/assembly/mousetrap.dm b/code/modules/assembly/mousetrap.dm index 6bd47d3b5b5..97ac1946efd 100644 --- a/code/modules/assembly/mousetrap.dm +++ b/code/modules/assembly/mousetrap.dm @@ -54,7 +54,7 @@ H.Stun(3) if(affecting) if(affecting.take_damage(1, 0)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) H.updatehealth() else if(ismouse(target)) var/mob/living/simple_animal/mouse/M = target diff --git a/code/modules/hydroponics/hydroitemcode.dm b/code/modules/hydroponics/hydroitemcode.dm index 521e2f0390c..1d66bb3acb9 100644 --- a/code/modules/hydroponics/hydroitemcode.dm +++ b/code/modules/hydroponics/hydroitemcode.dm @@ -34,7 +34,7 @@ var/organ = ((user.hand ? "l_":"r_") + "arm") var/datum/limb/affecting = user.get_organ(organ) if(affecting.take_damage(0,force)) - user.UpdateDamageIcon(0) + user.update_damage_overlays(0) else user.take_organ_damage(0,force) @@ -57,7 +57,7 @@ var/organ = ((user.hand ? "l_":"r_") + "arm") var/datum/limb/affecting = user.get_organ(organ) if(affecting.take_damage(0,force)) - user.UpdateDamageIcon(0) + user.update_damage_overlays(0) else user.take_organ_damage(0,force) if(prob(50)) diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm index 84abccad38d..2f657dea928 100644 --- a/code/modules/mob/living/carbon/carbon.dm +++ b/code/modules/mob/living/carbon/carbon.dm @@ -23,7 +23,7 @@ if (istype(organ, /datum/limb)) var/datum/limb/temp = organ if(temp.take_damage(d, 0)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) H.updatehealth() else src.take_organ_damage(d) @@ -174,7 +174,7 @@ if(status == "") status = "OK" src << "\t [status == "OK" ? "\blue" : "\red"] My [org.getDisplayName()] is [status]." - if(SKELETON in H.mutations && !H.w_uniform && !H.wear_suit) + if(dna && (dna.mutantrace == "skeleton") && !H.w_uniform && !H.wear_suit) H.play_xylophone() else if(ishuman(src)) diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm index 024d9255509..8988ef4e4fc 100644 --- a/code/modules/mob/living/carbon/human/death.dm +++ b/code/modules/mob/living/carbon/human/death.dm @@ -70,36 +70,26 @@ return ..(gibbed) /mob/living/carbon/human/proc/makeSkeleton() - if(SKELETON in src.mutations) return - - if(f_style) - f_style = "Shaved" - if(h_style) - h_style = "Bald" - update_hair(0) - - mutations.Add(SKELETON) + if(!check_dna_integrity(src) || (dna.mutantrace == "skeleton")) return + dna.mutantrace = "skeleton" status_flags |= DISFIGURED - update_body(0) - update_mutantrace() - return + update_hair() + update_body() + return 1 -/mob/living/carbon/human/proc/ChangeToHusk() +/mob/living/carbon/proc/ChangeToHusk() if(HUSK in mutations) return - - if(f_style) - f_style = "Shaved" //we only change the icon_state of the hair datum, so it doesn't mess up their UI/UE - if(h_style) - h_style = "Bald" - update_hair(0) - mutations.Add(HUSK) status_flags |= DISFIGURED //makes them unknown without fucking up other stuff like admintools - update_body(0) - update_mutantrace() - return + return 1 -/mob/living/carbon/human/proc/Drain() +/mob/living/carbon/human/ChangeToHusk() + . = ..() + if(.) + update_hair() + update_body() + +/mob/living/carbon/proc/Drain() ChangeToHusk() mutations |= NOCLONE - return \ No newline at end of file + return 1 \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 62e5fc112d5..67363d46c20 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -204,7 +204,7 @@ update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05) if("r_leg") update |= temp.take_damage(b_loss * 0.05, f_loss * 0.05) - if(update) UpdateDamageIcon(0) + if(update) update_damage_overlays(0) /mob/living/carbon/human/blob_act() @@ -224,10 +224,10 @@ if(!affecting) return if (istype(O, /obj/effect/immovablerod)) if(affecting.take_damage(101, 0)) - UpdateDamageIcon(0) + update_damage_overlays(0) else if(affecting.take_damage((istype(O, /obj/effect/meteor/small) ? 10 : 25), 30)) - UpdateDamageIcon(0) + update_damage_overlays(0) updatehealth() return diff --git a/code/modules/mob/living/carbon/human/human_damage.dm b/code/modules/mob/living/carbon/human/human_damage.dm index d50fc786a20..86ad74c85e2 100644 --- a/code/modules/mob/living/carbon/human/human_damage.dm +++ b/code/modules/mob/living/carbon/human/human_damage.dm @@ -80,7 +80,7 @@ if(!parts.len) return var/datum/limb/picked = pick(parts) if(picked.heal_damage(brute,burn)) - UpdateDamageIcon(0) + update_damage_overlays(0) updatehealth() //Damages ONE external organ, organ gets randomly selected from damagable ones. @@ -91,7 +91,7 @@ if(!parts.len) return var/datum/limb/picked = pick(parts) if(picked.take_damage(brute,burn)) - UpdateDamageIcon(0) + update_damage_overlays(0) updatehealth() @@ -113,7 +113,7 @@ parts -= picked updatehealth() - if(update) UpdateDamageIcon(0) + if(update) update_damage_overlays(0) // damage MANY external organs, in random order /mob/living/carbon/human/take_overall_damage(var/brute, var/burn) @@ -134,7 +134,7 @@ parts -= picked updatehealth() - if(update) UpdateDamageIcon(0) + if(update) update_damage_overlays(0) //////////////////////////////////////////// @@ -143,7 +143,7 @@ var/datum/limb/E = get_organ(zone) if(istype(E, /datum/limb)) if (E.heal_damage(brute, burn)) - UpdateDamageIcon(0) + update_damage_overlays(0) else return 0 return @@ -179,11 +179,11 @@ if(BRUTE) damageoverlaytemp = 20 if(organ.take_damage(damage, 0)) - UpdateDamageIcon(0) + update_damage_overlays(0) if(BURN) damageoverlaytemp = 20 if(organ.take_damage(0, damage)) - UpdateDamageIcon(0) + update_damage_overlays(0) // Will set our damageoverlay icon to the next level, which will then be set back to the normal level the next mob.Life(). diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm index 3b312d82d58..a773b91d671 100644 --- a/code/modules/mob/living/carbon/human/human_defines.dm +++ b/code/modules/mob/living/carbon/human/human_defines.dm @@ -34,9 +34,7 @@ var/obj/item/l_store = null var/obj/item/s_store = null - - var/icon/stand_icon = null - var/icon/lying_icon = null + var/base_icon_state = "caucasian1_m" var/list/organs = list() //Gets filled up in the constructor (human.dm, New() proc, line 24. I'm sick and tired of missing comments. -Agouri diff --git a/code/modules/mob/living/carbon/human/update_icons.dm b/code/modules/mob/living/carbon/human/update_icons.dm index 0faf8addaab..70f989d9727 100644 --- a/code/modules/mob/living/carbon/human/update_icons.dm +++ b/code/modules/mob/living/carbon/human/update_icons.dm @@ -1,56 +1,38 @@ /////////////////////// //UPDATE_ICONS SYSTEM// /////////////////////// -/* -Calling this a system is perhaps a bit trumped up. It is essentially update_clothing dismantled into its -core parts. The key difference is that when we generate overlays we do not generate either lying or standing -versions. Instead, we generate both and store them in two fixed-length lists, both using the same list-index -(The indexes are in update_icons.dm): Each list for humans is (at the time of writing) of length 19. -This will hopefully be reduced as the system is refined. +/* Keep these comments up-to-date if you -insist- on hurting my code-baby ;_; +This system allows you to update individual mob-overlays, without regenerating them all each time. +When we generate overlays we do not generate either lying or standing, as used to happen. +Instead, we generate both standing and lying stances and store them in two fixed-length lists, +both using the same list-index. (The index values are defines within this file. - var/overlays_lying[19] //For the lying down stance - var/overlays_standing[19] //For the standing stance +As of the time of writing there are 20 layers within this list. Please try to keep this from increasing. + var/overlays_lying[20] //For the lying down stance + var/overlays_standing[20] //For the standing stance -When we call update_icons, the 'lying' variable is checked and then the appropriate list is assigned to our overlays! -That in itself uses a tiny bit more memory (no more than all the ridiculous lists the game has already mind you). +Most of the time we only wish to update one overlay: + e.g. - we dropped the fireaxe out of our left hand and need to remove its icon from our mob + e.g.2 - our hair colour has changed, so we need to update our hair icons on our mob +In these cases, instead of updating every overlay using the old behaviour (regenerate_icons), we instead call +the appropriate update_X proc. + e.g. - update_l_hand() + e.g.2 - update_hair() -On the other-hand, it should be very CPU cheap in comparison to the old system. -In the old system, we updated all our overlays every life() call, even if we were standing still inside a crate! -or dead!. 25ish overlays, all generated from scratch every second for every xeno/human/monkey and then applied. -More often than not update_clothing was being called a few times in addition to that! CPU was not the only issue, -all those icons had to be sent to every client. So really the cost was extremely cumulative. To the point where -update_clothing would frequently appear in the top 10 most CPU intensive procs during profiling. - -Another feature of this new system is that our lists are indexed. This means we can update specific overlays! -So we only regenerate icons when we need them to be updated! This is the main saving for this system. - -In practice this means that: - everytime you fall over, we just switch between precompiled lists. Which is fast and cheap. - Everytime you do something minor like take a pen out of your pocket, we only update the in-hand overlay - etc... +Note: Recent changes by aranclanos+carn: + update_icons() no longer needs to be called. + This unfortunately means that cloaking is not working properly at time of writing, + however the system is easier to use. update_icons() should not be called unless you absolutely -know- you need it. + One such example would be when var/lying changes state (because every overlay needs to be updated, but not regenerated). In these + very specific cases, update_icons() will be faster than calling each update_X proc individually. + IN ALL OTHER CASES it's better to just call the specific update_X procs. +All of this means that this code is more maintainable, faster and still fairly easy to use. There are several things that need to be remembered: - > Whenever we do something that should cause an overlay to update (which doesn't use standard procs - ( i.e. you do something like l_hand = /obj/item/something new(src) ) - You will need to call the relevant update_inv_* proc: - update_inv_head() - update_inv_wear_suit() - update_inv_gloves() - update_inv_shoes() - update_inv_w_uniform() - update_inv_glasses() - update_inv_l_hand() - update_inv_r_hand() - update_inv_belt() - update_inv_wear_id() - update_inv_ears() - update_inv_s_store() - update_inv_pockets() - update_inv_back() - update_inv_handcuffed() - update_inv_wear_mask() + ( i.e. you do something like l_hand = /obj/item/something new(src), rather than using the helper procs) + You will need to call the relevant update_inv_* proc All of these are named after the variable they update from. They are defined at the mob/ level like update_clothing was, so you won't cause undefined proc runtimes with usr.update_inv_wear_id() if the usr is a @@ -58,47 +40,30 @@ There are several things that need to be remembered: > There are also these special cases: - update_mutations() //handles updating your appearance for certain mutations. e.g TK head-glows - update_mutantrace() //handles updating your appearance after setting the mutantrace var - UpdateDamageIcon() //handles damage overlays for brute/burn damage //(will rename this when I geta round to it) - update_body() //Handles updating your mob's icon to reflect their gender/race/complexion etc - update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and - ...eyes were merged into update_body) + update_mutations() //handles updating your appearance for certain mutations. e.g TK head-glows + update_damage_overlays() //handles damage overlays for brute/burn damage + update_base_icon_state() //Handles updating var/base_icon_state (WIP) This is used to update the + mob's icon_state easily e.g. "[base_icon_state]_s" is the standing icon_state + update_body() //Handles updating your mob's icon_state (using update_base_icon_state()) + as well as sprite-accessories that didn't really fit elsewhere (underwear, lips, eyes) + //NOTE: update_mutantrace() is now merged into this! + update_hair() //Handles updating your hair overlay (used to be update_face, but mouth and + eyes were merged into update_body()) -> All of these procs update our overlays_lying and overlays_standing, and then call update_icons() by default. - If you wish to update several overlays at once, you can set the argument to 0 to disable the update and call - it manually: - e.g. - update_inv_head(0) - update_inv_l_hand(0) - update_inv_r_hand() //<---calls update_icons() - - or equivillantly: - update_inv_head(0) - update_inv_l_hand(0) - update_inv_r_hand(0) - update_icons() - -> If you need to update all overlays you can use regenerate_icons(). it works exactly like update_clothing used to. - -> I reimplimented an old unused variable which was in the code called (coincidentally) var/update_icon +> I repurposed an old unused variable which was in the code called (coincidentally) var/update_icon It can be used as another method of triggering regenerate_icons(). It's basically a flag that when set to non-zero will call regenerate_icons() at the next life() call and then reset itself to 0. The idea behind it is icons are regenerated only once, even if multiple events requested it. + //NOTE: fairly unused, maybe this could be removed? -This system is confusing and is still a WIP. It's primary goal is speeding up the controls of the game whilst -reducing processing costs. So please bear with me while I iron out the kinks. It will be worth it, I promise. -If I can eventually free var/lying stuff from the life() process altogether, stuns/death/status stuff -will become less affected by lag-spikes and will be instantaneous! :3 - -If you have any questions/constructive-comments/bugs-to-report/or have a massivly devestated butt... -Please contact me on #coderbus IRC. ~Carn x +If you have any questions/constructive-comments/bugs-to-report +Please contact me on #coderbus IRC. ~Carnie x */ //Human Overlays Indexes///////// -#define MUTANTRACE_LAYER 20 //TODO: make part of body? -#define MUTATIONS_LAYER 19 -#define DAMAGE_LAYER 18 +#define BODY_LAYER 20 //underwear, eyes, lips(makeup) +#define MUTATIONS_LAYER 19 //Tk headglows etc. +#define DAMAGE_LAYER 18 //damage indicators (cuts and burns) #define UNIFORM_LAYER 17 #define ID_LAYER 16 #define SHOES_LAYER 15 @@ -115,14 +80,28 @@ Please contact me on #coderbus IRC. ~Carn x #define HANDCUFF_LAYER 4 #define LEGCUFF_LAYER 3 #define L_HAND_LAYER 2 -#define R_HAND_LAYER 1 -#define TOTAL_LAYERS 20 +#define R_HAND_LAYER 1 //Having the two hands seperate seems rather silly, merge them together? It'll allow for code to be reused on mobs with arbitarily many hands +#define TOTAL_LAYERS 20 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_; ////////////////////////////////// /mob/living/carbon/human var/list/overlays_lying[TOTAL_LAYERS] var/list/overlays_standing[TOTAL_LAYERS] +/mob/living/carbon/human/proc/update_base_icon_state() + var/race = dna ? dna.mutantrace : null + switch(race) + if("lizard","golem","slime","shadow","adamantine","fly","plant") + base_icon_state = "[dna.mutantrace]_[(gender == FEMALE) ? "f" : "m"]" + if("skeleton") + base_icon_state = "skeleton" + else + if(HUSK in mutations) + base_icon_state = "husk" + else + base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]" + + /mob/living/carbon/human/proc/apply_overlay(cache_index) var/image/I = lying ? overlays_lying[cache_index] : overlays_standing[cache_index] if(I) @@ -143,11 +122,11 @@ Please contact me on #coderbus IRC. ~Carn x lying_prev = lying //so we don't update overlays for lying/standing unless our stance changes again update_hud() //TODO: remove the need for this overlays.Cut() - - if(lying) //can't be cloaked when lying. (for now) - icon = lying_icon - for(var/image/I in overlays_lying) - overlays += I + + if(lying) //can't be cloaked whilst lying down + icon_state = "[base_icon_state]_l" + for(var/thing in overlays_lying) + if(thing) overlays += thing else var/stealth = 0 if(istype(wear_suit, /obj/item/clothing/suit/space/space_ninja) && wear_suit:s_active) @@ -159,26 +138,25 @@ Please contact me on #coderbus IRC. ~Carn x stealth = 1 break if(stealth) - icon = 'icons/mob/human.dmi' icon_state = "body_cloaked" - var/image/I = overlays_standing[L_HAND_LAYER] - if(istype(I)) overlays += I - I = overlays_standing[R_HAND_LAYER] - if(istype(I)) overlays += I + if(overlays_standing[L_HAND_LAYER]) + overlays += overlays_standing[L_HAND_LAYER] + if(overlays_standing[R_HAND_LAYER]) + overlays += overlays_standing[R_HAND_LAYER] else - icon = stand_icon - for(var/image/I in overlays_standing) - overlays += I + icon_state = "[base_icon_state]_s" + for(var/thing in overlays_standing) + if(thing) overlays += thing //DAMAGE OVERLAYS //constructs damage icon for each organ from mask * damage field and saves it in our overlays_ lists -/mob/living/carbon/human/UpdateDamageIcon(update_icons=0) +/mob/living/carbon/human/update_damage_overlays() remove_overlay(DAMAGE_LAYER) - var/image/standing = image("icon" = 'icons/mob/dam_human.dmi', "icon_state" = "blank", "layer" = -DAMAGE_LAYER) - var/image/lying = image("icon" = 'icons/mob/dam_human.dmi', "icon_state" = "blank2", "layer" = -DAMAGE_LAYER) + var/image/standing = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank", "layer"=-DAMAGE_LAYER) + var/image/lying = image("icon"='icons/mob/dam_human.dmi', "icon_state"="blank2", "layer"=-DAMAGE_LAYER) overlays_standing[DAMAGE_LAYER] = standing overlays_lying[DAMAGE_LAYER] = lying @@ -191,186 +169,151 @@ Please contact me on #coderbus IRC. ~Carn x lying.overlays += "[O.icon_name]2_0[O.burnstate]" apply_overlay(DAMAGE_LAYER) - if(update_icons) update_icons() -//BASE MOB SPRITE -/mob/living/carbon/human/proc/update_body(update_icons=0) - stand_icon = null - lying_icon = null - if(dna && dna.mutantrace) return - var/skeleton = (SKELETON in src.mutations) +//HAIR OVERLAY +/mob/living/carbon/human/proc/update_hair() + //Reset our hair + remove_overlay(HAIR_LAYER) + + //mutants don't have hair. masks and helmets can obscure our hair too. + if( (HUSK in mutations) || (dna && dna.mutantrace) || (head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR)) ) + return + + //base icons + var/list/standing = list() + var/list/lying = list() - var/base_icon_state - //Base mob icon - if(skeleton) - base_icon_state = "skeleton" - else - if(HUSK in src.mutations) - base_icon_state = "husk" - else - base_icon_state = "[skin_tone]_[(gender == FEMALE) ? "f" : "m"]" - - stand_icon = icon('icons/mob/human.dmi', "[base_icon_state]_s") - lying_icon = icon('icons/mob/human.dmi', "[base_icon_state]_l") + if(f_style) + var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] + if(facial_hair_style) + var/icon/facial_s = icon("icon"=facial_hair_style.icon, "icon_state"="[facial_hair_style.icon_state]_s") + var/icon/facial_l = icon("icon"=facial_hair_style.icon, "icon_state"="[facial_hair_style.icon_state]_l") + facial_s.Blend("#[f_color]", ICON_ADD) + facial_l.Blend("#[f_color]", ICON_ADD) + standing += image("icon"=facial_s, "layer"=-HAIR_LAYER) + lying += image("icon"=facial_l, "layer"=-HAIR_LAYER) + //Applies the debrained overlay if there is no brain + if(!getbrain(src)) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="debrained_s", "layer"=-HAIR_LAYER) + lying += image("icon"='icons/mob/human_face.dmi', "icon_state"="debrained_l", "layer"=-HAIR_LAYER) + else if(h_style) + var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] + if(hair_style) + var/icon/hair_s = icon("icon"=hair_style.icon, "icon_state"="[hair_style.icon_state]_s") + var/icon/hair_l = icon("icon"=hair_style.icon, "icon_state"="[hair_style.icon_state]_l") + hair_s.Blend("#[h_color]", ICON_ADD) + hair_l.Blend("#[h_color]", ICON_ADD) + standing += image("icon"=hair_s, "layer"=-HAIR_LAYER) + lying += image("icon"=hair_l, "layer"=-HAIR_LAYER) + + if(lying.len) + overlays_lying[HAIR_LAYER] = lying + if(standing.len) + overlays_standing[HAIR_LAYER] = standing + + apply_overlay(HAIR_LAYER) + + +/mob/living/carbon/human/update_mutations() + remove_overlay(MUTATIONS_LAYER) + + var/list/standing = list() + var/list/lying = list() + + var/g = (gender == FEMALE) ? "f" : "m" + for(var/mut in mutations) + switch(mut) + if(HULK) + lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_l", "layer"=-MUTATIONS_LAYER) + standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="hulk_[g]_s", "layer"=-MUTATIONS_LAYER) + if(COLD_RESISTANCE) + lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_l", "layer"=-MUTATIONS_LAYER) + standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="fire_s", "layer"=-MUTATIONS_LAYER) + if(TK) + lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_l", "layer"=-MUTATIONS_LAYER) + standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="telekinesishead_s", "layer"=-MUTATIONS_LAYER) + if(LASER) + lying += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_l", "layer"=-MUTATIONS_LAYER) + standing += image("icon"='icons/effects/genetics.dmi', "icon_state"="lasereyes_s", "layer"=-MUTATIONS_LAYER) + if(lying.len) + overlays_lying[MUTATIONS_LAYER] = lying + if(standing.len) + overlays_standing[MUTATIONS_LAYER] = standing + + apply_overlay(MUTATIONS_LAYER) + + +/mob/living/carbon/human/proc/update_body() + remove_overlay(BODY_LAYER) + + update_base_icon_state() + icon_state = "[base_icon_state]_[src.lying ? "l" : "s"]" + + var/list/lying = list() + var/list/standing = list() + //Mouth (lipstick!) - if(lip_style) //skeletons are allowed to wear lipstick no matter what you think, agouri. - stand_icon.Blend(icon('icons/mob/human_face.dmi', "lips_[lip_style]_s"), ICON_OVERLAY) - lying_icon.Blend(icon('icons/mob/human_face.dmi', "lips_[lip_style]_l"), ICON_OVERLAY) + if(lip_style) + standing += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_s", "layer"=-BODY_LAYER) + lying += image("icon"='icons/mob/human_face.dmi', "icon_state"="lips_[lip_style]_l", "layer"=-BODY_LAYER) //Eyes - if(!skeleton) + if(!dna || dna.mutantrace != "skeleton") var/icon/eyes_s = icon('icons/mob/human_face.dmi', "eyes_s") var/icon/eyes_l = icon('icons/mob/human_face.dmi', "eyes_l") eyes_s.Blend("#[eye_color]", ICON_ADD) eyes_l.Blend("#[eye_color]", ICON_ADD) - stand_icon.Blend(eyes_s, ICON_OVERLAY) - lying_icon.Blend(eyes_l, ICON_OVERLAY) + standing += image("icon"=eyes_s, "layer"=-BODY_LAYER) + lying += image("icon"=eyes_l, "layer"=-BODY_LAYER) //Underwear if(underwear) var/datum/sprite_accessory/underwear/U = underwear_all[underwear] if(U) - stand_icon.Blend(icon(U.icon, "[U.icon_state]_s"), ICON_OVERLAY) - lying_icon.Blend(icon(U.icon, "[U.icon_state]_l"), ICON_OVERLAY) - - if(update_icons) update_icons() - - -//HAIR OVERLAY -/mob/living/carbon/human/proc/update_hair(update_icons=0) - //Reset our hair - remove_overlay(HAIR_LAYER) - - //mutants don't have hair. masks and helmets can obscure our hair too. - if( (dna && dna.mutantrace) || (head && (head.flags & BLOCKHAIR)) || (wear_mask && (wear_mask.flags & BLOCKHAIR)) ) - if(update_icons) update_icons() - return - - //base icons - var/icon/face_standing = new /icon('icons/mob/human_face.dmi',"bald_s") - var/icon/face_lying = new /icon('icons/mob/human_face.dmi',"bald_l") - - if(f_style) - var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style] - if(facial_hair_style) - var/icon/facial_s = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_s") - var/icon/facial_l = new/icon("icon" = facial_hair_style.icon, "icon_state" = "[facial_hair_style.icon_state]_l") - facial_s.Blend("#[f_color]", ICON_ADD) - facial_l.Blend("#[f_color]", ICON_ADD) - face_standing.Blend(facial_s, ICON_OVERLAY) - face_lying.Blend(facial_l, ICON_OVERLAY) - - //Applies the debrained overlay if there is no brain - if(!getbrain(src)) - face_standing.Blend(new /icon('icons/mob/human_face.dmi', "debrained_s"), ICON_OVERLAY) - face_lying.Blend(new /icon('icons/mob/human_face.dmi', "debrained_l"), ICON_OVERLAY) - h_style = "Bald" - - else if(h_style) - var/datum/sprite_accessory/hair_style = hair_styles_list[h_style] - if(hair_style) - var/icon/hair_s = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_s") - var/icon/hair_l = new/icon("icon" = hair_style.icon, "icon_state" = "[hair_style.icon_state]_l") - hair_s.Blend("#[h_color]", ICON_ADD) - hair_l.Blend("#[h_color]", ICON_ADD) - face_standing.Blend(hair_s, ICON_OVERLAY) - face_lying.Blend(hair_l, ICON_OVERLAY) - - overlays_lying[HAIR_LAYER] = image(face_lying, "layer" = -HAIR_LAYER) - overlays_standing[HAIR_LAYER] = image(face_standing, "layer" = -HAIR_LAYER) - - apply_overlay(HAIR_LAYER) - if(update_icons) update_icons() - -/mob/living/carbon/human/update_mutations(update_icons=0) - remove_overlay(MUTATIONS_LAYER) - - var/image/lying = image("icon" = 'icons/effects/genetics.dmi', "layer" = -MUTATIONS_LAYER) - var/image/standing = image("icon" = 'icons/effects/genetics.dmi', "layer" = -MUTATIONS_LAYER) - var/add_image = 0 - var/g = "m" - if(gender == FEMALE) g = "f" - for(var/mut in mutations) - switch(mut) - if(HULK) - lying.underlays += "hulk_[g]_l" - standing.underlays += "hulk_[g]_s" - add_image = 1 - if(COLD_RESISTANCE) - lying.underlays += "fire_l" - standing.underlays += "fire_s" - add_image = 1 - if(TK) - lying.underlays += "telekinesishead_l" - standing.underlays += "telekinesishead_s" - add_image = 1 - if(LASER) - lying.overlays += "lasereyes_l" - standing.overlays += "lasereyes_s" - add_image = 1 - if(add_image) - overlays_lying[MUTATIONS_LAYER] = lying - overlays_standing[MUTATIONS_LAYER] = standing + standing += image("icon"=U.icon, "icon_state"="[U.icon_state]_s", "layer"=-BODY_LAYER) + lying += image("icon"=U.icon, "icon_state"="[U.icon_state]_l", "layer"=-BODY_LAYER) - apply_overlay(MUTATIONS_LAYER) - if(update_icons) update_icons() - - -/mob/living/carbon/human/proc/update_mutantrace(update_icons=0) - remove_overlay(MUTANTRACE_LAYER) - - if(dna) - switch(dna.mutantrace) - if("lizard","golem","slime","shadow","adamantine", "fly") - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l", "layer" = -MUTANTRACE_LAYER) - overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s", "layer" = -MUTANTRACE_LAYER) - if("plant") - if(stat == DEAD) //TODO - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_d", "layer" = -MUTANTRACE_LAYER) - else - overlays_lying[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_l", "layer" = -MUTANTRACE_LAYER) - overlays_standing[MUTANTRACE_LAYER] = image("icon" = 'icons/effects/genetics.dmi', "icon_state" = "[dna.mutantrace]_[gender]_s", "layer" = -MUTANTRACE_LAYER) - - update_body(0) - update_hair(0) + if(lying.len) + overlays_lying[BODY_LAYER] = lying + if(standing.len) + overlays_standing[BODY_LAYER] = standing - apply_overlay(MUTANTRACE_LAYER) - if(update_icons) update_icons() + apply_overlay(BODY_LAYER) /* --------------------------------------- */ //For legacy support. /mob/living/carbon/human/regenerate_icons() ..() if(monkeyizing) return - update_mutations(0) - update_mutantrace(0) - update_inv_w_uniform(0) - update_inv_wear_id(0) - update_inv_gloves(0) - update_inv_glasses(0) - update_inv_ears(0) - update_inv_shoes(0) - update_inv_s_store(0) - update_inv_wear_mask(0) - update_inv_head(0) - update_inv_belt(0) - update_inv_back(0) - update_inv_wear_suit(0) - update_inv_r_hand(0) - update_inv_l_hand(0) - update_inv_handcuffed(0) - update_inv_legcuffed(0) - update_inv_pockets(0) - update_icons() + update_body() + update_hair() + update_mutations() + update_inv_w_uniform() + update_inv_wear_id() + update_inv_gloves() + update_inv_glasses() + update_inv_ears() + update_inv_shoes() + update_inv_s_store() + update_inv_wear_mask() + update_inv_head() + update_inv_belt() + update_inv_back() + update_inv_wear_suit() + update_inv_r_hand() + update_inv_l_hand() + update_inv_handcuffed() + update_inv_legcuffed() + update_inv_pockets() //Hud Stuff update_hud() /* --------------------------------------- */ //vvvvvv UPDATE_INV PROCS vvvvvv -/mob/living/carbon/human/update_inv_w_uniform(update_icons=0) +/mob/living/carbon/human/update_inv_w_uniform() remove_overlay(UNIFORM_LAYER) if(istype(w_uniform, /obj/item/clothing/under)) @@ -381,42 +324,42 @@ Please contact me on #coderbus IRC. ~Carn x var/t_color = w_uniform.color if(!t_color) t_color = icon_state - var/image/lying = image("icon" = 'icons/mob/uniform.dmi', "icon_state" = "[t_color]_l", "layer" = -UNIFORM_LAYER) - var/image/standing = image("icon" = 'icons/mob/uniform.dmi', "icon_state" = "[t_color]_s", "layer" = -UNIFORM_LAYER) + var/image/lying = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_l", "layer"=-UNIFORM_LAYER) + var/image/standing = image("icon"='icons/mob/uniform.dmi', "icon_state"="[t_color]_s", "layer"=-UNIFORM_LAYER) overlays_lying[UNIFORM_LAYER] = lying overlays_standing[UNIFORM_LAYER] = standing if(w_uniform.blood_DNA) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "uniformblood") + lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood2") + standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="uniformblood") if(U.hastie) var/tie_color = U.hastie.color if(!tie_color) tie_color = U.hastie.icon_state - lying.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]2") - standing.overlays += image("icon" = 'icons/mob/ties.dmi', "icon_state" = "[tie_color]") + lying.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]2") + standing.overlays += image("icon"='icons/mob/ties.dmi', "icon_state"="[tie_color]") else // Automatically drop anything in store / id / belt if you're not wearing a uniform. //CHECK IF NECESARRY for(var/obj/item/thing in list(r_store, l_store, wear_id, belt)) // drop_from_inventory(thing) apply_overlay(UNIFORM_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_wear_id(update_icons=0) + +/mob/living/carbon/human/update_inv_wear_id() remove_overlay(ID_LAYER) if(wear_id) if(client && hud_used && hud_used.hud_shown) wear_id.screen_loc = ui_id //TODO client.screen += wear_id - overlays_lying[ID_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id2", "layer" = -ID_LAYER) - overlays_standing[ID_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "id", "layer" = -ID_LAYER) + overlays_lying[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id2", "layer"=-ID_LAYER) + overlays_standing[ID_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="id", "layer"=-ID_LAYER) apply_overlay(ID_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_gloves(update_icons=0) + +/mob/living/carbon/human/update_inv_gloves() remove_overlay(GLOVES_LAYER) if(gloves) if(client && hud_used && hud_used.hud_shown && hud_used.inventory_shown) @@ -425,24 +368,24 @@ Please contact me on #coderbus IRC. ~Carn x var/t_state = gloves.item_state if(!t_state) t_state = gloves.icon_state - var/image/lying = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]2", "layer" = -GLOVES_LAYER) - var/image/standing = image("icon" = 'icons/mob/hands.dmi', "icon_state" = "[t_state]", "layer" = -GLOVES_LAYER) + var/image/lying = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]2", "layer"=-GLOVES_LAYER) + var/image/standing = image("icon"='icons/mob/hands.dmi', "icon_state"="[t_state]", "layer"=-GLOVES_LAYER) overlays_lying[GLOVES_LAYER] = lying overlays_standing[GLOVES_LAYER] = standing if(gloves.blood_DNA) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands") + lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands2") + standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") else if(blood_DNA) - overlays_lying[GLOVES_LAYER] = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands2") - overlays_standing[GLOVES_LAYER] = image("icon" = 'icons/effects/blood.dmi', "icon_state" = "bloodyhands") + overlays_lying[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands2") + overlays_standing[GLOVES_LAYER] = image("icon"='icons/effects/blood.dmi', "icon_state"="bloodyhands") apply_overlay(GLOVES_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_glasses(update_icons=0) + +/mob/living/carbon/human/update_inv_glasses() remove_overlay(GLASSES_LAYER) if(glasses) @@ -450,13 +393,13 @@ Please contact me on #coderbus IRC. ~Carn x glasses.screen_loc = ui_glasses client.screen += glasses - overlays_lying[GLASSES_LAYER] = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]2", "layer" = -GLASSES_LAYER) - overlays_standing[GLASSES_LAYER] = image("icon" = 'icons/mob/eyes.dmi', "icon_state" = "[glasses.icon_state]", "layer" = -GLASSES_LAYER) + overlays_lying[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]2", "layer"=-GLASSES_LAYER) + overlays_standing[GLASSES_LAYER] = image("icon"='icons/mob/eyes.dmi', "icon_state"="[glasses.icon_state]", "layer"=-GLASSES_LAYER) apply_overlay(GLASSES_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_ears(update_icons=0) + +/mob/living/carbon/human/update_inv_ears() remove_overlay(EARS_LAYER) if(ears) @@ -464,13 +407,13 @@ Please contact me on #coderbus IRC. ~Carn x ears.screen_loc = ui_ears client.screen += ears - overlays_lying[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]2", "layer" = -EARS_LAYER) - overlays_standing[EARS_LAYER] = image("icon" = 'icons/mob/ears.dmi', "icon_state" = "[ears.icon_state]", "layer" = -EARS_LAYER) + overlays_lying[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]2", "layer"=-EARS_LAYER) + overlays_standing[EARS_LAYER] = image("icon"='icons/mob/ears.dmi', "icon_state"="[ears.icon_state]", "layer"=-EARS_LAYER) apply_overlay(EARS_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_shoes(update_icons=0) + +/mob/living/carbon/human/update_inv_shoes() remove_overlay(SHOES_LAYER) if(shoes) @@ -478,19 +421,19 @@ Please contact me on #coderbus IRC. ~Carn x shoes.screen_loc = ui_shoes client.screen += shoes - var/image/lying = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]2", "layer" = -SHOES_LAYER) - var/image/standing = image("icon" = 'icons/mob/feet.dmi', "icon_state" = "[shoes.icon_state]", "layer" = -SHOES_LAYER) + var/image/lying = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]2", "layer"=-SHOES_LAYER) + var/image/standing = image("icon"='icons/mob/feet.dmi', "icon_state"="[shoes.icon_state]", "layer"=-SHOES_LAYER) overlays_lying[SHOES_LAYER] = lying overlays_standing[SHOES_LAYER] = standing if(shoes.blood_DNA) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "shoeblood") + lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood2") + standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="shoeblood") apply_overlay(SHOES_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_s_store(update_icons=0) + +/mob/living/carbon/human/update_inv_s_store() remove_overlay(SUIT_STORE_LAYER) if(s_store) @@ -500,14 +443,14 @@ Please contact me on #coderbus IRC. ~Carn x var/t_state = s_store.item_state if(!t_state) t_state = s_store.icon_state - overlays_lying[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]2", "layer" = -SUIT_STORE_LAYER) - overlays_standing[SUIT_STORE_LAYER] = image("icon" = 'icons/mob/belt_mirror.dmi', "icon_state" = "[t_state]", "layer" = -SUIT_STORE_LAYER) + overlays_lying[SUIT_STORE_LAYER] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]2", "layer"=-SUIT_STORE_LAYER) + overlays_standing[SUIT_STORE_LAYER] = image("icon"='icons/mob/belt_mirror.dmi', "icon_state"="[t_state]", "layer"=-SUIT_STORE_LAYER) apply_overlay(SUIT_STORE_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_head(update_icons=0) + +/mob/living/carbon/human/update_inv_head() remove_overlay(HEAD_LAYER) if(head) @@ -519,22 +462,22 @@ Please contact me on #coderbus IRC. ~Carn x var/image/standing if(istype(head,/obj/item/clothing/head/kitty)) var/obj/item/clothing/head/kitty/K = head - lying = image("icon" = K.mob2, "layer" = -HEAD_LAYER) - standing = image("icon" = K.mob, "layer" = -HEAD_LAYER) + lying = image("icon"=K.mob2, "layer"=-HEAD_LAYER) + standing = image("icon"=K.mob, "layer"=-HEAD_LAYER) else - lying = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]2", "layer" = -HEAD_LAYER) - standing = image("icon" = 'icons/mob/head.dmi', "icon_state" = "[head.icon_state]", "layer" = -HEAD_LAYER) + lying = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]2", "layer"=-HEAD_LAYER) + standing = image("icon"='icons/mob/head.dmi', "icon_state"="[head.icon_state]", "layer"=-HEAD_LAYER) overlays_lying[HEAD_LAYER] = lying overlays_standing[HEAD_LAYER] = standing if(head.blood_DNA) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "helmetblood") + lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood2") + standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="helmetblood") apply_overlay(HEAD_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_belt(update_icons=0) + +/mob/living/carbon/human/update_inv_belt() remove_overlay(BELT_LAYER) if(belt) @@ -544,14 +487,14 @@ Please contact me on #coderbus IRC. ~Carn x var/t_state = belt.item_state if(!t_state) t_state = belt.icon_state - overlays_lying[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]2", "layer" = -BELT_LAYER) - overlays_standing[BELT_LAYER] = image("icon" = 'icons/mob/belt.dmi', "icon_state" = "[t_state]", "layer" = -BELT_LAYER) + overlays_lying[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]2", "layer"=-BELT_LAYER) + overlays_standing[BELT_LAYER] = image("icon"='icons/mob/belt.dmi', "icon_state"="[t_state]", "layer"=-BELT_LAYER) apply_overlay(BELT_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_wear_suit(update_icons=0) + +/mob/living/carbon/human/update_inv_wear_suit() remove_overlay(SUIT_LAYER) if(istype(wear_suit, /obj/item/clothing/suit)) @@ -559,8 +502,8 @@ Please contact me on #coderbus IRC. ~Carn x wear_suit.screen_loc = ui_oclothing //TODO client.screen += wear_suit - var/image/lying = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]2", "layer" = -SUIT_LAYER) - var/image/standing = image("icon" = 'icons/mob/suit.dmi', "icon_state" = "[wear_suit.icon_state]", "layer" = -SUIT_LAYER) + var/image/lying = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]2", "layer"=-SUIT_LAYER) + var/image/standing = image("icon"='icons/mob/suit.dmi', "icon_state"="[wear_suit.icon_state]", "layer"=-SUIT_LAYER) overlays_lying[SUIT_LAYER] = lying overlays_standing[SUIT_LAYER] = standing @@ -571,13 +514,13 @@ Please contact me on #coderbus IRC. ~Carn x if(wear_suit.blood_DNA) var/obj/item/clothing/suit/S = wear_suit - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "[S.blood_overlay_type]blood") + lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood2") + standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="[S.blood_overlay_type]blood") apply_overlay(SUIT_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_pockets(update_icons=0) + +/mob/living/carbon/human/update_inv_pockets() if(l_store) if(client && hud_used && hud_used.hud_shown) l_store.screen_loc = ui_storage1 //TODO @@ -586,10 +529,9 @@ Please contact me on #coderbus IRC. ~Carn x if(client && hud_used && hud_used.hud_shown) r_store.screen_loc = ui_storage2 //TODO client.screen += r_store - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_wear_mask(update_icons=0) +/mob/living/carbon/human/update_inv_wear_mask() remove_overlay(FACEMASK_LAYER) if(istype(wear_mask, /obj/item/clothing/mask)) @@ -597,20 +539,20 @@ Please contact me on #coderbus IRC. ~Carn x wear_mask.screen_loc = ui_mask //TODO client.screen += wear_mask - var/image/lying = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]2", "layer" = -FACEMASK_LAYER) - var/image/standing = image("icon" = 'icons/mob/mask.dmi', "icon_state" = "[wear_mask.icon_state]", "layer" = -FACEMASK_LAYER) + var/image/lying = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]2", "layer"=-FACEMASK_LAYER) + var/image/standing = image("icon"='icons/mob/mask.dmi', "icon_state"="[wear_mask.icon_state]", "layer"=-FACEMASK_LAYER) overlays_lying[FACEMASK_LAYER] = lying overlays_standing[FACEMASK_LAYER] = standing if(wear_mask.blood_DNA && !istype(wear_mask, /obj/item/clothing/mask/cigarette)) - lying.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood2") - standing.overlays += image("icon" = 'icons/effects/blood.dmi', "icon_state" = "maskblood") + lying.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood2") + standing.overlays += image("icon"='icons/effects/blood.dmi', "icon_state"="maskblood") apply_overlay(FACEMASK_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_back(update_icons=0) + +/mob/living/carbon/human/update_inv_back() remove_overlay(BACK_LAYER) if(back) @@ -618,11 +560,11 @@ Please contact me on #coderbus IRC. ~Carn x back.screen_loc = ui_back //TODO client.screen += back - overlays_lying[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]2", "layer" = -BACK_LAYER) - overlays_standing[BACK_LAYER] = image("icon" = 'icons/mob/back.dmi', "icon_state" = "[back.icon_state]", "layer" = -BACK_LAYER) + overlays_lying[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]2", "layer"=-BACK_LAYER) + overlays_standing[BACK_LAYER] = image("icon"='icons/mob/back.dmi', "icon_state"="[back.icon_state]", "layer"=-BACK_LAYER) apply_overlay(BACK_LAYER) - if(update_icons) update_icons() + /mob/living/carbon/human/update_hud() //TODO: do away with this if possible @@ -632,7 +574,7 @@ Please contact me on #coderbus IRC. ~Carn x hud_used.hidden_inventory_update() //Updates the screenloc of the items on the 'other' inventory bar -/mob/living/carbon/human/update_inv_handcuffed(update_icons=0) +/mob/living/carbon/human/update_inv_handcuffed() remove_overlay(HANDCUFF_LAYER) if(handcuffed) @@ -642,11 +584,11 @@ Please contact me on #coderbus IRC. ~Carn x if(hud_used) //hud handcuff icons var/obj/screen/inventory/R = hud_used.adding[3] var/obj/screen/inventory/L = hud_used.adding[4] - R.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "markus") - L.overlays += image("icon" = 'icons/mob/screen_gen.dmi', "icon_state" = "gabrielle") + R.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="markus") + L.overlays += image("icon"='icons/mob/screen_gen.dmi', "icon_state"="gabrielle") - overlays_lying[HANDCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "handcuff2", "layer" = -HANDCUFF_LAYER) - overlays_standing[HANDCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "handcuff1", "layer" = -HANDCUFF_LAYER) + overlays_lying[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff2", "layer"=-HANDCUFF_LAYER) + overlays_standing[HANDCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="handcuff1", "layer"=-HANDCUFF_LAYER) else if(hud_used) var/obj/screen/inventory/R = hud_used.adding[3] @@ -655,9 +597,9 @@ Please contact me on #coderbus IRC. ~Carn x L.overlays = null apply_overlay(HANDCUFF_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_legcuffed(update_icons=0) + +/mob/living/carbon/human/update_inv_legcuffed() remove_overlay(LEGCUFF_LAYER) if(legcuffed) @@ -666,14 +608,14 @@ Please contact me on #coderbus IRC. ~Carn x if(src.hud_used && src.hud_used.move_intent) src.hud_used.move_intent.icon_state = "walking" - overlays_lying[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff2", "layer" = -LEGCUFF_LAYER) - overlays_standing[LEGCUFF_LAYER] = image("icon" = 'icons/mob/mob.dmi', "icon_state" = "legcuff1", "layer" = -LEGCUFF_LAYER) + overlays_lying[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff2", "layer"=-LEGCUFF_LAYER) + overlays_standing[LEGCUFF_LAYER] = image("icon"='icons/mob/mob.dmi', "icon_state"="legcuff1", "layer"=-LEGCUFF_LAYER) apply_overlay(LEGCUFF_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_r_hand(update_icons=0) + +/mob/living/carbon/human/update_inv_r_hand() remove_overlay(R_HAND_LAYER) if(r_hand) @@ -684,13 +626,13 @@ Please contact me on #coderbus IRC. ~Carn x var/t_state = r_hand.item_state if(!t_state) t_state = r_hand.icon_state - overlays_standing[R_HAND_LAYER] = image("icon" = 'icons/mob/items_righthand.dmi', "icon_state" = "[t_state]", "layer" = -R_HAND_LAYER) + overlays_standing[R_HAND_LAYER] = image("icon"='icons/mob/items_righthand.dmi', "icon_state"="[t_state]", "layer"=-R_HAND_LAYER) apply_overlay(R_HAND_LAYER) - if(update_icons) update_icons() -/mob/living/carbon/human/update_inv_l_hand(update_icons=0) + +/mob/living/carbon/human/update_inv_l_hand() remove_overlay(L_HAND_LAYER) if(l_hand) @@ -701,13 +643,13 @@ Please contact me on #coderbus IRC. ~Carn x var/t_state = l_hand.item_state if(!t_state) t_state = l_hand.icon_state - overlays_standing[L_HAND_LAYER] = image("icon" = 'icons/mob/items_lefthand.dmi', "icon_state" = "[t_state]", "layer" = -L_HAND_LAYER) + overlays_standing[L_HAND_LAYER] = image("icon"='icons/mob/items_lefthand.dmi', "icon_state"="[t_state]", "layer"=-L_HAND_LAYER) apply_overlay(L_HAND_LAYER) - if(update_icons) update_icons() + //Human Overlays Indexes///////// -#undef MUTANTRACE_LAYER +#undef BODY_LAYER #undef MUTATIONS_LAYER #undef DAMAGE_LAYER #undef UNIFORM_LAYER diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm index 46a7d09e551..7812fd2bc13 100644 --- a/code/modules/mob/living/living.dm +++ b/code/modules/mob/living/living.dm @@ -41,7 +41,7 @@ for(var/datum/limb/affecting in H.organs) if(!affecting) continue if(affecting.take_damage(0, divided_damage+extradam)) //TODO: fix the extradam stuff. Or, ebtter yet...rewrite this entire proc ~Carn - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) H.updatehealth() return 1 else if(istype(src, /mob/living/carbon/monkey)) @@ -260,7 +260,7 @@ ..() return -/mob/living/proc/UpdateDamageIcon() +/mob/living/proc/update_damage_overlays() return diff --git a/code/modules/mob/living/simple_animal/friendly/slime.dm b/code/modules/mob/living/simple_animal/friendly/slime.dm index adb494adec8..0b6c2d00cfe 100644 --- a/code/modules/mob/living/simple_animal/friendly/slime.dm +++ b/code/modules/mob/living/simple_animal/friendly/slime.dm @@ -22,11 +22,6 @@ now_pushing = 1 if(ismob(AM)) var/mob/tmob = AM - if(istype(tmob, /mob/living/carbon/human) && (FAT in tmob.mutations)) - if(prob(70)) - src << "\red You fail to push [tmob]'s fat ass out of the way." - now_pushing = 0 - return if(!(tmob.status_flags & CANPUSH)) now_pushing = 0 return diff --git a/code/modules/mob/mob_grab.dm b/code/modules/mob/mob_grab.dm index 7e0cb82f2e6..14ec3a49e10 100644 --- a/code/modules/mob/mob_grab.dm +++ b/code/modules/mob/mob_grab.dm @@ -122,12 +122,6 @@ icon_state = "grabbed1" else if(state < GRAB_NECK) - if(istype(affecting, /mob/living/carbon/human)) - var/mob/living/carbon/human/H = affecting - if(FAT in H.mutations) - assailant << "You can't strangle [affecting] through all that fat!" - return - if(isslime(affecting)) assailant << "You squeeze [affecting], but nothing interesting happens." return diff --git a/code/modules/power/lighting.dm b/code/modules/power/lighting.dm index f5e87665e61..70da53ed059 100644 --- a/code/modules/power/lighting.dm +++ b/code/modules/power/lighting.dm @@ -497,7 +497,7 @@ var/datum/limb/affecting = H.get_organ("[user.hand ? "l" : "r" ]_arm") if(affecting.take_damage( 0, 5 )) // 5 burn damage - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) H.updatehealth() return // if burned, don't remove the light diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index b4e2aa455c5..8a2a793a73a 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -315,10 +315,11 @@ datum if(!M) M = holder.my_atom if(ishuman(M)) var/mob/living/carbon/human/human = M - if(human.dna.mutantrace == null) + if(human.dna && !human.dna.mutantrace) M << "\red Your flesh rapidly mutates!" human.dna.mutantrace = "slime" - human.update_mutantrace() + human.update_body() + human.update_hair() ..() return @@ -1620,7 +1621,7 @@ datum var/datum/limb/affecting = H.get_organ("head") if(affecting) if(affecting.take_damage(10*toxpwr, 5*toxpwr)) - H.UpdateDamageIcon(0) + H.update_damage_overlays(0) if(prob(meltprob)) H.emote("scream") H.f_style = "Shaved" diff --git a/code/unused/_debug.dm b/code/unused/_debug.dm index 9183a1f9737..7def5f45c90 100644 --- a/code/unused/_debug.dm +++ b/code/unused/_debug.dm @@ -489,7 +489,7 @@ Doing this because FindTurfs() isn't even used e.update_icon() if(src.type == /mob/living/carbon/human) var/mob/living/carbon/human/H = src - H.UpdateDamageIcon() + H.update_damage_overlays() else alert("Debugging off") return diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi index 89e9c05b78c99c49f516a7dc834ab349b9d34fdc..c839eb9e4ebc59edcc5733239957955d68dbd94d 100644 GIT binary patch literal 14646 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 NFwiyDsnK%8{u>^rMkD|L diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index c80d270793375cccf6368adbd6f355f6cec6f086..a47fafc11e172492e36c4197fdfe825b53482a26 100644 GIT binary patch literal 83056 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%0A1S9@5gMHLx zSEgsAk_9Hbkj$;^LYow=63Bjb-l&hv+r(5F*bscm@*mlMS<#P-Jzf2hoTd0~S;vAP z2uKbrbz9kaxw zD7=A%mb(Xw^RM~8VC->nwc9$~Gzb9qT)$(kG&`(BVWEc=2MJ>5MBYJ3&fpyp2P!|N zo~-=EZc;nTbkm^Qdi@|Bu-m*RHxU~kdLVTlz{@WMXMZf*W-wui&I;%F&T$G-8G zj~(r#P=OS{0>8)nUo7_dKT(>&NTfEz3Ds zQN%G2Hnc_CkuWfEg3&qy1+fy+bK~h7LSz0$&eB0#cT*f#Tqd)NXRsHC8zY-sK2~n6BQN~tnF%iB zPy}b7ec=wlD8B$)7B{>8|K)rQcs@=1`g$hpFaN%t2Uq(3{euoOb;xXkuQkvV(0uz| z>avh8*7wb~pM&~Br6|jfD6DGZ@?TQpNJvvENHRONlBQWhrbr>6mvW_8LH>vj?*D*s z8?OHk*pA*FJQ*wZ?s#Sqk&KUMV4lZYKm^W;Rik3OgCc~XLCjzS)|Qg!!BxH zCE!PzW@wW5a6yO+%r5_q!2HFdBe4BWs6@~IB<{~G{$dv)*S zM;kd6QO>E<1sa@xWPuN*tG}7(gR?-dDrIa_koSQZp!mH0h|}18--CPx=%qs%@}r3C zKZdGhB|F%mS1n<)VnI(Ok5(pA0jNhSmCNjzeN=m{IMn)9Vz+pYYcoFFo7d9()CKpy z1GI$yud^)n-D!lWr@-IW|f zUs5AT77!XWten>JpV+kS)~@^VL-PsL={(!!!PlU3o>jQ#I{`#0E_>XjOy?yA+4`aFEtyl9GSla)9cc^z zHPCa7iu@@a%jP9L#n^O=FPj_xgNj_q6#qA%;(Y7RK!ioz{@}*J!2*fui$sn%QRTtx zzhJ9Zv;Eu|*M^K2GEUeq5;+2{cUgo#qqDI4m@z#x-n$8Q<5KQM*< z1x!1c^m;KExE7Zp0{PdKGo9ezM=mA3{XMs@`gNa6dcJ#){@REKf0s*tK3Qd!R!T34C!6)( zP{(y#+h?Q~7_f$FC*vrFKR7_zuX&O&0kmKio(88b5NxO@{`d_A_2>Y29RBlG{ssE3 z`*%?TMo5akE8L=t;;}!PouUmiI0$p3eRb{bVZGmT&Bxpm#o{?#01%Hk^8cVzl=fLb z>*5#$9`cS9k9VlBuUt1JRGUxn&h|dNfpPxG#pK-bNnm>5v3~teCU50O!*a~W2{Dx> z7|&^kpm904WBckm3awUkOD_}H2PKz((Ej45nf#{8a*L@iVV+fl2ltMjyD>PKSqx?3+07hY$(uoDNa44ky|;B!~P zb(Pgq^BqR|PTgixnFm*zPn-qYaNM@~kY7&cPT4?h64~#{Q%vX`xO{+D4Ui`uroVGA z{_G&-Vs#mB(ffK5lO~0j&xfJEJBf0<6KRdzaB=O4g^NQ;16^b#{zk6_U(U^=oZ?Vhj1UpLgGC2(2)e8HAwj~HjM<NEU#Dq~VX9Dm7dGV7pDJw}M7%~y#NM!wLt zJdno$lOLU&#NX^rn!H4jzfhM~w!Cp)er4}IBDNd@dFM7XFJRzY0UMVfU zh9R~=rlJxXqO`Mi#|9-7G0q{kaUHk!;QHbS zwAblFX%Ed!0>(k&`Amgp#;RMUiLdawtg?|#s(TB=GqtpGBY7_p;=dM0bHGF;4*SV% zX))XA!4oJ(TAD@m%`ra!epH#>flM1VRrll>qv|fl5of1)Dg|(a-}a=|v-__NgHFY@ zir3e5n*P9uVz4(b1BMoHs79#oZYuIT?n(2svFaO~upYHM`rvZ5PEf;*41WgEW9Rjv zsrQ5AB}^@O-#L zv9_K6%8GEfou!4XCt60E1Oo-gP+J_(P7-F`MQ3rD!Uv&8i;|}ic{1jY2rQL@%W!DX zk)Q^3K5dQjvpF%(tZ%>CH*CKeheG(VEE3ql9X(=gL&p7>rJ*jZ5dPkEIWKb$_AXLs z&_aM8!sEEjnCmye3}etnZ=z+s$6+o7F2sTuT3z&@E9H?i=vsmH%#n2+wNgj|{s!{& zH~;>+?b3lCgpgtAk(X3)62BG)Q5(2L#^4dt)y6nXiQEM|#E22z--(U#jYf;TS|QnvsSZ?QDIabbl9aQ}&6LmFlsm`XR>xlD zgvokO&`wQYCK~Ub^%~A&W1r0(z@|dgaE;O+-mGm`R}yF`g!}u%5$q=d9vN|a*J73a zth>VKX*c2wQ?<)$Bc#73@JQC0uv+>+Tgw*&2ei7u(7YFSw;HeNVHvM~>P?c9_|SS%FjEPjT?O!5F|j z79OK7Z(4~eeL`o*@x1=a{w~E$KH`=Nn&X^=&Gv+=klNWD!EFgeg*&}f#oqVZ zp&w%2Q~oTEshAL_&Z6Cu(2&Y$7vyh>d!(w`iR}tgWF*FfCf%VnYB(i+%5Ru|oXZ<) zsXXv@J)S2ymuJh__4PBP`0>J;x3E?zRg5=Ni8o(vPuTMSMQW^l3B-!Qif*rFp%8JN z7?4N_uc)Mi6Ic)e-gR_?B!s#X)K7hlM|d5G%z=0tfp-j)FV2RN3hQq!j(e+i5}K7= z@FT5H1gd4UlI5DU`X(Ec}cE2&x)#lodemWBZM+E zqSve~zPm0+A8&=zsNRb51_y`Q_xQ;GR`>GE-Z*SE5jcs{jCr=KFM6n&?%MWpD-PTUR{rcLW zY2RIEV*eqw29br3!4UTtl1PuCuy$xr=4dK~!Q&mWc#(wx-QVN?t5$xM3kQ=n+~&U{ zu}gN2uKx^sM=9@gqecF}LVHxEa!xoQ&~sNTau^0!P8~gP&NfRf_%bN(s!pt{92Zj1 z79F91SM-d(ZgD5U?)Z=Vd%bRnR<7qKuWckVj}3+TH{zZkzCJE~*J)pGwfU{*_**J& ztPndzL?CkX+pbG~DZZOzt*@Vc#IydTvhV9X&l(jFCqVn!LeWjN+7^v8aP0J=#rN7X z2-p1--n@N>lNbj1^psegW$6Yv9ktR)QDv41j}I?f-mkL*A}^E=?&;IW=0)$T=MWKA z_ky0^;XkY40}2%-mW_U60iSVc$F|7mqdWQqoKo#6JG(rpWw1tB2?BzL^2qN?1M$iN z;_J+9?uvyt26%+pMA&zA$}>Ysv%<%JD}f{XDPTEl==U0qyU4n9)7HD8-@P@wLQNmc zwU)#$HWCT)k0Xu(A+$x#3Ly4V*k2qM|fXX>(s>D`xVsW%ka_#?EH&L2$;`XmD6RrcmemSFixFh-?;`i-P_A zOXR4@iMJro`RCa3zywq1zvHF)?t4v@_$nurJsKMjGoe*tvGRos{La&Eb#-bC3!Fb# zp-E?wDzL7z*75YzdSCVJQPQNb@dLJmE>lOI8vWK<`!4(xx(-EX7OXex*C{a7Vw^Z4 zcJB=S@j&fOSpG<5rylj`Q`L*E#eU24BX-)emn;q%ON$fDvp4v{Lfe5Xx&YaFa5($B zJP0jZ!TWxfdG%aGQRxC1SUeB2@_tsVEELUD%-dCaDQuoL@Vr)+UGVpu^Z#KJe5NgG z8WM!+_t$**gfv}N1FcSfFMNDiy)(vuazS=#8&fIue%|eAn=1W0_i^tsqDoodox>eC z=K5(DpBZkTqwEBwYuei(?PyLR1`TlBDXFL+%}kYa{BUby{y!#T?OsGJv3})zcW_PG&j6%aB?$K1SjJ z4?df*W#B9wtOBVmzcQ=ZK?`m4%ayKfx5*R#o?35Wbr zeLhk=6sw6+++)so=hp&$fI&bX$ph(O^8umT*%UWS8|dRbh|u?Vf#@a5+cvm&m~4v# z5ty}aF!%_8n~0whp`5e%KBV4bL^`b+RTNyXpC`&Q?LI|qEK8&6My9OzC|vHYN%cG# zu;J0nmO5nVgJGPJz|eBJPYF)>uKTvML}=W(Jy!)+Nazp!7Eku!;#8+)@+X<0Hu*a> z&Q*^GOqy*}Ylj=7d*UqOi{dWtHa8R1irrdGjSdPj7Cg2_1;k&(*H3@si795GIx4~S z0YYes5(!GA?z`T+$vATI#;!SzT_!f!Ct){`LZ#3@wi$!XwX|J5Va$lKA%F&L2b7arWo+uf?G)|D%tu(I~0 zAq85~7rsab<)_6oZ-I;ceJw(ifi;uLKtq~-HhqCcHg9J);@MvM@oP|%KT=hH-K8hz z-)=6^()!?n9^Lfitn+KxD7kFi6WsDKI@l@wpmaQp8g%Z#=Cky36T?2cgB#)TB~rtH z@`!6tGgb|tbO5#V^WDAS~GSt$*Zp11DiUmldxhmd$BHnldlmOB6#N`aebGf)n z^blPd8nz!IXqxJYJna0XX2hd7k57I@{w>Bl-)}>X6?!etkBjfPJIQ@q{=P4LOME_u zk6y;Z8J(@-IB|O1ub!WC8(WW>^80N!<2L#}sb3ygdem>e-?r4J7O|)F(Wm}lPsz_) zI|L=?6<*EW=M22nP1CJQ6aETTm=3;`FZPtLp0?Y`>?)T|#H@-CmQpLOA@V0>x6jD; z83?FcZ+b}mk$b+Z`6xStE(;@3q^snPXbe%wvS45S=vQ#U7&o{?sXC!|#;9yBvaz!P zL{y4^1!1<6d`9);Tw!)(EAGvmANkDlq@rps4N)^uBbjXr8*5gNsc{=;N#9ipK>)ow zPB1&M=e0(o;|uXJ3B$HQ?HHb6-#gUgnTscXj!YG)`Yvq+?KzYI;OR|9NCG2E0`~_; zrOz@ixF5cWWBpPefhAvESxo4BPct3e&30p3pWvHt)0B-0C|~D(4$!cscUhI=+iNL` z-Fg4uDKVfRh9y1ENB0stplVnPfu&~fWVDR;)kOsWAfrtRtR7~wqpQCb>1^DtL z#(Y1AmuP2qOmHQL9mppJ;OJ)LAB@OsQrlz3xasexG`vn_THmx;x)|%R&P?v0$`m2| z&UGFa?2=}3;HlTTB(X~yj_LGgR!4J4%)aQ4+ACc3BMYWNdM-IV$tyC^Ky!dC{^YM#7#5$WGP?Fgo=k@*@Z#$y%A+&S@-cx%HwR_6&F} zTesKMQSDa`aD-Qs;-Q%hEoe z$m!p{0Os%YqWAONMEf_x+Nz-x{0*CyW7a1g z8t8hXZMsiaYEAD)iKh`H0hpaC@po>>h;>#c1N&D;dzPhu{M~?eIX8&%-_hfvHc2+b74zvF+*w zQAc-YHn)4L(O1m(#_UFCXNPh?Z)ge^+Ya@@>GDGfw9eH0T&xcCBz~%V@_vdU)~gOG z+IDvQp_{)?YeC6R!P$?s?2JY2z{f`{^0@OIW9ib_*r{>BQ-}%QNzL@fG7ygNeGy&s zR{mu4yIC{o@B874+J0m7@{^bo2OOq>o(U^r5Uf6D}_fOyOg5 zDPf;EA#Bf@aAe{Z0C6aSx#BI`jv)kzLWY5bJ6e+#y<^CVp%0t2(T`R=*D2^CwL`1t zLi5g%D;A}b$fgpH7g8m9XF5lRRc7FAO}&QOyRR_Y7nCszZ&f}jyjlxsCU53oOZyzrk=hLd%aNJ@IT z*FUZ73oPCn@0%877_AcQYEW|Z=~qXz{$?o|qVz#0Mv*FFG*|-xqm#X&<0}25xA8O3 ztt52W=GfsKzu7`#5^uEevrNGKxn+8~9NKFsySnt}?lk5BtTKVvSY09a9(Pf`T#&3pOcb!C#vCmPtLE;Qi?|Krs(cC(&GYAXeakPe9MiOz0maiygQm9 z;Q!xnw(c@$P4Z0-S%HduJ}nFn=BHnWx`WDqbI#%W?Ts40u@xkt$5aa1AV|^mr?k6tfc$ZrDJxB2Tfx-m$s}sX>oqlr$22j z!-+%2$XQ~@dM6?TO2qce#L|N&W2#y(q_eYvFUCcs*3IvLfA8z3yL;Pu{{S1WXcmw% ztzt<{3zeF2b4}gtT!{F*>aXYhw{hIc>4SRvt?8lWT|Xxt@Rl!gxm4ZKLEm;!hPa(Q zuj(4Hf`_;s(SX*51fRJCU!XDo%U*(u+}0sG?WO&4;(xOp1a1ekBceeMmNgM~C&o5d z>tLwWpb*BY{aTk@v8ni02!0Gp1>GSZ;f!y8*AnaCUPQWt(JPa7)jy4)T8I4$QN(RK zkufo^RSL^M6Yu-&@(mO|IJiwOvoTogA|L_E#3%W|eCqu?q&N?ym3SyZI4M=wI7X~3 z9%H}W^90=mQU@BYO;QOa&e(AGFF9YAEAer*I{NzqU9YmZ;-UzyG>=MzA`%=F3r4zD zz`|eQ9ABrPa#JTl;4~T-9F%iVrhS^#TMn=pbp$j!43(UC2}Shvz1)bD-=#yiSiEl{ z^z)_jQ9)D!kheZu0?e1=i(GD~s z9rq>~BxEkTAF!)7r)Zn5q(a(r$a zyT-~5O3t@6B=uO?3)$_hMFHqS)cN>vD}Qz$UXtFZR&YB-sAd64&^Ql?Y8;Y>5LHT- z1yc~5JB&y-tTZtW@)4fe(%kGiW|otee_)D5tKbMw#=E&a4g8`lpN1w4TjdoBIMu;- z8NB)SPYL_nc*V=crSgPyk~`*E(n_?Wp1Vn)<^PL=|HWJ}0T{g86b%Ja-mW)>uN_&q z7HLx)o$px<3O!|W8Ir&d4#DpF;^B;zetl#?;K7fyBdBM5A=1NP@`{SS=e5m@MCo2T zXY0da@$qDaR|cC!O15lmkF>1}b|k244!#{GIBYokF^9fH5^CjHt_x)vJ4mWB+6H9> zlZ0bGqm?l&$CLdrT-n9r^oBcs;;GTcLGA-sP=@6@(kT9hn-KWwBcUnAzy-peFs3%& z*N@rm%09f>+SSdMDdYRCdpF)rHi?U{_27}nHC|_9xJyZ5aGu-}bSsRv(=a)QD;Pi0 z?(Tx+sT+3naRNr;Y_AfR^>M;>Mt@%>Ms?XF8`G`AgC>4x-fYW~C1TorV!g=y=+5^5 zWy4R6A-njg?=9lm6>rJO+i>|w;ug)|H%qgvumWv6J8n`%2=?*b#qHl%(n={(d12*`W#HVM6MZZ#v%I?W`bGpm_VP&n$^c z?!t^ni&q@BygIlTcC&wN5H>ibdwijA!yU~iiPt0iLc9~xQ$-z%!3!0Atv!x03cwG& z=$QD^pj7v^clORkT!w+(%<)t>%v>o?XTEf1r%$9ST~I`4V;r&Y?BM+pMu1>Qcq;YVyzP;irf zDf4q=6d49j)GEYcMa#>|@eg$2={|(>-G2MrxpoF;)KMOstrgN2jZr1cop*VyNa=&* z8|t2&rf|!Bd<+(NY^$scW__Lt;-?g@-91ph zWS5m&1rJaz;9TzFGOn)T+oFUjSY=yd#gZhK0mCgihtWkG(qPvwJAT{E2vTCn)0A#5g%kw99 zop9{oq=nbI;T36}KWJ%f$!}%TV1)y(JfCfK&oaF7loR{?D0$b^T~vsgOy>dsP?he1 zRc>z>1Vkc($I=T}WhO7zVoOo-r@XoQxEEGA*nuq07xDRu3bY+>gm>GNpKaiWB7Rf; z&K1CuuUn&Xe-5ja2W2k>sJNCcYF}6yHlAp<58dGl?9V{B9h-Hrn)_&y1M~N~CRDkKm z%>xd4E2O9%5Y(cto@-(pmJl@_z^mWO4lk-(awt>98`NdY@-9V z5ekLoF)H}_o{K)m`FwGjAbM31g^6Io8U^|6>FHFmX4ClFad?j_F;wiW>gN-62-MIS#>f`{Q{FFW%v0v%@|0s+nXOB1mY z7&9{zodFr(>Gve#WlBL!MI9AUIM#jq?o|RK*zn%Jm;7{SYE$dt9}|ZNlFDWdZRFJ$3};6vz#iPbiDAANDkwWZCUSB~ z?Nr?UR4;eYlP1(O?_+l#{Pg0!?CB}fU(NH++gA{_z- zDH0;xT_W95(mlX1^DUltzdyeHZyyH?!yPmCiYw3aS_|`MVt8*J|Icat>YTtQBrzD4 z2YK!J^TYt;p|!MRV01yUTOce$Rjak`K1fXHWA{w?W7~TgNzqvp1e>3}RYFJ!) zbx}YqidG4d)^86?+|Ow|`GTjaE_Ez&vkBih75sKn-c)m~5|C{-AUXN#NP7{cW!vz1 zdkS1y8O$ue%UkeVis6N?@0;}Wh=m2KndegDkt{~&UAG_e@`U+rX>3E@)Er+#+~a2v zV^N71dXOizGKk$uod#J)1iS>(a1cVmEC&})xvrc7sWmO3_o{`)1?B2P%(2xNG!86R zRa(wLIMHVB#!YXtK22mVE14bM=xSnhjk6#dJ_8M)pEYduy1>S5LOJj{q>l zjy1mEmz$Qm1BkH;RX=cr^$$67V3WXnY_k)|2eXcdh^VZ*91G&;;?fC@6c?*isqrY> z?(IE?D0z4YN>dl?;G{%!J*5${icL-?X48sRd-xECTF9!e+qS#m(mXsb)FA8>ocaCd z&kKZ|2<;l;9(iFm^l1hf`>j#>Drk*QyDqkku+`#X)sK3Nw3xvP4YVQNsf*$3UImHC zo3NKG-w)$(Xf=8EZq9FYXHS|k9}awVt>IOx&8PyFq`akIruIu=vdzV@Pw*t-*^n&i z`-UWxr?AI#UM=!6W6jBGCCL&kppj+~e3%voSG`{- zcjS$G^6<0d5^`?6fHPT=Nw1NdzF)Ul(#)7JCwH?w%)xLOqmvJ&eBGArHm|DAM(~CP zF8Q9Z-JpY<>oa5WVlg_2?gU$X?GrBKSBttu_GmJtw~C^2X=!Qsyf%m$Q|<@}-kmS= z^dE7TL3=%as47LW1u4qPGJwu7qS8=Xk&u*Rla-aVBMf<}yEHmFN~4BHdL-VGq``4= za$*Ra3(U_6g(W4?Ccy}6AW(-N#cBm*R?NG?u?A=A6;U7GpgN>4M9l$~N9Q<-U z%^P=Rq(n{q{vA64Rl_6jz&sjcJv}`w>VQ6_gJf+QI9Le|Ytl;*4iw)TSVDFi4Sz{- zbA2_YFgzZ8=Xn63=(BMMch2lT+DRIYj!6IbKJ>wlCz`5lRa?Hnoqtv7c+>O5$)fVy zpqKBGH=T>;mYcDT=rHe&dVC1s`M=OryWaAkBHy1^nV&%S%9>G&3`DBYUWBU3HZ_eu zSVR!YdJZ#Wm6|!x`ZFf;g(@)m%br=1j9DJYf7!8Wx_tuK_VB_{HwrBJ;`X@r}!XpkKDdc~$YO!oEw{)h%j_&2n`VO0(7*sMrRG!E=0g9L_6%`M|w{ym2e(d6ah_P zaWN)v^A^6RMnh22+~=1+e*6I1Y%S3KVs93W`Lk>I(5@Za!1d@V2hO8&-m0vMrk{@OxPbs0x$Nw^U-9MH0tCr*f(Ne2j`E#6X@U)6;|T+W~OF&c@YJX^e5Ga z48g-`=k@%zal6-7$sFcd@ZS0r&Xqa}mwcxe(N9)#y7($wH2dWueki~X@* zWlq|!r!O_e&r5?LtR8(9|E6hmzirQgf(`V;dFf> zpWy@kiSnRE=$*?(l7dsbR|RZ1<<_j(c~9mhA>dy4)yke!H#d9dhCU*J{JyMQta0uS zM(};ADczsZ2{t6JWqPHB`ucVtS5oIs#5MAVB?Mxv(QHb6p`e5IKe%kgFOQovSvueg z_HCr{XQbZadOC=BmI#1w!j-(zKYGFU8I1~966-fN#C7WTw%$IUJ95$e(_?m)EDjw{ z7*EK*dm@#=Ie5H+2VC50A2lI(vjeV<8IFi}J!8XDQ`2f5?E~!YJqR$%Wv;69oo=9!qh+krW1R7~B=Yvv^uh;7?gDYoaNFLmlB zbpv}G8J%C>S+?V)3~r|QuW@4RTT!2~i;caP_p$xHOYMvYo2IO$WEG!iTS#8ibAw28 zJLx+t{(1w7{RjC3sPzlKmqeMSnhh8U^K#52GO{vN|CS%_*jUP1$;+qmWuy*ncuO4X zza1=6ZCwsr$li)z1zpHJjIu=30BpL!nzkn7?}4IEdeJxmdH4!z`c=<8rfW%@PL2>^ zQ-fEsTT$qc?hmE9*c3VpGz&f3^w)vH#z$rsAwXOEXqgwJ=H;@pQ@{r;h5o>Pd8i>;)q&YE^q&FKmT(R%) z*l3brKYM%jxh#|yo0ZN0XWF_1=OHCPGU!iu5av%Fls^y^C1Y?-aai%TQ}5QATi=d4 zE|}G=d7N-?;Au!1wVK)K)3PeJ;;oeS0qoP6G!l)?GdYR&E=u45-GM*q!&LWFjgi4e z(5-%oMAjkekNL(X6hcEp^c=oK0wzA$}(Xt#th9$>6 zlIHhJ**eW}5#K17RWpAaXLOwHhS^@6P9wDrLt4(B+==DS#I0o0?9gW#raLG345tfZ zW%t5LX;0tov`;S=q0V=0#RO@PR=6nzgz)g_-?UOB0}p93{S=9ZIPRSIZ9}WYNp!mz zZHi-+JC{&Fn6hfK$T7Inaruyxh=Wy8kp(!bY*eZ|8#->0MR7pMyg0k^nKnd^83Uev zI4ycH9^vN*?(kGxr6`mRR^DG~S%>}5>YU>?F9ZoZC4;8g346yz~m|x@)u-W~BVy8>lV?y#jRg)bx ztR4qq7SZ5?jLT6&=owmZ5-r;LtvLIdatqDBG@r0m8hl9Vb!^<7kI9Kg2@!ej1gVT- zU}hDyJ-G)8>nPZUY?;Vbw_=TPc|bn!gEy5`GOfoo4TDM9uvz3nsuOGQc!RC|5HKGF zMMW53aXpN&trK7ec&_*M_Fy>6RL`Zd8g&C}Y(v7r!pvp=ylKR~wm(52C|-DwpN&?>QB=60}y%sTQZ_g;=N9@89roeJUZLlf$et< z1_Nkc-QAZJP*;?UVCQ=B5KeBc_OJuS)NDeh7h=JC{?8lsgSi1ctDFduEqiXf;ia29 zG6HxOSf4dIMHk{PTTANYBw}7Ga@Yz4&dom!aV7q~mS;O|d2oKq`-z@NjtqH-vmRvu zD3l+s&M}6rqEE*pDa{y`nyMRpe`b2>4MDl4kV5}C$O{xq!jxCO=~SeoGI&Yf;{5?Z z8?W7!mGahZ6a#gC?o3#!#E_qvt&^mEntL^KVPPTm@I9v?_9U(XG4V~RgFR*HG|YgG zeEkR-U%#G!qXE(oE}FS8yN!-f1PK-XYGqr|>-#98kbT#q0#+B(9sbQW+N^07fpKd*9y4LF(N@@xg?i(Ghn_M>)L;d(!tPuW zb`1>qdjIxaitE43jfH4=(@y6q3h1K`GgZysdi_P+lrQH@trpiq-|9%b+IpRtIJ6P| zblRnsQ#q=;B;su3Q-D|&^vzJ4@rET;@PF_!o=;@UU4Z#lc;Ar&?Q! zbhh-If?vIAJko~^+HmDLxwHI=MyCb5H8oJ#E=8YI z_*?_yOt^oIzf`m06)$GxlIjMGltlT(3o#J$8`;{X+@&hS^524qJ+19uwT|BnEnY}p zMm&6uTz6?c4H6lFs&=LlLc*Tc4?0KiJ)rX)@cbgFV8<7U7#FisHP?1AtT39VZl0F^ z6m;|A;~VWy`8@ap_00K6mwFDyl}*Iu<>ex@iY1o{Qh7mklQFeE;{wsQi}PQ3<7N75 z_9CAyI>nTE=?qY+`aPm>Qnhb(`$2!1(PF^hGVQ3;)PV^;dX-7|_TbB_4?;RCSE@NN zXghg3MI?}~$k4Y-Kirrn0ir5D!6GSdVWaM4DUt9MeJm%5`8LeKh{i0!+6Mb-KFYTx z*P==GeUwExwpI|O7?LF<^oIpe{e02`TZ3}RrTTKxy%RAz2Y9rBxlLKGo@ZX4> z6Jq<>^~>#|W#L8?J~f|Xx4KxxmCrMKQZ*A&qG$!ONR=@XW&*OXjg5`MJD?1KK)}NG zRu^vUsKjhnj|Nw9;m5~wa~49DEw#08B|Xc#!*Mi{|1h@a0rYkOcL)jL%s!Auw6s~RKu8NIw?y{>{yRl%@^lbpP*74*LbeYFwq6CmtHZ*08T(0akp~BhO$AeK zcd0j2lfS41B5PVrY-BJF)ptm`)p~R#Txfr;j}n57ySDNfXm_Z3g(>Ms^v_hQ^`1#c zKHbP2eO6yYGtbftb|5hIo_lU+9l!)a*CinY2{#$6`743l6I#?MH}?L%2v848b%n5F zxckIQo(ku5LhdgYNn++mvg$&yJFMDVE=IYNO$cM5;jeyA)j7l?o9S4>iu|(q+$(si zrjbzJ%;!vcIBS4*prtse9?u{zqL-+0njogH8fABXZoU9S@<$CEKlSh1@Br5gIAxn6 zcM(LXZkSLThWDZSp~f%)RpQFLI}?HlHBa(01k%**%-Q_dbUpI?UG0f5gl=pbukS+M);zzK znA+&%I-2+t!wOqbGWTmUe$D4s#&IwVUdA=7l`U*sGK!S*Ll$s?qC*-2(67tJ^We@^ zhODI4?2-I)S2f8kp;j`Vehq=6jJa9;Uqg6CIX@fbOi*UctKK%JcbfEQ+9mx^eNw(z zUHY|Xh-*ob@AZ;p4VeDo@|nsmkNkEIR9EzZ$-lexvRw~n-7Hxmjfk4{DjmEJWZQQr z_N+9-bpRP@eaK5ZwZL0x#)DObLv^(+YWhs4^~2mRU%KIy=Z>Ky*t<~{LEDtgK}ZR1 zqqVPvlE2KfcI$_`9Kc!vX&|XWeK(9H>fbSsRW`P^aBA(b+A?C|s>$OdLy`C4^0VF8 zS}=lS#fR}ayw8v}M~LDo5FuA^3e7Mv>RtMMgQCnQw^G*KR$BXRrnEWp$;nA~t`lx| z4r!gqf9{o<8=k&IMS#4a8fMfC177(~*3qj5X+gCso)mPIg^+~^~a zIi;tq`afD<>C9KZKV#s=*v=fXmY%aIyB`u;vXIFY`3oJcWZWVMzHjxY>uc(?|jtgLK4Ks!o+4R!-htaQO zkka!jz~3#^tVm(M>yuL)hxxR748;Sg(qQ=;>wApCl#u+F>A7FBD|)NnS8dK@ZxW@G zIIVQJhX)mell{`GN^M}gKEyDaz8_s!rA72p`_r0C$D0qWGySfZ)tjv=RS&=QkP)cK zB#X#ic1}}EfduZ;(XF$dAQP-bSk!+3{Y?GNxYd`3zMq!@r~4BH>%(%M{wkM=cuvSk z>A?=)_m|~NYkTJKgnDTt8Fm_3D4gEE;^9GrF#L2PNkE<&CQ^qudF-qnL2;5 z4wdgFQQ$2Va2Bai$#HM&#%#)JA90TmeA)~u7!uEt9!tNGa*Ai~a}zebqG@ILXegV1 zJV+D~z|66@6C78#8|FHo_|E&*T&(Kr{B_Ba6V-Z1JMZCz7%3Z*O`(hKW>ABa8U>_zGVX{2!z|c6~q@{s8hHOb%Xp zsS^4IA?pA{|4{fifM%XI!~WZJR4oS8F?kiZ!@;n@o(MKD?B4ioaECuZohJA_#jSZF z+n+NBwA~z;i$pczBtU@Axb!~ky}pE|qLZ(74^l>bI+LqQzf!6?wi5Cs9fCU4?@ColyvY_PW;!oDK7Qk+PNno7 znO!*SCoQ{^= zWlfbQywj;2dfv--{ACMW4jM>9!bK9XuoSmC^e{Y;>o+6hJqc>jNe;r6ly^TQ@OFhx zYBzYnWv-`Ty{{Q&NB^~U2<1>i?5+wPOK>5s+r__eKS}7S-EFw+ zDmLgzeHkhweVI1}jcQG5A^k&J(ZC2f*}`eVgLOnDT$kfkIA2e4Co7Nq-C1}Ank5?0 zV`|i+^p>PC0MeH!#{|xic@W#bHt~MyW{l5#QRSWCg--ek$uR((_!|e0v5L=R+7IW2 zvY!3-#G&>LCax#ba&WMTwEs>m{2P*g!DmIo2(D;;g`u>$op)|YM)2AYoHd^Ku2ujZ zFD(}<-|N6@w2=yRzW(xQ(rUaI1P%?$kRpQQPn5)Q!{BGOW|nuoef)DS{@Nj<5Kk#Q z`FirMxBq7QELh>nW4}Pbyq54nTSQtcM6<7AKhBOPL;F6xCqg~Sxu5Xu&6E3Kdzb>d zdCGL7T*8>)TL531riKrorZ(z*M%BpTUfXSuK;EheeIeiMoSls(GFaf}8wRfgE~S-+ zc*l^1TnZb8-~0m*NXUT#qzaBYqt0b86u1_yWqSBgiYhPJj9o7)-b|iGt!R|x;ltZ! ze!uggJDoQot7r|MO|Dcud2nsN{OX%w-3jyW+q_VS53)&0nR4`F>mfnl zQgDJ9<+Y{ParpVqYxyn}mlz`dU91E10knA7sT@PGStvDWOcbT%s)*W zy`!DV38HKJL>Dx4@OJfT)V?bpFBGC_piL5(tWGHRz=aW#r&JruiR;1SQFZjV&5>{# zeGNeq3rGx>ceC8oG68F3M5-Z&*wpJ9V?iG$JIBM-y*gGbx{jK_YVkD#wDD)t*dKc` zF5*h9KZV~pyk!HUxUr_PkgWG_dk<-K9)a7yay(~gQ2W88i>ivCZf-RFtozZj)Ryq( zj&DwqMK~*YK3XKKBE4Fw&do3bG^{sl$^H7dU?97 zR`*DhJy94VJxKrCiSH}^G7Xnb_*7eHq{etBJNy#7-m?3tyyO^iq$>QYb{I;!8>1{3 z%eW2Pgs_)+l`dwZP|AB*`h}kcr_U7Rd717(zo>%Qu%or}A@u>;rws-yGR#P%i;Keg zLIs7`y%onvEr^ni8G$Fut0ud%tMxwm%*D@ zLi_a>Ypv_O`gS9Uvy3PvnHRL_+y;rK%a4Yj)f(Oxiv3s+(kgnYFPzC^0seLE8~!Re zYo|&>Pr?`!1b8E?N? zr>{}6)D#pNiCf$0>ssme@cj>~yEb~DAlg7?i97gbqblr?An~4|xMFhsw>^fm-#g?Q zUk|?&@sfV|i*3$CJv}uaUFF}-f3Qc=LHfE)#2+2Y%bZ{#B$!Y+-km2rS5?89>$ETK zwY|Quq;|XMzU%U>p$|klrBS|(>TJAsW3;%Ms}(}|X$ z4dAv!0EPmF)QAY_0O@_dzaljn&gVCir%!+UcyVAxE(dI?+W3EgFo{oG4$Sti%h6cbJJure&Ia84>Rl}XOPvy_xJY=EGlmlV5T(W0qF zVIJ{byncMq&N{HX>YZOwf~`?RHak1p2hxkm%Iz@baPPMAFa$rtU=RT@(}N)!;?)R5Xl4$Tq*M129pmOBru=~}sJZJk_V zNJGW$K5<2I_=R7k{9*xNJ1aIyaw6b6eXvd6D7(=D>Uv&vuREDT-8;>)>V$Wzah0Xj zL11e3X(uDJw9R$$J+En5)3JuBpEFiAhe;XwHUZX)L#$c-J2j%+f(mNABBe)MVZ+p+ zA)I@nX9Q@3kAo=8pnyte39zxDAzd(s@793?I57_&pZ(R=Q7Z*eYM^VGc|I*JRYVe% zCil;=@H|$%EPB$EWNd+)mTFsVTz>Klt9}O50reBS4Xht(CogqiiUd)NgZy^4A= zxS7a;m9L1}NMwn+lg!jx)>s1i?NR8}(s%Av<5k#o-M!D?g1v5drT1w} znE`WjxwS{btv=J>a%1YZrLQ)8j*1zWGPCZ%=%+*{`;0t`L#=GsdT)B0M<8~{Y#~6j3J(J1eRj5&H$g*raUV2Yq{i#{9up{Ol$=j)9Sm{ zn>Agtir+r?8U^=dh(}Sz4cte?4M81s5eqOw#Cz8F_75M*E~RN#Wu~z<_`Jxl4Vpwc zxLb;Q_M;3!Cim6dbn+PM>LiP1=aSz*_MS+yjlZDZf<9M0XkdW(Nast+v%rtD!p=BW zp=le)z$j3-y$NXLTtgLtvAHBflsFivZ@w;p})eHg+ThxV~k$ZqznFZiMPWJ z?2nmx{$h>pe#93t;^x~2e)I&tqM{7B-J<>UgfIa`r%OH^=Z?0-Auavh1PORdkhX3_ z|AUN-j0N?pD~Lt;VQ=5)Xw2iUMEr88l41!7=hpbZ2LJ6q8}Gxd%dTeyM*j)N_m$d9 zcCAdz{7TA1#7_EKEpIS4)w*3PqiupwPEziU)Mu^cYnEuok%YFaX;fcGS8THkPJuH} z{LG{P)lKf0G}NJU*edsT`NLbkW1S`i*;BfJkdsmw&mZznyWlV!#RutD?m+R~*69%k zOe=IiBaDRXk6B3J3|&{kQizAkT9-Qd#NE($=c6lAm(uMAP6fw-*W-t|QfPnboI@u2 zJLWbmS3^CJ(laJ3t6BQgKS~YS=l&$tz9sw%%26^=)wt5`Ja=z79+u{RnUDB$7E)aI z;i-pv&+n|tE&t@-+@-7!T&!kf{Rb$&z&Ps}0+y5GWtWTK^2b-2Iywm-$pm=$2^yID z{oeDEvzc%fu8mxlF$7$0bfi9R#z+#h7~^!W-ijg?fIEm$BSh&Sc1DSmZ@C-8yz5X! zCZXDjGvZ>j-psJun@bD`pgf`Ludq!2{tftL-o2TbnLIo^D+@?~PG+w{AOti*YJgP+ z$%l{F%N=!N^!4}C)!u7+cBl?KtBKmrR?#ny;Xaozy?p%>^VUZn~nG`&x zX44)KQqr!g!xMlqz%gV} zLKwUcO3ASp^KwsEa#U1XzvhJV8AUJnNUwnYcc{pV|4l9KW{{@>WFzD&6hhP-TCobo z!%?3x3Pd<%GCtIoZj**D*Y;B3EZh9$?l%S0O7wGcb2CK*ik&@Pva>55K6u|A^GkXz z-2dbDgE+cNT@<`EFaMM3@WWC#pK!YRAx&8HWU0Y-US3|x&(ud7n7HW#O60^`PEI@# z!i-hBSgeCV%-dV@am+Q@TWFaj%l=&qt@~X?CcOn~^CN7wCfI}uQnnTr18EbAOp3XbC!>D$2B%G8qdeRB(&CT?tlyYaoM(ayK~CJ2p*$@+VB8u zbyrC0409ebMQ=+5xe9$QL!;E%a$xoQ5=T?_5eE_(e|&zWc_54?gM3uT$Ak zNCqCf-np}(iHgCL!p&7$Z}nlEzmBfk=farqq{HU%21$OXwv-UkhOB`i1ro@LFN%T$ z0ufS6&CX6-u(HK_2vRY13e8j`h#fS*B_VzWD~P21d>JtJszB59!na-Bhadt{j;Yf4Vcv46yZpS0^JIBaoz*=E!KzN3hfO23T za{buOkzlp}guKA5wPgjw$~&JxK`{fY&`D!Ty@~Ck1N!FZwk93ZJu_Wa; zkKu)Xc`z@^{35T?0jJg=Tq4^kqD&Ny@$=$~1$LE1c^0uKzI=fv}4$_$04KN+6(ej5@{t{*I|nke^dvOAu&R3=mhd zs(kncgV>5wiZZ08il!EScKrsq(&nQ4R`(}tAbL3=S2%XE_Ot7boAOlLcUDpJnBjPk zEZ~`M=3jfhJs9;rAP0XQ>fK^)(vs1YVeWbqyNqC)Kwh|4U7ha(h_ri%ZK-Di1MAl? zl-VzbE%u^vI-pInznSAXbZt?PoiajgHC_G=MT2Su-1=_;&Vr za{Nh(WMAIWv%?Mg)}v(_hVfWQTjJU)tqeyYFP2xb0lL8l>5&3Rj+uQBwI$z0ht~u4 zU;cGH@yxq+#cef@7=G{DtW=(?&DUg+?mkTXScoFfk3-_$f1 zn7BdOX!4LmrM!|o)r$+KN@en)_;en_nvG7PJ;8I35J}hTH?X$|v<|Os2Hp3+s3$Sn zW5zPDBMJ;&h*IB*{$j?xrAM>Y)&ezaY5fM2a-!sbjAti7k5NG}{0Ietd4`D_GjYv* z-vP~4F$0`%8A-hJms>~714V_f8i^-{oHoG*0qm|B~A145ak@B@^Poy*8iwB@iHd5o*McE(mhyJlN=dtL_d%d#vTvca1s9gtz-SMEFy4ghl-Z@DC!K7DHMRS2* z^6wkox#L>TmOG*d8vnM3hocM0RRQv+@*)E9H*e*#Qc{;z)TZ{py+BF3sIVG+zI%_k z_J}LVTyruf`?#oqcF(SY0&fj59Rns)3aSo=ci)h8pmp}2ju59Hv{!FvB@GS7H^;Tp z(j1pjo{zi#gKB}+vE-spuRr5@3bXoRl63U#En5Z}dW&%@VDr=O1Nf4Kljs`o)^DEdoP=noX^)euu^jyx{JP65dW z7HWu}Cdqwjf|xye$1msG%Uh&)A9i&d zq5yw@rt-8(@Nv{!y4)YI3e#rQ?$~d>Fo7>kKL|2ARix3$@DcPkD>VY57X>VPK|V+d z=4pBqTH9^wyz138TK36%tg!A-?z%M=+)9Gt4^cC-!p7NdJ}c3FN`0G(7*F30MMKNy zBUFKTnEk9YAFw)n1E79ZDSpIVasuR78i{1F(L?Vg3FuM(5gn%rM;P;`J*Q3t0jD11Q_xfr?_hkby z#cCT1@+UU*dKepVnY;e&g*i1+LR#bYgBLxlcK34X8=bchP)ex!McUBq zWtXrl#q0sqwKC*j{n1URlaTVq8N$Cznn!bGjbhh&{fW;$TaWJl)WP}0lJtKvh`Xzh zyDO8ckg^hGgZ; zX=rf9?)BPFfDL;k`e-#$m<9haf`i|+w6ti!p-a+N#P)IE+pdJESNLrMnhcH;T`wfD z+!`JPwPk!JJ%heA8Pk5AO~&48#6cfg7;=Sg&R_j{;22+v8KSfih~awD%htoF#$c9> zcGN*2T=n_$=ey4ZWct*%ZzF&IHbtCQLaEdtM^RqJ#%bFsaPVk${qm=WijtC#DA|Te zNg!a=+ZBZ->PYWw6v*?sH_Uqk9yUH*PIUF$%I(H9f-P&sU@<1B&u>m)|EjA)|MPgI zIq|79fgbAa4@Gc0GemTY&7z@@5W*gExi=fJC1j=K=Ej%XwBoK(<1)(JjzwzQ#(9g{ zw|*5!;dBvpPiy{d@pSQ9_ph<}ftD6NM&rinYK9dRg@)b^yttNRe1m-W;raGhH2gfD z9;2Zd9T}4zhi}yU8216{T%qzlc$g%i58dsBTx}8=7O%? zr);zoN7xR3AHW{Lilct^5#wN4PhK<)N6Aj$NloM`KMT@VPmk!Gz!Uau2?4iY*y3X;>66kLK_w~RTIxvY!$t6N+27s6j$uPh0uU3__sgSoy8UTG=otbCEQ zJr!j->2eVEHZ#0a(7}0?k-S~TEiETIFL7}~GAchzvu3Bl?;Q(U(IS=9f3BNzl##7H zE{y7<=EsnCn0e!e{PG@|Bf1y6QUlO-jz25{+G%T(#nuq?qWpZ=m?OXKhKZq}Qe<-b zKR+3j^i;Uv*Qvt3t+)OhW)LGoc zH(3LtvTu~NH5wgOU@la0d+SzC!VBg&{0ZiFFdhYi@b@O9bJU@b>z*a18($dy`NZ+bNbSX-6BBO95 zkco_xY|UKQL=eqOMj8=p{f+nXjt^%g{VOjADyob2*knN?PJ7vk6ZMrNmxVBqq){;V z>~u?ondn-z>DB4@()~yaq8&e(w2vS0q0=hg?w^6u!?@NN;f%`ZUEzj80dmwrDx8M- zZ%!YpCXNMN7?ejFHUK|Myf<1K|#8aq_9Qjg5^Vumm&$ zE|WD|0#0PyXls6=usUv%_p6h^FJHe;rl(n?=;UiD@vmFPK3|?LG=Qivt6JJbj|>p< zVIEz-HsMsxO8l!+>3SY`+r~Tb=Wjm$(aV63!_L2d|E`U1pJ=_RZZ|9}f9@bdeQo3H zT*71d7J#{_A3yR1W7oEJRe}dIay-rO0_CTGW&h^GhgeV<)o#B+jzXxe<=sbMtVp%| zY7kevX`R|tam0~)vK@&?SGv$j(M2wY_g~`Jc3N&K3JK%FYhL`SOiEqhc6cDj#uBz& zD$a&Ww{mdFxJ|?EKyK&tO+9^wkgyaQxq6o3DwcEn5f@W7wyw%=$5UTkFZ2*#ZYCxl=#%2JPU+CA1#?D4*Scz^$~gw$^b@SijI zEvYVGj-FIRSL(Zmc9tgxWPeo}1^JbMR*u~>N`CM~rEqI>Xh;ndJg5#xr1Vhan=K`Lb^ zjZ5bPDAE?@VjQUXMUJvyJvInIq8<73*Z-I}XY>-*k>@;-g|VIpV`JL=YIL{UltO&P zX0~f^_4AP&&$F%lajpCCO_}G>DVh^| z6oU-CDvwf9z*9)i{G?~!;FyU4(V^VkQ_Hw5?qy)C2-h9nfKtVc$N>d7M6}umJgBO) zo`G5qXDvOyqE|kDE?SQMLm)2}ytWFz-6W+Gq_c*tlRF=qntF@LSTGqnDJ$NKEToqU z6ah0_DQg^F;Xma3J>Sz7+y>@$bMnr4un_e^rERM|9s4!YKj+HNpI=*)Yk&x!#^KYb zlFmX_hoe|f)T`o&4ko|H<+!6v1otG}+2Jxv zr%o?LPv-db3Ykr;GMD4V8+I`f3@N_Y=1mQZ`-61GqK# zk1IVi5fr&ln4>CVGni2^Bqpk>R%YVAcvGcMqcz-0P)~-O<%3G zeBER5ElV6b#pC+tqriOmBb2BfHw74|ImE-#3a#r0AFHOQYD<+qzu4l(3w!Y))pZvU z5>QM!<|-kQsS9k(!r{SmW!|*>j;;y)zsH~E2jGu30m%>Wc_M~}hNOs|TCVW_eF!#D z!yi@f0fUJ?%P(|1stB}Yry@kq(-UgFdE3}JxFTg*@ItSi1I3xTxO|UI^zTW8Ivwma zdafnUTc1%6+j@UF{+74`2}-4E=DyrUo)*`=_@5H$Av&YzSYtlVk>?ntnkS#kyesQX zKlFii)?HE&D~6iFcKt?ItMzPg&Vm%;6B6kD84CyrIlmLK)`m~@!nMp{^H@);tcJ#B ztjq|);RAX4x^#-yGS$H9dfmbTodz9l{09f4>brwDl~m>i(q0jwl>e*Y zt|WKn~PeBfn_g>F>-DxFqs2Fi}z6Q5Sv8Ji(#}O#%l- zj{@vS7{-0-ZMfxY#oY@JO?GF4GjG7peSd70qyNp*4>sR+)gxwNY%F7qRZ&9NC^;&GjT;5uwxx~#?uYJ4qqtRfVUdGR*qRP` zGkAzE7VUS?=&`;uGLTns)~qn7V|aEBG4$4g0Uf;H&{plRz1*regGbS({{hzb0n=~t zObzHgA-Yu546^2iC4XG}8D!xB)_1XM(H|NZdr3b8dlXO2-+NL*qXqqM43^^^uCA_h z%_y2>Fl;w=-DA5Tf^w4?=mL~2PiA13UT2{os=p2;3Uq1R+T5&jTbzHi!GCP9W_$mt z_u-7&$fS3~tYGUSW?1A%K~Y9CDx0LWyTA~8!DPu$!ADRF10sA04Z^6WGHgc?3vN1S z`!sD!-dr|yV&tyxKfM{0Ehvjub4Z5oxeObTHE@<~pKy@uD9%&Yrl-M7wv|C+>t~_RrAz>lb+Nf6~M|iyYCs1}$ zURJg(5~jCXeVV>kCfgwR-mmPjH92a8#VQdY>$Q^gnK?OJ&a|Wnotd?cf{#h?7FVTu zovjU9+e#6#8~(EeI>*=slMVq5y~Wmd#3_1y+VC3dGO;chsD5bpFiu$sBuoyEF*N4+jTO07Ic%QJI|g}+Q* zWQumpt%3I_{w>rdZ2x80D|5DuQ)Q>b zk%-0>G-cVND9aYxV&8Q#7Sod0^t?O$#-pl3qqG#^PDsgVu>rxvC@{OZ^Y)G|uOB~t z{NgJ!v^U~QEmeL|&GGT*+DL#!)zF>$Z-zo|b?IrcR`v1E6>aeK3sNI16-MF5T zQlbb#wU7uVv<|*L(Po`WPw5sC;^RV|U3oCQr8WpD__b`-R+OYzP{VTJQov`sHd@iN zFV+78cNhFwCQFr`0ZeXn-YgVXl$&+&Zxe@D&N#d!r=IflZRC|$oH=_;^#~y?u}r`P ziSCexwia#L$ad_DSS%vkXGMYAy{or_fbIn-u{e+xZ6iv(2tq8R*llO^A>f*L)96~K z0Z@5ec{T;OF;UF+$MO{4x9q}7&X|eVA0>Ri0_y%}-)VPeJ9#X{dOEoQ&5&7MZ?R=jND9as#&VGEqk;JW%PV~iNY_0c|#h@r*2*1xi4=_^VwTW);k?BAp!(M}*-yc#O~cpQ_L6^OTuE+=={^o?hCA z4-4hB(88Zs9)D*(`uj2m7|oUrl_ABS5|9)90kLEa1$NTD^pj@Xy=bYz6`lcctHa+Y zj0&m8Ykxcok_OpW#CWhfUUB?xwj|6HeX=t5gMlJa9+A0{dxN&orS3l3rOPNX`pnT) zk6S%kA1!JaS9J3#wK*t_?`&v1SK)659QPL0vx_`AdJ}{i^eY*OXSop?h&#{>8;P9hQCm7rmhJByp#M70owxeQ2dnPmIBY5x}kJ`B>9%SXExti8Lg z6h};Oqj!(4UhQv5>6zEklWhwr4HD$V9)zM+e?wOD@m{u%wfj&8GR6;SB*cLUc%6y< zIEeYq#lRz(*=y6t1}&xbR2Stx+Tvo{Baj2^A!ke$u=PASUDDLozzaT~^Y+F4GpD-= zL-9wW5xc_ML3v9TSRQ`a?7#{=jf?Ff2n`*&(B_pbN>5Z6!RvVGmHb*a=kvOO zZ6`e?7F~^rdOE6nt%-ehy&niUhWQ$;|5@j(ta=)evnxcoL?Z5fL0H!LowZEgnVg(2 z(@P5Sw!2L)Yq+>w$K&b=##}4F>8s8_B|Ha;AsGXhP~aP;Qk*7I0$R^ygOf{ahp%?M zez#j{^Ud=KUHP?x`4w?;Sl!g_R3xp*_$3ZhnfqiJ}4cW)b7O^ruOAues(Sy$`RycjaI!b&EhsOdSaN;{Y zq9&*H(EueCm5uK;RaW%4tZs|gDm-}fC5;R3dLCJpL_ywgiry^^RLoylqh3`hxwyFG zB+5?45y-&~o_6~O=dCm`$~m2qFt6?DKpEPa_hG;@6f(KEqOm?d7a^NiktX@fS>dtE#Ox<%5=DcM=8(cz6yEqd z>}~`twF}b?!nD@<4C<|ymY6_v9VZtXmdj5#2ek_cqq*;dr8sOrB|@@*u1juYamKKQ z0TWzqSIy$`@gmj(W@YY#jnTX={>UShfq(XC2W+*8H-OFY6*G>)&kA5UY_af7utPsU zW`MdRdrkb;cR*V^LY(z3@0cOMo+6jWg7W)Afv4*`V{H9#?3}6_J@!Nm0n637HwD7; zbIrwO8iw_OG-QHip}@s(a$cFG4u*18SWnk7H}Wtc0sb?3HZ32jp>sPH5+d^6zAvBy z#9O%j{j&0ZNIgk z+b3__3$Opa5Sb$BKA4)u+0(>-VphNl*Tw;4v`zOLz3LfY+$|~A8s6oAh`=Qwd`cl) zLI66(ozX2TcJw0m;yjv3B9!~m7knKcL0U!H+ldQe-vSHFAe=6Pr5R&ZW_(Xp`Mnr5 zKH$muTk33T!zQ8(iLAzdI;z=VijZ4Sdtv(VFkec$WR|4B=FbuK1jac;1_q7|@8)e1 zA)<6*IWc~gm%p~P)8X1XHt?o_$}dmBf48wmDVOpeGv|F&jqs(UC*D0BfsCfkK`X50 z=cbE)a^7>NF8lS5(Oir7R@C>QgiIIl>d`_}U~vesm=Qjdh95CdZnr?BZH=jWZH#H* z6_$DX(6|B|^AHm=^VU*%ym{j!jt=Z?D5I#dbxWg)I2p3EG*67vYf63cpHrf{3CA=E z*E8p`JG;WNTXP=q5=});$BC(gSD0Y{v}k$3>QmIE!ghf0a}#S8rOfCQ{eEKbLAx$RL9j4TovG_%dJ29sB7QR$;$w z-dttP?p|>j>i%Utc?jvL9CBD&=O!9qd}-wOUV}`?MD4^vm?+>zh(7hbSl7*(t&)l= z$19qoFJcC%BBHHK5<#7Tbmm%gDw_GptK;ZsXl+n*$B)yzR12y$4(!ze=_I!o+;aF9 zh38~Wb?VA92wp4yxqh=K3fkSDS|zhdvo?w=lu8J#$YtxkoQjkP{O6Hz-rj0HKH_Cr zQ>i2NsUvn)1PQ$rMO2v(%Z@Xiblmc_KFNeqorfZDYi1@byyzvrXEG1@dy9FK2YNP+ zrA`+dDg&Jq$DxSqy52D|?UPiCPhY4ER1|99?bKI3+I8HBF_&5Lz4U*dXnE&NNFlPwtW9Aq z1-d3l_5rywom^l>Plp2H8^MKAC^yIbGz zz6sK0)8W^9YXWO}+){~vNOGoS)DwD;zh+)|skGog8ZOw6wkyo+geA!`nQ7>lY$@j7 zrmx?@37=pJ1nH8GZp##JgRd1S>=HGoZ%GP;@8?)Tm{&|*hq5s2xAM1< zodmhD>^zq#t_gnQs|M>^dVd~!a{L$sMmyB?RV=O!fW;ikzMAoOp*&#sMrEDXE&`-m z&hS791K1y@_AX4SX9zP!?)-yp;gb{#Bv{Bg39R~GkkjI}O=@>A#kjJu;% z>wVzbpW6W1Vz;^QzGr@YK*3lzl?N&k-g^1h3~s%Sd-VD>z5+gdw0scMZYy$*=GQxx zeg9-^Yqbw9j!?6UPy_dLgz7Fc#B&hNIqu(%=h(#|4AA=5VfjLxgaGTrtfJM1f!gf9=mKkxllG6T z0Y|T;OpKDM-MZLo(1EZ#12t$MF(nECj1EAFP}kJlCYFAD?NeU-;Xts%P9h%&HGHBC z1YSo1&{IBYa%0L8-VxWCFtC^oe#?|LqULrwO*5tTsfSgxdv<`D+;)rqiJS~4&Tr|J zXi*A(tan@Yn6e3Qu;|@S7P8w&ptBc(TS)RI_0YsL>#cwM`bYB#;ZZN?v&p4gw8SM% z?#Sw*am8FT{mg?Wm|M60vRj$ZNyxN(c+%uc*R^uZj{n1foWMA!^Fonn{s$3bvDsKd z4N=b0QyimJZ#Nq-J_l1zL`3+u!a1Q4y-%VlGJ}NRQ(HsX{IEsrrN8yh}50g!<#LBab2LkVi@cz0f6c+`TFi$?Si}L{1 zQQD3;;1zQxh*tXBsGznJ2N(1bwxXo25Y|~o&F-EHGx+gfVWq6M7Wr+XARSBF)&v$D z=4ZwPCZ9t3+f9=)nd;)VFUP|W%>C77D_-tY_#$eyVt-v1W9u(NaI43n3!962jRx|2 zd!frhU4wAgOw@#M`91g2+e|FH+0LXiZ&p$U%-+GOP2)S)^UXjkWIYx_LO$R*xsaUB zacE~cyb=!YM`N+o^DF9b<^sOpOwCG_r|G7hMiQm>-?QSgMj#UYO~x=`r!!oi+wW%G zv+9t35dEI_`D{L{TwQf)uG9AoYIIRciCA0-5LRRsTN%E|7T*K47HG}gcde|hSJl)M z5dWZLod03c$}MuhCTx0JB2+YwSdo=JCirbUm|~g-*wmtBgh}yc-LOGYueAV18@{rS zR<6$BQ~D$sRk)&U#NSmI%~`-f=;nyZ>njMmH&{=YIHJ?tt(RGkXS1-p+Uo7s9tTgW z;ZIXi$V)9<1rQESF*P)bLXWlIk+G%M!LxhYE=?wcx@+N5zQTNhcfz1_e+X0ZjmayI38;#&4cjYp9v+In9gOgL_a9&xdPDgG~xYc`wIH=3@ksFIF zssHP|WL3vs974Noh@A;QP@XF!ts(g>{qjl`W;?h!zbgZAdyQcHtgRGjj^$l=ZyN^d z>GtIGI9isbPxVDSVMC+Onf)s#X)!174|IbX>}WVPZAuK4tZw2b{Z-A+e?Q!rg7CA| zy`%Xx!?S1cUcv>PAwqon+|vK#^-z5@Sct|K%897oTW*(>nQyv>nsrlH*jp5FpNSVd zC-bP^se%guru)4w7FGJa&OqiSw7P<)r$|PAKI3E*z6bL`}BF*p~SE+sp8t32rk6suRC2;{5_Qi>=nKpW%m!`rQ0>IQ-g%{ z&Trnh1m7OFmOdMazIBhX&);$VV!(eL9)0+b4~(DBvU#c}xw7CX-50HMbqq>$hYCS1 zOm}Cdi+^$Qk8W(`tjY=I$n)5qzK2T;(?8iF#1&N`t(cC>ds)ooFYqD4*j~~l*x5d3 z3l&a|Jw38Iwe%;_%u%~I`SXW&IY=D}8MY;1p{3YeO(g)yM# zLl#%?5woxv|FB6{EVaxxjFqyqqXpw75kUsllOT6OGZW*rAAx_b6!&FL zTTuASs+71UkrxdgFhEnu-Y~5(fz5&%SJ!X>7 zeluSBBxBwA`+DL?tixMxpr3oUy?ApN4jH=_j$;#3l=bwe09rjeQQWjNirBySM&yq^ z$2@CmY8xSJUyi;WR8ivYmpkEb@>(EgV3=y-cgZ7;cBYa8^_hT)qnm{bp5bA$UB|yH zVGa;Th6yO6eRDWv*jXw_gCauu+`GHe`c5l!IX!N2Med|WK)lanmWu6!!TSGfYp;#W z8fI*TJlOmEYCXFh7Wr9wqQrFf?8?#qX#-}U_eApWWGL%n^k#foOG#-L3rSKEy_5~T zThN}2eiuU7-__Y2eL9ju$Bm(;AXMTdnoZpeTC?0XvTu08tmCWQPcqGm&DI+7i=OF? zuw1FWLiwxGSxuvuNXWpzK;o3smdzDl2iDni2Z&mOK&Et|m?vGkCCkMt>wKn(3U85O zYW7RsPUaiO!?Fajq6z}CI;S0M;Uguxv^MFwJMUX<(E^ZZRWn5KPAD>PVl$5~G7y0u zTJl3eLQ=ACkXSr>lnEz{f)^VnyJdl z91^DYJ|{G)MO%|I)`s&xq>TCN8vd#(QlYea-%_j3*}L65KR+Knxgxr#fnQ$3g^7dnqm{_tNPQmGU9B6! zioUSuL0oZ3vqs2tVCBtn=rs>ffO7@~1H(*PYs)n0p>{=&ghVKlG|6n^bVC*f$EcIx z!jg3WR?HM$`yETu0JlMlR*){NZyo2*W=gv1S$ak~TgHgzVk;c@7*fM_grQgt^?_J9 zByFVpqc(mRbFSA5bYRgKn*+V~SP!gaFib_L!0Q~#)3HlR7?&PB=DaT7&w>CY`@Z zb)Du1f;3eR9ETv$?IW`}rbyu_lL(Szds*5auT)suJA{n;cs{r-kH6QKMK= z#ghX}p+H{As6S({x9HK1dRf*#$a=h{QQ86Uql2IOTx{g0S-GS8y`hWlz3|TRh8c+x zyXE{}%VHH&CW=%J{DIi4wLv7H(}|&C!ugxsNATEKwZ#1V2$FPni(gBvw8|;6(+{?vg$zb~GGQPwGms|V4hQIWIWxl2MtX+r zQpJd=3GZ#-Ui4)t)~o94Q{N&6prv$Z72O$9U$6vQ$9P zw1D$#y;wuAuef5BC?_FmbUku(zuUfLB{H4PQgI=7aVn^gCI-5M2h@{W!=Kpd|0?Hd zCwv_-q$7Gy~BTsQ(_D*mb6sNnfkSsUucO^n!9C^R*R zefj+KXm|JabINxwxdqW%dx6K;Ue7H;o8|9AECE@T>E<0PWwiO2eaEvxEdYG()b1an zA?PCOmuF7uiZ}s=#!~jPoYAOAcB9R`Ayg}%huWZCzRh!ASqcl|bnk&nqdYgxA?s_` zwZ?_KT9QvebMT4Tyt9^#=q=n2hVCVk>v0$#`-ooRaQkM0C4o!p?#l? zxuRG9y7sk!#YIy`#s8!j`qI{_umJ5YI}aZIQGy{5j(sy&?m|Lsl`8X3CGp2w@pPfX zxF4(4r+Z(va~qEclnQDip7P)ZyQ{0#PDKXTk~n`!YFI4Psn&0hT(tfs!6_q%J2RwZ zJ=4LP`{9e2l?m;3Ii9ZnU})Juq0sz8_(W1dAq0>Ig^R^D=Gp@RW968p;V0hL;p|i= zJ$Q$bR{pn7<&k)xk&%(5)mvvUPD056NUb$=>eVD4U(Nk@Rw^u_5~u!HiGUMCB_ykK zww}ZT)apq48-J-jY&_?oU!!36dg#rZ_L3iKZxbKtRFBK@FCZ}1idB%%OXQR6+~*9D z2_o)q9$Faqp#wSM74`|@0CLy@T|0Lq(ceE1ZlDy)G3!sPACjpM7LZf=a@Tt}s}g-8 z%SPf*fJU-utTL&#?71~48ElThaw2@&8Wq@-vCsrpxx~V^(Vjzg}KCQJql|d2Po#( zx3Z;|AxJw}8Q2uq5_(Q?zxu84_B>>5*}fVSnGN~M2N)-v4HyB(b4$BGgMg14_L_S_ zZf^Cd$LMZ^VYiq+dMY)1mX)1r_naP++>38sc<m@1yxoCWLreCPoK&A6fPd?iz}Kgl|T!wgCI$WNPt`&xlkbN(YzyntmSFZ%XsRv7K2 zMcuYy>w(3l*5Sq$f`+RC`vG%Eg#Z^9S4qGSitkwNO6Kynmly2!Ju6qg#9V~%XK9fX zAh*mRO9vkGwwl;9iS}6zH1Pu4*C7MBJ2)^7ogkFF-Yzz0A1dt?2#2TCT|T}~GJBlT zwG((RTz;1a)K%_2pp8vjk0v6PXK(?K8WV;}>>2DPAg$is5lZqLUfiEeY}ej=vpL3l*b9eQaODIo9+;s z9q0Nt->@Y{WFH9F0SmOPzWa zX`gPe9`*iMTijZmFrdUJZLN}!CB{_Guf#)utnE6to|_G(ZHbU1l}!UMn=#IFtkZ{$ zi`hggdQC633CC*6V*ZWyJIJu?%IS)C_mX(6gVSv9j|Dmgk-sylKOgZk4EO zoHG3GrlQ2R`Al2UW|J|s^7hk^)F%Q7KH?cLV$lkFio6W@7Yl3!+1%JMq*x#hlP4T@ zjd$fZD5CD3lCtt+|zcSJ}gaP$c4YE|P9habxw~ zxU3A)KI9E*b-W)F2I2)-1g|ZMJ{M4tdiEzHG;}-AW>P^@0o~h7IR5Ato0{s>!*eWo zUhMY=i6l$zB;ejDmj{lQ{GyxdEGUTe zDpw$8LiLJ+<0%JWF>EE_i?_kaAhRd~2Yrho-@*d%*-4Dl_+nUAYAU(uRSh<@ZkPL= zh@8)-zzJU*#kK2gN&UhvIMjqeA!m|Gs`zHq+~N1kzmW(ZVOTtxLX)C^x$)S@T%gh% z)LIkh&g6=uh@OCAnG3cA@rG%L<9$T}ARH0^t%6m10jpn20dVAJ*x^qcW6DFh??5+v z#H=#UmlRXk*2@N1o5@rE7mQQ-GL;APKd_u$t95$C*6o)-@st#;Z6IOgQ&Fc$HqgmgWZ@gdIU3-&>{XSV80!E_1Pms5KM8qJT~wC`3y6srb|4Fc*EcK60q7+U z&yRZQp+EqsN1M3?nTY)I3FtJ|1;4AtL6?g$9B_BYCxLuBY2Vw)a4=$n%<S zbhtGb$&G6bb+g<7d*5dDDd6-3@&hoD#;lz&li~sYRs@C7Mx3f@^b*qgP?qRFq+nzu zDu4AL9=8v#Pnj=MIyl=(uqg~Wbp!N z1G-u6Vy;9IcqpuZ;~;dB7~n&Zo8lZ{mCVBcv(nVm)SYzukdKE4ce&l4?m6y@q0%WQ zARdDd;27!dB&61Z)6vn1{Q&_X8~}PPKKmYv;3TRTxDK%SmcJU22AU3FnnZvR*HahP z52Xb>;Q#e9#UxHB6lMmHtw(YbS{i-0qdn&23E#Z%0uuUwL-}4v0eM(x6Qazp9%Q}H z%_;^4&x>-(&_Ei8Mq?n@oj?2C)OsMs;QwGHU^8GX}Lx+pU)()sYAJ?pUD6RtyY!ydTe?gT3Vb}%+U&*if>f_3 zq&FzDrRV=9EQ;IT?-hIQt*&ygZ+n4Gf=5hi4TU2#lE|Zg4{bnjaB&TA75Qr@+@XvC zYyMqi$OAq;tA7E~z;8vY;`_1vgGDECuXz}NrcwErmVg2h;?XCm00UQ$N?IR*3EEF2QGT24z zLASxJ#C>iablj!U;g}npK1tNPO`{y(ndBH{{c7s^$X>`$#qZ9rqAm4tHovYzu`2TF zB)E(JAfRF>>qR-8s)8>DgO8p*yin8Bq$z{|Gu9$w#p5hR3#b2IKQJmv5BEG6*`5(P1?y~2cC_a9DLedFk{2>Wm{yKXfgLM@bgaBJ=02rg}X5U>Xl%_QDM5C0Hl|AdPNUXn_3fv-~ zm@rI;u<;L{2kVwX0QA&8kC7M`=o=mXj#pJ%=8gLD)9U21>Xc6N-?PV9F01zzBUVwc zkpS(TWeBKtX`-|hLy76|lsO}FTF1EwszmYvxKHaTH~i2+?|tH;;>gSyn6AX0DEggZ ze#j{pCaZY~tm^=qM1e~e9$O~RE=wYyUAjVHhSgC3nl|!(W;a$A_Rgc}A3vV<4-Ih& z3XVS_sHv+PhwUno0L#2ZXF!jgsAn}<p>i3eWZ5>(L2B0ZCU4s|TJ9yKEPcP@_>J{(;j>AZMJtHpO5J0J!#)IZrtWClCLx zZd~~b>@^JdJd4BtUjf$n`Dg48XxLv|Z4I6I+oqXk;4gDmgOO0vGUzlSk2M9iqlHUF zMFmLoxB2)|n3k=%SrI(B@ep^(0<%;VJaHfr_E6M8*$&Mgjrh0_1 z^O1oJsFRYC1Ol6-s{y&Azo8!i)L9Z|%Vtn5?A-g@;-0MWDzLm#BBSiy&K$x!;WYj?*xZI~dlxIN8p+K!J@Wa4I zL&r_#{ReYb8)r8gCr1#->q}~ilwHUR{J@DFZPBFzVoh`rZ<4f)ya)7c8#By)#3Z-E z#{gtqgAswXp6KrM39h7F!k<`FW2pP)bmFO4OS;7-k1cqM$|FLONbhNCq<)WJ?}lS@ zvlg4okk%2OjDuW!ymI-WpWRGQEO|L)s`dj%UR>xb2oGF zE00$=+Ic!v`e0j&4I7oesfL`a73xP+!^*?cCDTdkiwl_-66@@~6SddmzFl@)UPnlk z?d$dFZC6S2M(0aP>aAVH<#g^$DfWezjBcyKEF}f!l;zS&iUCGl{>bkUCfI(gb$wFn z_v5il=1z~vuo$H?CnWh0L8-6z8v{4?>oAFdpe-B!*(oD%hZM$?s{5Y@aenGVpG+D3 zmysAVBbhvcNG#=e&sILC-C@0DUR3=4Aop13xZ(UgPh4OVJ*RqSrZ_(U6$GLNy_S*E z@cMGt4t6Hr^=7=mfWz2fdL|*nOU=BAETvA5B%MY(kajp2^Hs=0*EH2pu%-6Lxuauy zJ!;9)_xAR={o|DKSvk)_>k|P@-Q?H%Usi?AhY46CzZ2iSVM>CxqnNH?V1*y}iUGeK zhz&Q2@uJft01hF+AB^#{e_l*1_t(2SthbA3JB3f;g2Yf!NpRL7*dxN$T0AhR9NWO4PAW9}p5HS?g+#`FI8I_0 zF&t2jUx$me_s@`#x3BT=@T5gL<$e*ZhCN%C$aR5zjGSDowZgJJ&BV=f*bSb+rUKm< zddT$R&E86YsBh0lyg;2+m4>BWw7X-Ey>^vDP{@0P$8b=#*Ac&WYw-t3=)yX9vwr?G zPcoo2Z|)ZJ`ExDN#1qDVLQ%3JLcPDtICH{gkTbLg(G+1P)%gSK91-2!Wz^c>*#+vG6jR-5=43DJV4S zg5+pKyINoiYofx!QRqaR&f6Z7H|re1^@s~WFYVdjmLe{o9;xxo13}|iBD*cl8}PJT zZPe&kV*bWW&OyEy!8eQJR11fJvVD?ovxGILHlne+KJ1P+!%lC`qHrcZq7!w-z42rn z|MHSogqu6>HY0*KbQP)}Pq9D)NI9Q^mFgerPO zT)2iFg2h`r33QR0ISSa`9&>;nv?+p7BM{L=ke# z&FOV3lCvzQhloczR?F37wd>6NwSBj{j57GY7K7IkupP+Yz9&6=L*gu;QG8fM<7&Ue zO^=&&3}~Q8K~msU5J9qbbJKveCd(=~L4&mAtpy*oj;izny&Chh;DhDJ*opG=P*F&s zEwa}7P3ssDSe-Ov#}jX}Q!bw^82g>cj?_+FMqzadlD*{+-*P3Rq$EuHSVZ|y1(vmh zj|xp(7mSx|TZQ^8nR=26ObF}|P<_Kpv+VgzKow@}DPYipo*;Ebqr)f-_Bj7~31WQ* zu9wWwXOTW^BNBts3Y+0ldGJ`DZ>M`tX$HDWbX-m=b$bP!|C#hT+vH95e*gZdyN=;F zz%5v$<$C4&DwRS>jRJ`^Mgn+Sb2y19AGn#7{iyY|QRvei>&gC;0 z8MjoY)Wf>_1DRf6o#L_m8Nt;>i@emi_Hm9tRl=SVutC#OJAXf~bqNLP{L7B_9N0gK2R%yE;b%dP41ODf7>z8ad zt%zeLPbDV;Vw0oMWAMCm*6)KXcf|#~F?wu~llt4j3)PPcCe;fh-h0cwU{;a9QjBna zh_Vj6idx&eVsZu1T<`&a78ryYjsQN5H_NmZ4*p?6qZdE)u1q&pVLf4lP^>E70#R;7S9G`!z-C0NiR{$@Zh|Gk^n4u8&lz8lvY;(VXfcc&_C!Qq zj=kcB%9_95U}v&)us@+8J7xLG<7~-0g%0R>8i}2pYV2cHK`MhYv+V7wQzZSEl!x-R zgD$w?7!gIq;znZIt&c=6goRllKYeycyvcl_C!$xxVd3EfTv1)sx#7=h!U4ya*R1-X zK+2A_Ft*0L;_)EfIw8RYJED~g4Dy!LN>XQ%aZKk5IE(f=$grARU5(ALxGrdIC3_mj zj+;I%_yvq4ea$Z^!ZLKwl+=E7d#jN+4AA-k9i8;b8@K0sZL@SuDJI<=3l2}lSh*e- zxfwT)AA)Ea#_CgqkWy0iM{{*Bb7e?z)zVsc5`JEV#&$c*pVZz%Plnlr2ttcY-%Vz~ zk7vAj20E>e9pC%7+<12KxM*3FGGxKp(G&f+_E^jFI6>))ft3rjaO4N`t2V3(LT;74 zGmB-(eXdMO%V$; zXIOHb7*RW;bZlWUS3XhBJk;ayJx^8PIHDKvvv3)AtJOM*iQcB8U+j@(ceyPQ1vkL7H7-ZsN9xg-P6(B|9H zEuYvzw(s#vKYxp_`MiWdklRd17x0L1G2g4ErvqbU>^Pq?Gw~Sx=1u_{)NWmu;-N3h z<5jkYNt|$;T-SU4RHJ88ZBwQ|pe15%4M>@DRBWAJtIh;BzM93w;J;Dk=<3YRGjxtc z8IH5%YwNT5IiXct1Rq4O;!2o}1Zm$v{MqRudVg4pCRj{56zeU?&g@PRY-aJC+@47Y z-U3_8!%HhjxPuD4B2aSC+oMeGdp&C@!Ga<^bNy%Kb0Pn`x~Cc4)#z}Q$G5-_|3rrf3OzyhOLR5Rx8(vlXZL@~3VO#6^1Q|CV$(*}+bNR~kVR0(QLM=} z1_t8O*~p1Uzb*|`bu-w?y!GINKCZN3&u&Kk*=D>FbF!_GF=?8(1Zz zqej?v4@kdiA{3oPu!*FsY5F*eIh(58wrlc(n5MYOHiWbh%ZTaJULA4x71*(+ZwjBvysFyQ))i(i(V-KVuS z7s{u&Mg4+A>M{w>qu_@hdaKgp0yok7qI4*CcXL)H#LmK^_cEPA$a%dJfZhcGZtA~u zx2kp>CE+jItwQ={F1c@y%r?wp&kK8naowbFj0rOedrZrMder5?-E7-)i6~Bg5%U!o zJuN!i`pa(D#+|t$w|=f;y@0+HxjnE6DIreK(h5yXTK$s`cY{?8C0ps1*#r1$J1MkV z*n}UlC%^}K6py{&dJ_t8WwIaZL_gq4Z)F>S`!Dm4Ltfwr`(D{gh8TZBDS5h`DUm^a ziYVPk!;cVv;C|g%TNl^ZX4AURcIzO6wrh5DXBk_Nkp@C&85ReV<_J&!wr{W+Z;W%* z0OWhkXdBw7eH%3gCCGYw2F@MUZn~JCdB*h20;IS33Y$iHPS`liI0EHJYxXl1opk7T z_YMpQHqKJ{Bra7j3eNW*x4ckknL$MzR>?Mb8XqQ^msQAZvQ=pykt(YH+FHs?s>5wk zgy(G=9d&2$TJ@KnMMofHz5KBAgAm%Cj3d*K_v3^pNN`+VxmLwpL^ML zfI=$ie*ssxG`$Rh3$Ey@4CSfosp3I`4!!ieG-3Vz`0Rs$FOUnQxbo$n$B+cnuxyDHQYB;lIg zr?bVGiPk4!d!gYpH`+4LEbyb@GJ{zD)9FXL&K|EMp}$qjX+tkbDrFG&-P}(zk;IcUWNEPJc7)N3fK@Te=NOM>~+xgu*Kbm@cz#9Xw6}|@Y z!c_dwf$==Eg4i9m%L7>e{uWBYbJfrFln9fxIj;i@Ni1VOGqz_*+58Z$d`!E~*qTo@ z{ZVW)y-bo~S$=Wn)cns$T1Brf!ssNQQp)vCLLE-YHl?#uVGj;sm!gc96Tai_-Ez;rC*=?|zK547^ztI2 zBhZbG1A^?V5ARcuZRsN)QN<13+x*%)&`Mk~NRO__{6hU;Y}C`1obCU0Y~a7Ivr3s! zv_rY$@z!L~CM2At1I+)AE0Bk_k;e{qphyqm>;?cC4I6jHC(rb^ZCgKf`Dn;tYf%=p2wyRBVRCFcakP}=255R`zW ziS}K5z3>_)ETHv9wxP>0zT5U<6BYQo znMQB)gu5DIyr)G+r^_xiJ-Xnb{(w#LeZfcG*nh5MX+bpggE}2jdHrsO9f1?3d zLL~q>Gs5se=ghN_CQFezOL2W+^3_c#1VN73gtih=pD7K`-1knQfd2Nsd)&(b z1+K(dUxEx6$pga>73{ca69K{DO$R9?LTD0*E=l^Q=qhs9i(z^YV?|!_?g;n=keT&dSTPV%^4KhT%^R^ zKr`y8JviXKR0k})LPAv@wDGNbxzDf2gn)simcmU8RVD0%s5__2TR=?qy~1Xyyvxul zi2g%FQdruKDj-%Vr$@||mN_ohdyV1|8!Us`3B2m2NAqSJxr-9$g@BgpDhmTWDe8M3 zHKKbGtYcN{_|SYsSt3Nzpvri%i$hYpg{j^ ziX?7x5T}t3c(*3NhJ-9^Qk$>No|C#v4Ti5~zh%HiV`zF`Fb4QE?KRaw9G&MUl&UZE zUQ~~V2;92P^>PwzGR6Npno+pWS!^s$h3PFiX)c+Rppg8&^!DhDP55XfPgeX&h5p-i z(F4#4m-DkCe49af6j7wWkAqF?1dNm6-#9%v6@z-{4{eDgonyd7<$m6=y&JH#hBK3w z_$yZYmozcXT>QMMfGT+&0+0@^Aque-3@}&>`h585=0iw)OQs@V4@5p-RCPJz^q`jz zA2O@}_&&cuOcFE(dLI{>GWhfn%`Shy25$<@1nWRJ%wu{g$hlTek_68vDZjFhNXT@V zyU`=ZHSZABe63T#x7SWqRTZ4&Q*l0-bH`1#&_m;FDEk7A79*bfl+rA7gq#HXwdHb5 zky&O%*wGVA(gOY?$@nfGCvasbX*pU_Wvx!aDPXwQ91q^>R6E3HE1B>GUYwkSUK=M~ zAvOkT!d`tp>i-$0{Q(R`sl1i+XvU9ini-|%*xNdpA9Aw$d0v>c~lFQzer4Z#V}RI4_^w z>!fS(3*xnA6`>!$wW*`s!3FG-4V{zZCLWfg z?=s4Z*7;tMPA=k+eYbaCIKrY6qu3P`QIX_q+cR$8#+ox^n3E_>RBQ;j;4P(4@!TO~xg3@Hxh&+I6mdI1L20i*5`jZ2u(@2x= zRV-$glY4udS0f35_5vWsmyFcNu>+?WQp`YXd%D~Ln{W*OyE|~S<-9 zz^b_dDetPrC`NFe@-%xg)u{mSEdAgV0uCN>K6No`qu5N} zN{H27Q=|2k3{F{DIj!%@znp+V$ou@O1It8g=#J$9xz(~-3(){yItq~VIFOHFRfV7Z8rDd(1ov{H16ceF` z^JlX!T6&k(p`KhYXuf7epJSlBYt4z_QEQe7)9!Vaf7+~|ahChje}5wK>!*#eFuOs7Z1nR3eGX#}`h5U^?fep>p=N zl9;ZPbfk5C|0Tx&egUTTG;di3NkD&EAb$919oya*2IRM2#~J^jddU6N4rc#QBonKy zzZMj7HbHMVl9_!N!E^0A@>tG2y&RO=Os7ZX&3pC4auBY*Ac#yU%&$2Hh%A{1LRL|f z4bs41%Tv=0$SNz$fkpB@o$2eV!@FPASoDd{7EqvBzP^)-?J7Taa2KBaIZ>GygTKI& zo(Rga4n1%Zge<{i8cZ9PjjcCp`1ttfA@O~jO0=?riZEbRrnKo6L{575F^Y*c8;Tqs zpjdshKBa=XUD&HGaUx>Qe9;Yr>|lB*ne+jneLE$0d)XIeqW2XKTZV-3k$=i z!~F@BkEhhM7xB3)wt+b?NFI(of??=MtJDMXK$LK6@xihY zs=zzUE-&k=q2@I=leD+Df4gbSLa#^|>n6h3G?w_o1t$q(8>VIedCs3$I}&}ogkpdO zRr1`#{ko{NwNczVA6rfoGNPAw1=$*Hip&{dsBHmMl=~bIa50h2n?kiwqR>;p?+;?L znO#9W5b9o-p1#Cl{Z;yyB@V{3v%}g6_&}&2+xN$0`m)MOJ4e9~2Y&dLRe`_Kr|3D$+ zhZS(T3R!RwY!JEFiRqttu4Z=`2KHS0XxQE{l!AZkZWr@bIgSQj2b z>k>>M)K8pBSVUyw;x;q_YeYg!EOu_r^<~rCoaW3Xf;}%0`E8T$U7QI6te_orT}#d$21&iGUV%IrX@ME{4*Lqt!QEjB+qqCmjf?5EiR*Pf$iLRZ@TM-5U$ zJ52PhU5gIjR#`vh{^|MoaB0(-?PXwF5<3CN3TM}smz^iqbU70}C)WiQ zGFaWt;HwlAO{E^BVJxJ1d2rN95VEHR)B1uj$=qSQSxvsoUT7<`HxzEn<51>)MzOsD zsZ_R@^l@{OR#;egf79uP7~A*4A@#Rhj(!HNe)QU}cNKS?A;y?L{_s-XOTvtmu)Tt| z&6YbGVu`M}R21~Mvi;m1PRhy)Gz=0YT5B6JFf~{!22TKo!U3j@aO?F(XzQRDNxYo6 z9+s)d6l`G}T>3`vZe=*-P!DQU+2{xhBcks1Iz(9PTzDJr4@sKP^s_|Lx`>{hnT;7)0Yn%3HQ5`lUy2YUY>}+ znF+cI8$Ws{wj44(ra&LdBXekK6P7fu1o_3sv#i+O#KxbX-ADJCxvnq~Mr-;#1AUav z+vH`F9AF5*C9RS0sr;#eg@LLHFp53dXs)TpLo2yBUG&S#^z2L|)#n1=b}jR=QCHi! zr_}zd7GTCxhMNfJkloNb>a*Qik_<4*OJpZ~GSDD8xA*c=Rmzv-+lxhv`6AUn$yHp$ zp#xOdJVdl&5+Sz7ShX))FOnb^q4_qfPJ+~*9v2lP$(kxnn-eZGVQq>a+X+ zX^4$YHMj%=soiCbkEW!%{j1g6>Jt{_6e7rS>+dV)qs3XLrE$P3IIcqmWB4ecK8`<^ z9YQ!sQ78HHE|h~i3w|+FlrmJZi3bpzos|N}AJTBe>2`bs=g_Km-r}{i2F$;Czw?Hb z#iR#<8r@MQC$@29mC5??o%7Qh1f8MXs-y|jkzhJ;0A1`kE3K1t`Dz{t)mdcUFcjaF zAKs6y_i*CEQ$p>}yC}as797dlViuVuqu^M6gD|B&Iyx@vFlwn+&^BFE8R@;MZS6a@ z9JD?QZ4e93&P*59@mK>e)KzXak7hf@Z>jR<^Ca9COG~X=4h~0#D51g$BkZnR5kr=_ zaG6)T=+Cw_oD+3THmtq*-vGVQpoME{*Z1oowfNwjAwnK&W;xu#BPn-u0)*mdgEh|| zKc;4U z5h~sE(uG3u_O%`0APb;BON!5edO0Gs2~|z*qUs3IfRqI^`X)ALMMIFOf({?8%br+SHUF{r!p+0LP!!qIG>Tl0P82$p1qzLF+z;4;+xnumLJbCe{(~*Ii3C;cQ?) zx4jfns;w(?81qv_W@pFLm zX_oN%6a$dhZojZgYPmP)-=6-y)>L}5>?2$LYA~g{9kPCZ1aJiM`%AtaDk#TlY7VsFEjX(DS*W9LH@f@rTXJXrVEnq6T znbRwvg!i1@`nj$QqOo&w4nHYN!V<)ZN2 zHB&%QAP2!4ZRMiP0zDUk`WsNf^~J59 z4@<+A)3Sn(TEXW*Z&AusXp6bzHe!hDl;N-&`bWxcz_SPMzxY8}K%Gy!sHj_MWWp{Q z2UYx1?*;cBA4ay%srH#ve7Km~83&pxLrJ2t5@e^uy7yRCER z!`*r=x;G3bd5GX`F$KhY-goAM7Ca~)NBhDXgjMv=6Mko1*EJ-`T3w4nsf-_u$Lf{b zA6AX96#EEdt$I6%Ou_aTw*G~PARQw;P-~7k_|8S7Y98sZycvs)wCrK3USVR4c9uZy zof5B>cGUTGg;4+%}*lhYQB zDmLkfBE4|Yoz~BJ+X!O7of!mjIlzN)8E928BE*@vg#|9Lr%OWF#X;Duch%lF)1YR9 zesd}fjGpqgv)KW&RklOC+yN@kPWi5OIJA^iOtHY<>dZdb zD7r+MiLVk~3oS?lQ8B=O1l}HS# zhin%jeciRfr#sb(*Y+UE@w%aTvvz}cvId{+1I>;yclc}KsuDC?sT!3oC8j&MGyd!l;h*~{&-etd(Z?~J zlA1J~+<5B0w=S)o zyG>@J(muN`4e4|Z?{!Pd7g40NzG@2E9zKeDm_u&A(oRHb3<84o9z~l9A#)AH^$}ZE zzG=qwp04qe=0ItOg?tv#|(B zM2Q{fEhp(CJG9U!zm_xcqP2aJK!%FNkUKWvS=m?)FJBkO21*M=XX4G{9C1q^3ZTcY zg#bS|Ji+^~6;!z-8^GSuiW3v-s-E8XUjwFBSOfzKx~d`P9s3N!6!$Y&04YG}x4hDq z&R2Ubf|{CJk+vR)<=2(_dz6X|8|@>0*Sb&cfS6RWB3v$BX7a1WZ5of@Oo!IaYKZ~Z z{>MBVY&P~xRMe^1$36+9mkT5>e0rv3WXj*ue92r3QrmmoW4W=ALVHWR|EPHQ}r-aB+JQ0{*=xV^PAIB#d z6NoDeMr`@}icjV+%9=HzC8iBMUUE(_O|9tZy196Zqb?2b z4?ysA-ZE`}>;(8J9FPYCW{LdvVBn3lnw1#UoKJgT|1xXqbx9zF%BSTqSXBs+n~Xcy zFhFWb4^>X0itAL^Ez40pGIA>2U!}_XqNAgKMp7UmB$T{w!iZRJz^2ai2pb-qCH91E z8T?U~p}mX|FpVouN6xF`bE;M3DT@Ci71Z*DaqkUjA%W4PJ)1K@PCP;7k0X!K z%PQQo-oTngb|e2knrzPt(JMRdSZfGV))pL1`gY43f2uEmO{+Yu; zp!SE6o7Izt>K7er4?n5Q`HR$W{mHsDFd_(P^NS`;UPM^s_!D-SOrF11WiLiJJ~()n z^2kUu=-4?siw_Nuc=ima$wojx_>_|)FP=lx&Gj1h$NW5hV{~xZ111KBiLPLb(8pR|;n}@g^4>cWyakxNHwET-HQtO_r!V6q3ZDKJH z^s1Al?wNp+N&>p0NcSuXGx>Av73VG!Y@c*f{%C*~SCo{LMAb8?muU2T4-~=4=n6Lk z()e3HN+7xSdiXOxH9HF=*YWlOBVx}IN&FW0#l#G0Jb>dsC2_YIwceGWkWj?DF*vLB zp&fR2Kuk`qVZX+4)d(A$saO^qsQ#?q4=5G4H$qzHFUxk)T<&*-u8Di^=u}!Q9hJ@a zE6M#Uc4|L0^Ruu&n+$Sbq zPR5xzhUTJVeWn^-M;6>kFKuXOcr%^e5n55f`6Mf-sHm8`yAyz_T3T2&{A?H3s?7(Q zE~rF2?6sGvA`<{6=1>7mp6r@(mXjGt2>aayIb z$z{?)p+Na&`g(o~&p&kcCpcQS+1F28v?(R;N8Gq{t@aj)XH!-{X)UfPq z%A1FPtqX79|I5ou5d015lVLwKu_vOBJKisIY`)@7dq4;W(w3p+Yb^5aBS1p%2=1k7 zE+QI(fqq=P^$u9Qe_>Vup$W?hi@F9HM_*xU-w=gg757ny>D z1sAukgkE@Y>G=gza1+}iyTkCY%=>ikfkAG@%(GVUrXRj-ya?nbT1kzLVv@LH`;>S}FjLIDAZPz|xmSbwS6 z6DbZ)8~A8={c7Y_(!}n&I#Z_QoU|KY5^NDghcHpfj1b~#3KMnPP zrxk=fZ1oJ2D5i?P=-Nt*oRNb@!`^pDeg~wQb*t?cSU6t4oHzh zqyWp)(7IWB8$`(!d_G>wvIg7lLNvdT`HMSm!i@<3(u0;8K^P@efXY@802~J&OLvjZ zfTytoPb&jp^Yy{|J1%4jHG2^6MG*d&Y^5%_(pCbWqDI*gT0Hg#J+KT?~4NU(S0% zSc3)GL#5j661#fV6*#`1`A9-|Q^U#waGyU50rD8>9qF&?EV_QS^+PBzqO$79Uli!E zqx*n=2@3Qt`1mYtlO>dNRmqoW?6`pi7Gb{L-MC;3w&wlt-ajN#J3&%O$5-f3CiN^m(iRF%ci(s zRyngEfhVoL}!#*pE|>x_gbczk0ldy{?(5e+GASR*hokIJftDEks@iiCq&{Y zUl8^KEz}m-i_g;3?1nJy>Fv6{1ZFip8j@)w$`gF_?q1v`jBMjO@I=csNVrE;wp^I6 zz5C3=70@`(1QbjPOHrK37*BX@3yqIeI;|pN z|Bp{|>-ww>9KGJqVevL|ebaZsyaCPNTS6^@H?M<@& z1*zBruDraw>&RoILUl?vB2fWR@+B%w#vAzHyFdd@rVsM8I7-@I`E0>Yo#kV)1*Xn; z#Fi;IHcX@t_o_~V6U%{UrGuK)E>vft3(u!F1TlNHk!_m83W-wmESHw7x;e~uJOL2b zXky~y5jw*Xo%)Sx7VTe325jetB13uyCMyk6qVf_}rVzHL`L@21Qc=k>dW8EqXy>s z{@z|yiZL)~uCY!Q8P$Ka_edGlFHP+4c}Py{AgauvgK~$pe#+)(_odY9f!5huIfzQYAEUIY2~-qqATrhBS*>dHLvP$5l)RR z7+(}#sQX%_7eZY{q#ZsrafeBzLdf0E-L|UhQm?$g|xbqvcZ~4D|N4fRi#3IF-CK41KM2A#Y@jJjiA+V#}vAO0$cY>Ncm&l6fO|Cp2#<35OUHwf(-sma3>pv7N9SE2$f# zQB9pWwz<;$0Tgq;XH!>1pgm=abtHeGu`de*PyNgWr_v?wYcJ8XGwmM7ItgG&y$_^Y zR$e}I#q=7NCnF}`)@NYs+HILi%)zctvrd?9X`+_U}YD2H$Mw z+Q;rQC^O92SH(fCs);efzR7QP$YlI78&=6N064Y`ul=tN#iWH8sK3d{Mxc zSDCg%`esak@16sI?#Ol3ekT(4x^dmuz(Aunx0rEddO8V8@y1|Bi@=0wX-#^qsL@{V zezJRs$}k!L#qsgCb#-+n@88S9eyV`)-a+pwA6rV?+*$9X9|eId;A6fR0Uec(N|4Q8 zvBHYz-De6@4{io9a{9PZo8qqovI?=;Zwft(;@LGsH|K%|2h2sH$@+Ex0bl8O8CN*U zv-D~wI9ET5sT}F_a@<#sjSxHPYQ6CBY|WNxSyE*Ct+khz&d>gSbD7|2HMl{F#KpG? z6A_{A)g&2i2WMVef09O{5`31=&v_Ub8Mm$hF_1<<%cFPS{MJug*M0#9MPze>0a0WQ z*77ZY)rP}G4YTZlgM&kJ^x@n~v}WXHCI`j`TJoOSZyld;S&g-7V zwtvX-C#|tHS{7h4g=RP<&C8%+TKwamTrtL_#Kn6IUGr4lOZ+9@vDHo@RN9BX|09P? z02sn6$Ydc%o=GjW8`&%GUr`p1@AS_85597a_QjJRF-xP&QnTLcks_+ff#B4r$=FEh zb5u!-?ubyWgAo!EQX@GO+{E3o*6PVsVc4qGcvF>&6ZE7>fSEMH8u0Y9B<|Yu+9G4& z;4%xiwaV&4TO8qPc$SAT8dFu)>dH?2{nq;3sX**FQu&VkL1(cM2sSA<+ z7!{?*snPR04AoDK$qV4Z)v~nC#GXhxFM*cW0PC`8z*?Op7f^0Fv8wS_?3V%M z&I{$4IM? z3ZMh4)HCbsw@V9ERqC0V^R3K|1@TDIm89Ltv>3U znn2ywUW0^fMK9wvx%?yG-{q{hobNU zczkq17Fyc;x_WhPCG^2Rq`|!t5C8zux$?DFyE2r61ya4*`4jpG^?gj=tc-Y@dvpAf zW!l%c&vin1j3eUmron(hDPl^iF2n%`dNqsrGuQ{5Axe zJ%eZA9=nJF@L-ZfZCM7+t#GyP8mssqp;p2JAkc(coT*I!D$w*#ZN$t=%VEGOlTSR> zwHY7nmi($N?Zx>%*}{yTG)>Mc&h$;n5FPNA&HQNj>$08HJ}T`C-O-iL_=E^ktdJ>x zCoDN5{}4N}A5X9eT(;Mt{TrsQFpkPKVv5`rpY2h&SunUe%}h|EFz^Tm@UUA0(vlly zPl+bLxhg*DOT5af`nq7m%x=2zVB|Eh{HerUzOVUf{ zwP$(Vlnmf3Ewjk@>A*7dlK~yV=+nWtty=L-nZ$XWQfZIz7)QbNyL#>VI{5aS{ZeO0 z$w}}I&(Ft=Zn6_PJ$@09Sbi>m&2Ec0cn+MtojB<@6#U^(Wsxu{ ze9j!)f~1i3z*t_HSEnAj{Oe;hYSh_2MkJWOF=oe7@bf24p_8;9&Q|TAggH6BR-+!U zf3&cK*Q3-fdun-t#%@qU7W|{cWokV{*;iTqz2YBhIcbc5zT`}BnIs}ecs_l0H3vFPzp%H^trItxpNY1g+qBlMQo|I}TiT?gdqi!%RA zc|B?Z*aQ$$XrBr=UWz?TeL?sP#wJnK>W;uzsr(dO^XW^?7E8iS^ddus1g`|9lk-VG z<@@*$!6u@NTbm5XC&SG<{OI@x_XvU6bU9Kb8Yv$cDanAX%tYeE;Qb-ty&d|^c6g#6r^7JJEjEz3PY{?; z^T6l>maISl2B!Xj_guW~W8jMM zq5&l(7zFSjKntWn1wEZf`#*IVdpPmHI)lfQLP|R$`q0bUpwRHsQggEX@pyj~oBXz$ z%#8JuY_Uv&m)0U!0sM7ll6uPxc#!PpGXSCy#Uk!~p1l1>PtpFpmu|>weqw5QC>BbK zaM~!39fc9t0L<0Jz8TmPv~!Fr55h}cr2`-+B$y{eB`P)V^D;ernTUM=jHdg}h3VB? zRmpQb>N*?yAXO&#yti9CHtfzuXxdo;enlGH*@S`s5nKTD!bT+az7bk-4rGuR45S_z z%B=TqF~{bW@`2yUlaSHj{mXCW3$u+sX2lL6uu73@rfVs@^LAviwYCGkN&m<(3?rSZ z=IG^RL^$;8#35M}#-Oh5!z(5n@bwoN3R*yNG0Db#0X@px?fn1fdJCvHqNaayu%N*$ z!JXg)0>LFX!QGt@+zC2BfZ!S+!3hv7xa$PB;O_1gTxZyxy!(FN{`c&j!x?&{dv15% zTep7Ct*Tk24C1UM3H>Ad8jA_1XmWJ`_86p`115bn@@RXs+<3a&PQ8=lR%FQRZ?}h^ zQ!d9(%qN&2UZjzLsDze709;eO{9jVOA4pQBhHwa@Y+PHajM;w7A0{`z^v)T8%Rn-kxaGUcq{xS!N~%^rJ!v9S|#?w171O$zS={4>NUb(#pc5yY=xtA+np z|G*sXS8i~EtZ}9mpMJ0tqvjqK{4=hCX)@a5OBEb~crLgkQSjP<+sBL>myKgG2Rj>+ zj-8$=phC055SR%1TrI@a_R~vWx@EaGUuA_4)nV1t9!+a-Qc+C8$0r4JX@FDM1XvR* z?xV<+yJ{HlaRk)NMv1UH>iOCH2U7$WJR)E11&+wuHHrjzgv_}Pv)qmT+_-P# zOBQqvo>8QWoE~(3wN8kPoAI+sV}&rP#ChxT0=4ZhBf+-+(_!ZSIEl zXtbw0N1@=nOKvXfM^Y~^G2w~1`nFap zp5Jnc1U6-lt_^pC+Rusv@Fo_NVY{E~^E*Y%w_^%Li4Tp5u}4mjyshIlrm>MA^_RO+~7ucF5Es#&_>OjQqPup|nUgF}HRB zeQdQyoDdp5p$-_9PS-O&A>V_ePc1FFy!3bTda9k4rj zAz^}Z2;ijB3HJV+@%o6{gX}w^7E)pTEmCG@s^w32n+?=IQ8+Y9Vulye1g3TIqXk6V z)M+HrT9eQq<$p)AbaE$8xSrj(9=w))HM=+u!zwW2M@$o@q&B##b?jrdWHKwgU@B}c ztzJU|92vNiFi)fy{4MWD-d&et>Qc&j`s`r60SGxys+<<4tv|0Po+HJrd=*~oH7cLO z_O?TE7|F4LL^|epaT->i2|@^5JS@92rvGHQ_+ouV0ht?N@oB4%ZCwoXK9{e&=F=y7IpvbkjP?>)XaH7U0D6O=?Kboc zfX#5kYVu4I{eKC`t~Ra2Me7{OUuI%i^CHUqBf|BMyjyM`ms+_8-&{4nT#~?XTp_Jn zg61>PNVI{B;i8$*TO$^)SXNL-`qRtj+H=`-;vP9~#;gS|{$K!zns5N^N<7XtnnevX zI51$8a8k0d8A$aQG}6o%FcUSRs``(n0MNx4=l=;^{v8L~y}+ynurmNHWL^SqwYzoq z1*wq|MXS@Wsz@@#KaAjIAEPWI=6ju+)(p6^!s*FYEPhP#QKYp8MwaQWRWX?7)UBL< zKBvE!GQ}9yi8HFu&Y6K{4XzeaAY6Z@Fi%7?Bvxs<+f&387O5MqavI>dK*b5OEt-Y7 zqsOlhsePoXc>}RMll4780Bw;Z+BlYFBxIY&1z*df;pT2%3U`uWjstk~{|kovY0>)+ z42i{yT_Jk4O&Zw4Zw9|!I-_PFaXx=CUtZfFtH}n52R5`lWWe7%mo%kF5ba(SVQTtJ z$t&_#%x$~vVjY|Sv{HJR&(nx}rP3l~bIyd}SGCwOU5@?>bzaUeCVZakxxoq`VZnMR?1w)cvrZ(SDi5CaiIU^7 zNS^VVB*Y5$|227m=Y!O}>L+b`dMs<{1YvhjeS&TIkt;TAwEQIaPwog1NkY?lOSeB4 z@vwa}TM=NXAA;4gHaFiN5-Ud~nSh{C`rMJfs0S4kE9|V!O}jDpw8J{_yHK=nj_+^r zsFrZT*%lnJRG!X3B^PkP7epUds~(6JX?-8YR~9+pxg;LDs32KN;a8XULe~wx$13ci zAm^iQXe3?&-nU2u=x(Vj+drfdISRQ`d6I`ym>!_b3tp%GHuIA|=2of;Q65g(M(fF_ z4GgV>84^VeKWUk&n2Pn$3R~?~sEp|kl z=o>Omz-5vf>D#`Ma6%2(&3<}zqZ}`|wtBY<3Cd}Bx1!7uzZ__ACeQY#@NZAo_T*zv z7e4WhMk7%+VdrYm^-WJ#BG<#ihS|s21rv^R6i|luJwGA%V~ZLoKJ{r{p^@0#%;8>} zj^4R&QtPW$wl5TWPszJRHB{gbdl$SO^Jg`aRJpo;;HP}lN97WSbR~AzYIm~BO&B$J z6(8AywG%)|u=CmR^thsNJ$MECkFtMv-E*jl=xJK!y`0Mh(l&N+TSGR9Ls!nzz^)PN zzCr(Pwav$Y4OGaJLv5{P!l+eMVtWtt{sw+rN479?2`g|Y)=uwH9i*e{;q3G36Q9?^ zL&qtY?DLmoOqEmO2SuRYy`jjK;z;kYZ4X@3;IB&Kq)r_+7Zm--f^9j6LUL!{*a`i~ z5!aq1LA!MohC8>2S;0>)X6k8H^}i`6 z9#VOqw)j0ZJi$ zuzIbNtP~5er4U)L=hHPsn+Z1t4Ibj{Ps=1<8sSfzf|3uahQq%XUv`>X6BkEhr{19~ zAs>i411*?8^ph2{h57fLq{>RRFknWMKeb!j@)IueFPCOr$8TFCl~jjLEk!>Q~Xw0p<69H3ty zbuuY0$sf5R0j$ff%<8_%mM-FWB^j)Y9NzOcL+fy&*b`fLeT)~Bt_w#3EG$HW)^^gw zWi+al(Bt7>55SNew~vpHd5}Js$%B{B0j*7e@oZ-d_?G5A>$V{!6RB*<0Hmv*_0HE| zI}rBH@5h0IH%5`ah)k3O}s7zbG2 zOXOz2SYqI9px2#d_soTHo#FqeVx@DfObO-<4fVePENreB@*>Lvr0TiZ27?q}v_s??$%0IAfh}YYh7b#;lRjX8?%&c! zN2g$Y=m1>*gwX=vuL{sH204$s+N0f51&SmLZCZrPE49Fj!hFF1vjFhTB~GRk0O^66 zMPqwR-(yo31&Cx{Q^<~TTQP)ZS#-($+|*5DIZb`v$Nv4Bf=c$#(6(EPJ8SG+r~#1O z26}Ag_`|uBC`&yw^s(HHc1lkiFrBTi_;|dri87_L;%P>@aKJ+6-xwx9#004N=92NE zjb2E&wlD1)_>b)0*SHzqEBiewwUY*3Mo>Ko*O`sn6FPh0O=YXn=J3(|0TT!}8R;8( z@vTSN>{`}u;O;GAP~Z+~Lb0ie|lB&DY5OF}$J9#U#DdZ%gI1Hs9Kpi^8@zTZd0Nd?$<-h@@<>Awf z(NV6*snnzy!0{sdLx4MG%r$6>hd9{T)jU~i2s%H#1q?U6RLU7o717LbRbQPz zV8QX%pMwPYbbvE%=HAo6MLDcO^i)4hYd$-a7Wr%F7mvc?W#^*@%|3X0 zeM|>Y8Zw3~obt*2mdN&HSh9HCNR{^Ra7voR53?uf=j!V4_4Swbs0533i5vRoMLv+s zoc_wGYnp~<>YOaKz{v`#N99rbaT`?2g4!i&$?a<(9)|R`L#`@e2Z5O-;1db-80iMg zpvYg7TzZ1Y>gJ@ZgF^GR(Q}Q#XvN(QwU`^j+pe#@-ZoR!?0XNzmdOeOEkAFEn)t6w zw^vYsR9VV8j~&?;S9?DkaeFuI9t6=KG(%@0OdesuIp+B=aVFs20G+nm+!cf0DS9Ru zp^z!IwmB{JiPLf?!TTm-%4Lh^+Y4VDfLDMVdtg0)1SsqHJU2UQ=TmkKjP2!<+S}E3 z+Pa%7vVx+B`mC(T*ecz@AKr0fJ?g~9H#-D!kHb3o^;wjPcj%c$4&NS~2|wjL=Dz`k zwFIMhTUJ(IvJ-^)Y!I>e{FtO*q@2$(FTLaM{2>*P&yz$I`=h3G`10)P_Ds)S>_U!|v(X)4Ewe_D^y)Y0I!-s%CnU_5<%Ev;^rgFar>4-Wph37c3H*~NaR&^h< z?*_y#=c#%`Kd)dnJ+}m3IUiO*%(tYMY{8whcC)M>O9;WB^$xI#8ed!rIo(-53MUeiKtNXcWes}_v=?-ykb02 z+uvU-ePkgCbZ_|TKVs~KTgGmDw^MlRm8M@Q%%f44SBq~iEBiuRM9!uKEBkk<}RJ3SvN&+sI8dkDcnGYr}0B#AKa{2Vg`kg3E;8Zy{<5t@FrJFH2q z#ki!B%&!B#SKSaU&dewP%T#1^bwq5OOFcuWL*-<7v{H^lWsS=DH4t;M2USZx(z|2|T9eY%!o%AzL+35y zD4zYXb(mTHMxNY<>OCy2QM`)KYuWbN?aFu}IKpQO=Ecx|uS_#mg~QJ7_*I+#OYtQ5 z0WaW;3=&IXx}>rQXp@!=@Ixf;&?D9U5il+2gu^pzP+VuHg>Z`CPM!TDHN4MS@7G)R zCFwPn-Hseh(5B|FHLdIFAPZr(R$I*kEshq-#L60+BHAZIGvpQb*w zs8eKn(HMKS6$px+VsOIb4h~|?%{X##semjeR<70g$gWFaYK1S)22aYlOq&TuCkmp} z51V1G=SOI4kgrm}Bmh91hG$#yRj2{m0ZaGZFDnY-)kqkztD;stax6%U%fAWY;S9zT4{s*H+e{}nF!T~zX1r+AAvbOZhPgYOhlhR z<^4d^HQ%}?ez~6Ll=j7$2fP5Z))uGv#-_^Ok!Z4~jViS0A8FxZOH^r8`MW~;Tnys> zCb&P@QL-4sd7?`B6Bps1y*SFKckM%)S+@N84y#k zVifwcZKpdNb>ZE$F#|4=F1uwy77OO}MA=)x2W-bP_CxW^z|0=fhipJKSi5j5T(P9u z5?*{Sq00swU>>TtLC3dz62T(`5pn<0g1j}m=a+jrmybG1SXm2=`Tz;&dNhjoAf(yy z#JZEZO^Uk?q!uaGxLi^^N%yonda<^``2NJkbxwMMj*rW3No0r49sobe<3kr94#Z2? zB+q@5idyi4wdQOo@%+n2g6V*jwmGlc$!hTg>J%d{)baL)<@1u|UoFGfl^pm&S%_Zv z^=W+_+AA}NWJrj7*g zL?hu7ElbM@b`GYQV)qx6rtJd(86(8*Uh`idCB`?1aKU#M2jK*W++3bM%QsO@fMG`V zF?#(GruKNwapjwUo8X`mwHPjB&pKu)S_1_3_f;51-%;Q2yGOvqa?jJ$hNx;4L%8fU8^a4Zhbtl&zldw#WT+p$WZo_w%h|6P<%sA9tYN@_23XkN(1W6Xn z18ZhuDxacvC_$k2uFNgM-4bXu$0X!$p@&^}Hg3{27cY4@1cX*6?~XinTbysNQzFiBdk37UQ)izS2ke*t-vkh8@%GB4Mou zru|sbLh1M@^|XKLY`2(4iP2I85qRYruP&@y7QS%m;`mYmL$>L86LVAbBNArHrCF;r zKk>%l&D%n4DT;zeHuQm5Rbm!mqo?`I{hogn4?(jVRL z`GfJ4A*?@a`!1VEDY&}P`Y|jV#6G(Q{E5HoF^JVr#nh>|OnF){z*an!VTXhb-SHcy zmNMJQ+Uxc%1av9SrhAW0iZ!^*UB&_XI9oJ5(IUz?JGGvLZG*4ZIzFS~Q2sJsL)jPp z^cVh2Xib0`hZ1ymIb3QhVr}=1Ks{^!tuQ7&-@CWov&&3_sSGG zEb+^`KnUEtxG1m91x{}J_OaD*_3{$y=fp?Fb5vJxjUN8wrY3^G)xS;wR69FM-U!30 zMACknqmbjYR;S0i1~sB#TSO}R%8^~jqe-gAs^i<-wqIbe$70_mXR*hRJE{j%hkmeI zmG<%n&o1<74&l;26k^yA6EU~-8&oc@$3{Elel)dTYm1zZ#dd&C-kB{)$XcIaw|u=8Mq$o`ZSzK+!0$M)x8XcQ)*qY-4shHR$ybQ9S63EZ7&>K8gF!r{7Pkhs!tX}QD@ zan%l!fSU(2WFp{6q^|qp-KiBcUCf^xe7AfmR1Sv!vw+nGpnvW90j|1Gah^?0rHO=p z_;6^JS{`4jD)?|{D0Vccdqk`Q2t$>q)1N-B&@OGPs@_;2|D!3mZ1oq#3~M&ELSW(9 z70hH(fJ)pWTw}jO#{h-x4?+T7(a?eZUyr7fgCPiC0M&=N#RhIs3HT6J>5|v!69JF1v6MX}nCHG7 zWq8z;%LsFfw4}0<+G7n!KW^Q$2=Oq0P@VB_`d?LX@zJuwXMJ6^97CL6tn0t_n6)HS*>qj&d3zaejy(2=Cd5 z9qCXN>c5@z`(|)a!A37XvA`uFk{2t*Zs=>`E#6j=n-V2W-`m%6EtE`vrwmU2pX3ETe+vx{iw6e2Wzh8|Zm~+-9>DD2VTSSk~Zt znfjD-%6BA)+TH%xJLkqbcv!#h#q_G_$mUDgnC%X3Mld%*!dkDKJz#^(uU*tBMV`vE z$&{LMq4m=Tl|gB)?-uJX;N6_A8wDYWXR=YqxyOZNYB`8?aO+R)N2Vj{11h^mFN@~! zQ&073uf)*{AE=vTJKmAaZf0mh9b}k1Sc8l4H~z2a?t5CA{=|?Q;*|-)R%102_aBrK zo_RkhnOeB${hZd>RV9tJ2&=M&n>vvdREAAO(kG*r9WIzW*|Z#)m>=DMJJKwwOco66 zFX`e>p%?`jyC#~Q1;QnX!9g4M&2%^B6$h*56N#Iyo?Yh?6S-p$FXELMEONWcIS2W~ z=71WcM9s+oCfRrQvWxU4iMI6(9pS(yo-u?(nxixs&b%gYzzMsG2o+IFkS)1!&{&f z3{UQZ5_SiAmtr+Xor;SN2jmND>gqcm+h-P=n{q0{f!9X1*&7+3U`KU3u9+;Le0bO8 zNF86sVUift|D}Z&duB65KO2r_w|V12&q=;XGgH#cr`KaVBeuB|Hhx>RD5c@45I~PV zew~D5ej`M)idG{)Ekyb;FW#x?B_D{_KnYp0!%W$X^@pF|>d@ZqHUrWSWqMZHxUQa8 zW{Yg!v%Jl)H}O)xNr6&ceZ74&^hvmi45q^(&*;a-A&t~Fn$G-srp3qcvTu9y;zyCp zytX3iN*INbl{b4`JyM_cs6HR8F5LQ)hqgE9A7j%^AV3%GZ0hvULJfWP{HblfB`x5* zzIPSh+$0E;;3o5Uk!y+;(;V$wJIVTurM>tY_q!u;+JxU5$u|f^B4t4TL==)RN-aUN z3dniegNVWYBwoyfpO%X{wQck2ech*RcwwJkdct6__dI;$y+26M-+icMSN}Sx!Sg%q z{xQ@Nzr(rckd)@TQ~-Oaz$>9Doy!V=r&o?=gE)lZ74U1zk}2bVr&M6bA=E302^?OY z9$(I3)V~)+!VYPFm8<$;Tr4F-GBdVn(rbNi`-Yl62@U0n(Fz#huNk8^_Z~BVNlT%y zYUab+C|!L|b3b!L>CcZoMv}~gl5HIO{akgJqb!>QBYP&VfwS761tstO9qC*&MaTD$ zm)w^H7h!cuk|8$)Tz*k_oiMhy3Uc=MenH4+WN0Y$I)QXA!(SlB+y#l;Pqi{sRrl)l zaso9cHqb^4l`695IWp3+%%EdsSS({v9Jx@i)t4;_0Z-&NRX?{uFBZA5JfqepudaT8 zYeq=-=)bH0Ge|JkGZY1#(OQ!b3*m`94zZf7VUIc{kvE^6qfhsl%SqWs?x{D#C5GKv>*-S#Kf74c zkX6f^iN-$fr>xnXm?Lo)3#7HT;%d0qr9QICOpTdIG7lXt%#QZdxTGwNQzW{wipUXp zvT<)2Pxr>@inQ$XvE!?rYgZnUt7;K)^QDBCs~?U3>1Upkr0*<^_>SGF8<=3+Kb>A0 zJCN^IBf}3#sq2|r(QR+uWP+p|3k;5TIxgn45|-#vM-n|QK5fP!U{U53j%UrcM(X+Q zy=}>Y6oM(D^`CTi-{lC16C0G({{%-?hq@M9H`xka)erAz{VD2m&q$zkAo`)(p-YSK zjgah(hihc89ItKqqcImTsKD3dFvaa&cGvn;2=Co5b6I{RE3v)P;*IpkMm63y!W%Mp zM=r`%RvM%n337Wjb7`$7tx}6)8Bc@_&p?=&l{0_=cDA@<8Qgx2kAy9T-m=V8gVKLL z?3+kt>vZS!^rb@AE_MCx3#}RNcGw7M)nf0{3*9}A^PZR=j@TvBHi)3^ABAA;D^6BF zo7snM!ROjfdwPKVBhAhT;Uo>LH7djbalpV&fhG^bqo%OSwc{VvoR?n5oi&4(m+xo$ zztl&tnd<0K^4#@ogcWbH67&D2+|~R@j?u+HfKKr|eXHk)xIa+R_mpdzGA2@>n>J%94_)ri6kmzCB8(LyWb*I6W3K2+>XI}MS(AYSnoB#{Yyilv=S_*zof9>dDcWb80Aj^07|{)5$9|=!o~R*R5(@>WzkLXbS9{N}HG5GI%9^9?l__GkXRE(`_vARS3DM)0 zX-Ks+23*jtV9|HrIm!l?WJS7{Z;E&Oziesv>INe(Gr5X-F0sD8wv5lj_S(1n(wPQR zQ&UxWS{fJI?AK8v1ZJgXpwh};6eP61PfNP(k=$nF5%h5;tHzR@vA)v1S@_hzj#aoJ z-2K(jhV`2vKR+y$N}6h8O&v3I0BUJ%glf0IS1(=nd>W{nL9(hgi(pDb&b@fyA zFmF-+PDH|ZU8_^$zz?L24@TMx*^NCnQ1AIA`8m_=wJ%B*%)>HH{|WAlPxP=V0CNoj zWcAXEa8;89^Q7#>Ht(FJ=707bjXW~58xt5Ma>vzD>jsRl%hnv;P!qp49)Y=T>v{XJ zeQ5w1dM`@<&qybhyE?X$G&Na?-mD!7@3Whi!cdL4Hymmw``JRcJs89!Boqb4H9&0M{Z$WM22~G<(r|w`Xg37fb-LR-{TJTJp~KNS6!74Fccv@64>uFw(sgoF{nG$0pXyGF_0V3?U0oMD>S6Zz1_jcPr>d7e zA5aNH-LUe;AOSj39=3WXaIyP+UJoRmTNzdv0VBe&%dx1&<{Wws>M_R)<_g>2fAL;r zv}l$*4#CTRe17+0rQxf7-Lq?N!iI};AWj=kmC>zq*NH!+Lf8$@4;0A7)xt;>Og+Kx}qf+hTeyO?*IApjX@P=vK(c6?WRE#`dk+5h75 zIR5`7*QXNq9BXsyjUrNe{-e}qPdb>*{O&-e*GqThlub$JA4XP67x~?;jdixkGI2ok zj$-QyWHZK}4CR-~E0!`dL?di`I_rG76v%m@i#pih9-?6ACXiFpvL0eflBKm1OZ8>7 zBF^w0iU5dp(bq_9!1S`L5^$2%3V9e9{lWsNGU;f4#DU!TFE^0Mm;x6kxqFHHEm*Z7 z`vNuLTRPcygp`uQ+s7V$!=#(LC@1lf=G2E;o!*VQKVcGsZ)UK|3quLgu81a!SRu0m5b)ujtYS`v zl(*EMu~xlK+DvYaQzSHhOU&DQfY*#Ki?de6Up3@AT%5`K?XEmf@CRE4LflTFYnw?6 z0T>+=&nzp9WCe6O2|9tgX)0)9G6Fi1*J+B^qt@^%!R!e`S0)@PnzltlhTg&y!Lj0F zar$M?)YybXQSpSHki7t{J8i4g0MReo=pBr-bEDP__}o)0q`dLK32n-A2+sruKfw3X z@Y?I*w7Y9%w-UG({7LB_%WBesQQRDBT^2Gp9c4445MOf0Y|?V@i9Fz7e7A9M&_hnk zf2T>4{YSOya-Daejn9vvHQ*#P%Z=S@pKHX4_Gy(HPyLhgpF?V(CB--s7gj7`{>ZKrns@Yl& z{LBHv{0FO@S=)K%C^L3Q%cZoP-YN2#9!YN%ivNrNV%Q(I}b55 z6~7@{yk7xPYK+62{Xbodd}q(^L%M_;+=?|$e?aFI&U<4@NW%-hovM+rGb z>uqvI5}|dH0*WYqGuz{8d$R(P511kw2j@lf=I3+|;m4shG&F_GRrDq$<#f1MG=wL= z{95L1bEZq^I+-X6x2k)AH$KOyG@pQUQRV)#TOQ1zp3J6SD}>Gkh)dlldQf`04n;a> zc*)V>$TX%HP}LZ8c6KsXqoKSv69-cTe!|PQc_y2r2Lpgt!{}$TChCBX>Ck83)E1ft zc|=7WMEj;@;uX9slau;r>jIS11b)IG^R;9u1SV|-TWM+DF$LYo(7>hp!YkeOTS{f{ zok14tm;g%Fh%d>RlB^+OGIQIYuVnA&Xqy+OU0NIyVA+HXB%7LYh2Ug7I77lG72-n?VU;(yGkW2%*2iH^QjyD*jNTW8j@{0HqKf7Fq$d56WT{4 z6#ZNI{9S9noA*pxWaGb*YxyjRIRY0_GDP=Z5)6L>DLR;TsVnD_42{0(8xnmQ_C!iQ zW|YK}So}GzqCvcl6S9UAa+3^uz7-f<1tvbVCwo?i)d4s^c1g=yxO{wkwIP34qoRx; zizxCX>jx9~0G%}2iz=F}WtYb<=j7b%9ynR~zWfP5s8ZgPOe$HfhBL~#`pv=3^z#9u z!(0l`AvQyCUJ(RQ(TM2=a4;R!W6?F41HT=^*9xN^Ap0v|?5l#ViT>2qP%=5K#bjVL z3TT0EAY0h`OWFBwyj~+n0gXXBhwOc=jSnJVswJ!FZ*S>=zBwj9!(^7>Yo0Lg`CeIo zb^_uP@UBJM1^RO*dX@w{e$`^+tp4N|cyE4_E++ZxZR*elfHckkDFiSAIE-D$`XZT! z!?(K~J6Skx)4$+Dc*@oqBlE78qEN-IPt`ZfK@pJT$T<@+voq&u2wQKpW&t>9XXhRB zl0EWAo`68NWK`cKa4^94kgD2H;26;ttr!^Et`6_p1O&3g<_35HQ2cFTgWkE1saxp& zsC3>N`5Yt#Uk$1mm}H__q7Ks@2N$%iwowBepi$9EdDWg;Nt_Xfu{&F&dNzK3__?|h z$#|+FkX(W6%mrRF_#Co-V?6Gs@v0%@PbUg+n{7rHPkbGx#6aH!{fUodo_`O;1Znn7 zIZknTG;3s9iS1|0be-&O#{h=W7q~%kiTUG>5ybERg9CukwoS}w(z~%e^i82K;XNaF zvhwF^`987Ix<2$fH~<9#sd(zQ0s-)8$XD7zr5sFdTBnaPdU5a=N8cm~g4=Fv6ESK~S|fT^6L z#u;H)U*4C|9Wp@kcKudf`;h?LU1k(OVwbuq4b0A;TxHlLYTGzr5n>w|Q;=fW>`mKw zkKy?wnEbTIRP|x=!#HQNq%*X&)zWm{qHtnA%Z>U?dMBMGD*N~MwhxH|^!O3Tfby9k zH^!JHMYM$zflk0nCeP09^B_stuu51NLD}%81k%Xs^2=@ON(Ph*C+o}61d3oi07g|) zCLBf=ECBmHFSDiyGPRr<9vj=pYoV&`v%1_A?*CogCo@SPvMWAgk1>jeK$ms&r=vHC zXN};a+_vxxdD@M|b`6c(gqWx(`VzL{xd(Pp_FGXhY>RO_^Rzb$+Dtoui}K5XECHw; z;XLLeG9zqYu$G=_7U@{;V=*XMSc$R%nKNGzSDFs-RP` z;j_?A8MV;gx-skb=hZWezrQyTYop3Py?kCrX;Pejt<1#8h>I2Get$CyzIx}kQ}bl# zRW5NE7qeRPi~f4M&_UsM4eO2*W42PK3LUOtQ5#I z>tG0~NaaBk#AYT`{E-O>sv@|*a(gB}#XAZ4$!6Om4ytu%xQyG$DJl4M;>3DS0=iGX zwR&eSBtS(+JI)N4JtxTD!rQ@9zoyeCx^FKcU7MnTsc_+1Q?SfU&hw@CW)py(uqcHP z&18j@1rS{wZPNqk9}@T9fovNO-HsR0>;1a=w&YZCebBYuNSv}yIS;77MJKxiZ zYc-s<=u+kIBXn2Mz?UZqpp;BgF*IAnJm>1ocZqas9}#tdxT_u$n?=B7 z9ib5@15YQuJga>7RO>Q*c6Uc1rm^ons){*`fQM}Mo)uSt!Jz+cPVHw{v`A*(zB5Ub zDl>BSXkm=!%(?fi-w6>>9NgH?ywDPNZXsnJ&y^Q7UB1J;2UukwsK}0|Z2JPB6ylkw zbkNP;KDg-%)zdL2qnp0;JgyWoGr z!dH}fi>8&NRV{H7a>pz~gNhD4$WB0!g}Wme&70T`^zZMP9OF(jG+r%U#XaYbM*Q`t z7A=X5?>R(g&gzsNl!*j%4;SF#5-r6hytQQ-iwgRn_2jO}?n!8YVvWKwfIhzZ4tA2_jwRkvDe`h| zpuU>cH{N;9F$b?q>zkGhHIrs+N5E-Yc_A{dZo?-&BGqt2vsWo1a8K|}h&{ZT=3Uj3MCJZID)^Gi}7($+6>5#jc? zp`A=CL#Jk{A*aynMu|V)3c-{|-8tBKdaN`8{?&GRXso+}N2JU~*_orPgDilI{!cJl3%-wsnHb>%E*$`)Vm`Q=_w7Ha1o?KVDwVTp;bV<%wAgfP~XEPY!^ z2VQM9Q8aq?s8`YtO3AMPCDVlczA~2??>YjaAsny=t(jC?{{DK+BZLWJCY-^=_PUwH z41F`ktw)lfTBRF89sQ9m$O~BU?%v>DD>nzTZvHnGfK%|nZ{;CHy>!O?SD$&+UXdK} zKT49HZ*gRdn=Une=RmT zDuh_PHm5mRfd(5b*8}e}Ngr@U;*Chmh&^DY2!v#ks(Wf%oP^pl@~Gd*Xbx`Y>P2;# zeyx@b0^ZrS)1fF7kNW<`+D_?)Yo)rTq7zP$C$%9eX)+o1RSw-W zq}M5-s7p$}U$e%ISTj<&8+zYMSY59uN8J4Bi7IDVGmfXqjHMIswWW99G6uhLL%A~a zSbZ5JQALvVRJ84T{{iP2cE@)Cs+=0c90&GAiT0G3)))Yz1f?jgjB>G1f&Q%cI_bpq z%im2>H5xQH-6MImu&mymBZ+TpIh5C~18ro9NNU)>X852&BS_(O4A7e_nD_k$Cj0M5 zfHQHcbL!t2t8ofgI{Z`y#4n)1Tg$*LhG{}ww0Me%obWB1Vjhz^ z;_!Aj+sIXE#R+zVPk-ioxcYQ|^Hg^7P9FojUz zv@RXxB*H`ML(C8om1X>f|4ou z$G#Zq7i;j1zleF@MVk1oz@-U~uQgVF(x0A#{t~Uf0k*eN%3El`z+$FO$gJTcqynvi zf)rY_75Hb+iM)j;=%)RSPIlJ}&JTP~)5SWggsxED9^O5l9deCEEX?vrX60NCq%Y6Y zW0y4aK^?ZmOKglipLpJ9@f-eTDcc9tii2$bw&tKg*Ipp{!Ci3Ws`IRqzPrGS+@Y(u z(0Ciza_1Dwd6~cGzVxcf_ZfV*Mf|9EJBEB6isgN^*B~NY0V@JRYB!~jHEcgTOt-1%rK%9WdcY(VqDV^J4T}mkR=L}V5QEade zaqev+JOIH&ZzPAIl+#qPy!rk-+vh-QC8zNFxBlkFfFwjcbE`P*0gPh6&kF}{#2L0BOwR_G$SY@0Ev(fO zxRc3T<1J#EzmrscMK_Sz?SUL@7DAgzY1;BCZ#oe#hJgb7VlGt$f3^cNsayy&gP=~f z#3$+4RRliPMp9~uRHcs9eyJq;Q&b_;agth@`gkDo>?}gBZ<~PQai#F< z9nP@Va0lolM$%{88KF+2^6|ndv#8@jEc7QBNkUI#ozNX-<&(cKcN@vK4f|aXf>%C z{i#qOJ7-{CqiC07fqjIq7g@>{i7dqxqfJ*^S-|-EuEF5BeO)@5G>SvIjM#89nhAA? zIG3NzW!!Jfq_t4_rTgn$qW^&wb7kNZ#WO&z=Jd#Ndz~X`tC(SGr>sb*mgHq$y$%a? zIf;dnbGxZ{ze&WBF zpmnnmjtQDR;eCyl6;b8?CO*FZR^dBq4y6rXbBsp2UXfZn^{#?;$?^70M0BRh>+~CQ z1vam4Qkw%BFnzV2^j*Yulr!Dn(4wh2(A2|i^&p$!C12H8?}i%CO8`;`{FQG3zpzJ^ z)~fD^ZgEyruB7dJ)dMcOOovEaC;?33H6{rFDguFbYj#H#vrwf0(Jzqmh-AU&4m6_K zFi?Fbl3f5@f2pmye4t{hqJ&cneT<6W5y4CV{1{xh^I0++OWL!%krrN01 zIP0Sskxo{CDxmn)S|MMXf&mlVZ`fKS;?#25r1k`&_SpScYl;3n>cED_?Tl8xI%F!d zu+9QI3KrAz129_R__H(-hvoZJ1FTl%rfkI1bpsdy*Hn~b-(h;L;=G7OnulmTi9r7V z{>pJdaDznWovVwVY-=>jSi0Be{a)mrJQX-A>$3du_J|Z^Oc{ZMXuFI>E=&a6aK?kL zkK(oO>URACj-3`xL;UFe_?QZXGTwZKM;>SZHT0}FjN$zV_<2_-fh=oXro+!Jd2EILFq+@sykfQM?QFo*~I-fG=VHL_9g?V zid9$^IeP9E&%p#}=i1d)&JbAqE<9_E&QpH{mq--%^&8QG=(szNq;=k1?Loti1M?S~ z7Bdu@VlIC0c!$|;-v6tsuK5v9Nq*+o>I;2Bd zIwhn8q@+9cf0pw5u?vXW*|K?2|{|gM*ilhF6a4 z+SBwdhD-@HC)iiu0oMupI0H_a${w(ZLb&5`O1H=Q8F*3jZAae<9)PklE!Rn3a_M3R zO|)uMzGi9+D`ue~!moQRA_%>Q0ey)kgXEC;In?c#r@&uIxKHs`>eyup-ILp#2(W30 zC=UTRFJa^at^UIFP<2xidBuq&rG5ZxkBXh^+nRmi7u?419i%vd>_;KS^Jj@=ae&QS z$>rWCS7QqU5GV4ZIlDJu>l^xLVG=VLTH7gL6H$@vom`BKHmF}WpbhpYJs`1Ty|!2N zl=pVCGGPTF7p8LEwU@ujt7(JdAFjh(q|Fo#NX&0pbb9!RK`(6GO=W6)hYTgRt!(E1 zFW$~~;|K#hoq!i?=3vpDf4t&DV$(g6z%(_n;N9Qw1Q5v*y80ugpWQ3kkUBmNl-Xy_ zRf@p>wfiu#{{q(u!6BzsC6Jv2lVh@tv7+u-iUL3%XsPBX(n?Kt+`lT@{wyjdNaRV2 z_cD>0Sl+D5b;kWQ?1u}VpSa(Ngjjk`0mO5G$am zQGkUPv84VZZq9N2EBkVE(ED7RrLXYCVF;fivE&OYfTq!Zt!p=S;VJ5+E*$?5WRg#R z^0Q-aZw{Z2TV!wU+`*IaWoEbYhIt?b_F^21Glo-@>6h<=i)u#A!Dg0Iu2&9?o|&u? zv%{pMYv~q8wJF}48?b4Ome`x8F&O%t+W8f@%0BFd zG>Ig|@wS(qa$;7gW;ZPMwon6S@6f9NXJV)65#iT6yo2s8er{Nq61Tg#tc4wYM+6|Ci*o-)3GCR5KAB!_CV<+OszCi740GW1aFBAMbX_l8CTa!EbRLM zgXf*}6rm6p46whqQ%&jnmqX}RV9bMlo3>%GU zt(^*viP5U@I@@BZd~Y5Mq!D5sM6Kw!3j+qs^G*$1K}zRh$d4-Rqpr!D{ZxpS>VG&N z1q$GN~R3J!!eL+t7u4^Z#wEm_JTrbi`Pc(8(a`=JUJt-h+`6TL(7cFKy zT=xzN|DE279-#i(cGRSSnkX^pDK`?qD2t%|z~~!{ir%v6QuU#6#KeLlNwWFmEEGf4 zj4oml9f?+Cck}Ok&I5L2;Q81<2(1O1(f8jODGTx+XT(V*!02!8$rliQN`gpaJu91? zwIv1%Lrvfz!(F?MN}zj=P@CrvsTorB1}Hy@kICGi{Pm|zKleYbfM-BnM4mHbah}EDKUouRZwKPSuWm#~r^L5i)Xv6g5I;LD zAyMW|%Yrk2p#B}YIQ{dxW+-mZe{lFOm4J=n6dDhbUbK>xCrmpeEymq1UyGNb$xXXT z&D`-`6)dN;1MlOUjwA>+0Z&>v%Fe$(YM<9P&bR4Co|=E_oy02a(;Ch`pw8ZoQIiux zN!Gk?=CEJG_Jb`^r&;(}tNZr587&jQ!kn5zO8n1C@?y$aF15x&i(1k6Czu^@2Fb{A zpsAu5-Zv$YB|#Suzl}J4*=3Z+j0a~l({ChYk68W)aKE7beoTrNJPjESEl_9^=8 z_v*aOC0SNFc_PyVyQ1)7h}668v<7Gf)#-2;o=|`dO%t~jx$f*)I2S){uKga`#uoIE z4}kZ+4@r@!JGD#>!k3O+TF6V7C(tsqzDWwQ!b~`ze_<@sMny?RTlFuT=NE!EGIW+S zs&V#hrny|zgnb}EIz(RCy^mdck;55nwA3HO5x_SyL+gqGe>g4={ahHghi|vmbzeFq zsBa5NXW{6M7MID~?It|GZ_-8j4L+O?v9^<25(EvKxI*kaOR}De>Quj;Lb;y$JH#(U z36iJpNn7AZL^LygaO$Wogd=+q*ublyc}|3ONc+!r2(EemW2!?X-_bj95B8@!V}ZVe z=e9k(K7Pm*4{cZcA&=lb=st4#FX}=V>;|{&RasEQsn3Cx?BziOq3=m>vOy79zkMd}* zi~>0hScSb=OFF%l3%NrzavJ%x`51bH_O%f{>MQogMjI};+F~q3I zC;!@zpQM+r-dPY)qaz4oX>`BsZp97XU%fP0#m5uOr=pa$=8C1Fbnm^cI_Wjgsw3Zh zWzElL7;sJLcl-o!1(fTM8%7MG57b)$$p~1JrXP{$8HkjQNyL*RSbAIF^acQf-63q( zGT$MrZJZ{M~^WoBA8HsWoC#&=-t z59?I&;l)K7dVwks3;CKH!j>Y`VSEOe)_em|JKgUS{Te}v1HeQq{ayZ*BeIDPj+bH0o%A-gvtdkSl;|G5&-jGA$x^0I`QT|;@kaCW4!LqfTEc>M+!htM#3PZ{Q zXQT|QpgM7uv`mK_?f@wNT^`jZ1#l9&xN~9e{4`+JXOe>KsW7RC^hD)|dOV`M2R!A3xow7=o>e&F~V+Q5H;{L%+VFIOmc zlm*l=SID(r5Hz-HcHd~APiP|f z(}Y+vgBLCb=8WLseYnso-+VDLpZqXWjy-*n{5Mbl-FNm}pHNaPDs5Uy$rj)ncmtYI zAo=O<&{C(8=g%zexknvHwk75r3Ydgnh!gD&oVa8U7v8H5@ORte4A>isSG~pdW6xV& zkfP$*)#iw5u4)eN;kxnh8H7jg-{8mL%g92oXejtAg6Y60xqrfhuBDMCs?m0z=rK&8 zlkD^t22FUAd<@+9b8pyN98di`!zX4wlVFaVzMY?pc z-6|e}tANt}{fm{#*RzFR-vM;a>VLqUtC?kn5CDHSOTxJ)1_AnlQCX`=PnN~3jbQ#;>fPCJ4=Yfyt2cL#Xx99kn#Nk?zhT-trU#$3Gsr61eM-LHO&k6 zF~k88Pci6m)hx&2FhT3%J9SZ2em9xkghd<<4S1>z*+k!M<>o zj3AdM4c?L0pc6kt0`jIKL+4=-^|>|}!Ms|)5AXO|J=p?;uS^+D)2QFiQ^_Fjzw_|= z<%<6X`%Qa)fJaHF|G0a|@(&W3H~95(vps5hlC?|HO6nVV4+r^HjAUWrzvqks7gjX* zCRq3#KCEEwi{_*6{!VqX7ZBnf=BpW=w>?D@75m`-1bCV6c+W8mpteLYX=Z0oaOz?w z09IDF_u-!$K#I(rC*+hJe*>HZ=g=V5Z*eAcc>(iDM`u4%+4$d|CA`1Ek4LUEuc%`u zIL=V5sy!bU>i;~0|0A$A#?$XjITs$+y$?FRXQonGHjS$QL5p1Pq)1AA(o^T$nx^>ql6ZT?Rf_Zb8WxHnNo(>24%H;3BKJ(3!X}_(rwlcmdh(S4}#Djx)k@sv&v;P>?%!d3Kx43jG*z#sgCs- zu6TbnV-XL$d+7KacV)+q>I#9`>v6spkQx~Gz6bec?F;95&#LG=&mn%h_pSBOQDe9b zG$At@A}yl`=e}x0wk5z~&Kyjin0A1^tPb5qG__M`a?yv8Emz*Tv%xO6p(vt-79+fE$?LOFFY; zYnX}38L|Bz{=c3h0(tg*jeUo|xj~Nqs;Q+_$lS#Q8h#PQgA1xIS&6!LaA|^SB)Kjy z3xVCG4mK;FT3jhdl&A)O4t`@`O#`rEuqV_N#31>8o#t-c@sx@X-dAl4<0A;_MnqaF z34J}EPOCSJlG-PHmZm#Q#w&Ly)ghwyZgMbPFgS0^bQZIQ4HXM?C)rUPWPm}XEX})Z z-rrVmMEoKf9%0Ad3OKqJ$`{jf?2t|=l|C|vYyV$uRs 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 QLBNlKjH>ikDU*=@2dsmB_5c6? diff --git a/maps/RandomZLevels/wildwest.dm b/maps/RandomZLevels/wildwest.dm index 34e450600e9..056456e332f 100644 --- a/maps/RandomZLevels/wildwest.dm +++ b/maps/RandomZLevels/wildwest.dm @@ -59,19 +59,19 @@ user.see_invisible = SEE_INVISIBLE_LEVEL_TWO user << "\blue The walls suddenly disappear." user.dna.mutantrace = "shadow" - user.update_mutantrace() + user.update_body() if("Wealth") user << "Your wish is granted, but at a terrible cost..." user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." new /obj/structure/closet/syndicate/resources/everything(loc) user.dna.mutantrace = "shadow" - user.update_mutantrace() + user.update_body() if("Immortality") user << "Your wish is granted, but at a terrible cost..." user << "The Wish Granter punishes you for your selfishness, claiming your soul and warping your body to match the darkness in your heart." user.verbs += /mob/living/carbon/proc/immortality user.dna.mutantrace = "shadow" - user.update_mutantrace() + user.update_body() if("To Kill") user << "Your wish is granted, but at a terrible cost..." user << "The Wish Granter punishes you for your wickedness, claiming your soul and warping your body to match the darkness in your heart." @@ -86,7 +86,7 @@ user << "Objective #[obj_count]: [OBJ.explanation_text]" obj_count++ user.dna.mutantrace = "shadow" - user.update_mutantrace() + user.update_body() if("Peace") user << "Whatever alien sentience that the Wish Granter possesses is satisfied with your wish. There is a distant wailing as the last of the Faithless begin to die, then silence." user << "You feel as if you just narrowly avoided a terrible fate..." diff --git a/tgstation.dme b/tgstation.dme index b4d0e7df24d..a114c08ce6e 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1112,8 +1112,4 @@ #include "interface\interface.dm" #include "interface\skin.dmf" #include "maps\tgstation.2.1.2.dmm" -#include "maps\RandomZLevels\Academy.dm" -#include "maps\RandomZLevels\challenge.dm" -#include "maps\RandomZLevels\stationCollision.dm" -#include "maps\RandomZLevels\wildwest.dm" // END_INCLUDE From 96b1bd81dd840e15f7bb657eae76a3c418c23756 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sat, 11 May 2013 11:44:52 -0500 Subject: [PATCH 21/62] Reduced toolbox force to 10 --- code/game/objects/items/weapons/storage/toolbox.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/storage/toolbox.dm b/code/game/objects/items/weapons/storage/toolbox.dm index 1db34e27393..ccea8b916fe 100644 --- a/code/game/objects/items/weapons/storage/toolbox.dm +++ b/code/game/objects/items/weapons/storage/toolbox.dm @@ -5,7 +5,7 @@ icon_state = "red" item_state = "toolbox_red" flags = FPRINT | TABLEPASS| CONDUCT - force = 11.0 + force = 10.0 throwforce = 15.0 throw_speed = 1 throw_range = 7 From b3668c8db72a799a2100d2e44fc01e37b6460c92 Mon Sep 17 00:00:00 2001 From: Malkevin Date: Sun, 12 May 2013 00:37:40 +0100 Subject: [PATCH 22/62] Proper Vandyke Vandykes are a tash and chin fungus, old sprite was some weird long handle bar thing. Added some proper vandyke sprites, renamed old ones to fu manchu and added that as another facial hair style --- .../mob/new_player/sprite_accessories.dm | 4 ++++ icons/mob/human_face.dmi | Bin 29056 -> 29270 bytes 2 files changed, 4 insertions(+) diff --git a/code/modules/mob/new_player/sprite_accessories.dm b/code/modules/mob/new_player/sprite_accessories.dm index 99446bf0532..0b52fa0e41b 100644 --- a/code/modules/mob/new_player/sprite_accessories.dm +++ b/code/modules/mob/new_player/sprite_accessories.dm @@ -353,6 +353,10 @@ name = "Five o Clock Shadow" icon_state = "facial_fiveoclock" + fu + name = "Fu Manchu" + icon_state = "facial_fumanchu" + /////////////////////////// // Underwear Definitions // /////////////////////////// diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi index 734fad6d2d735143e092501a703b9b6e6f806362..e3a0357805c7a506071b08ccbb7b0d636ed921d2 100644 GIT binary patch delta 8170 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 H!^{5%xRC8K delta 8007 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 From c1b605c6275174d88c45f019d4c171007c517e99 Mon Sep 17 00:00:00 2001 From: carnie Date: Sun, 12 May 2013 08:15:44 +0100 Subject: [PATCH 23/62] *Resolves an issue where the gender block was being misread, resulting in gender changes. *Resolves a potential issue with hardsetting dna, where dna could potentially be created for carbon-based mobs that do not currently support it *updateappearance(mob) now works for any carbon mob (i.e. monkeys) *all dna setup procs like hardset_dna check_dna_integrity and ready_dna, return the dna in question (or null/0 on failure) (as per Giacom's request) Modified code/game/dna.dm Modified code/game/gamemodes/changeling/changeling_powers.dm Signed-off-by: carnie --- code/game/dna.dm | 33 ++++++++++--------- .../gamemodes/changeling/changeling_powers.dm | 2 +- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/code/game/dna.dm b/code/game/dna.dm index 6fdf27bc184..37d64002669 100644 --- a/code/game/dna.dm +++ b/code/game/dna.dm @@ -68,7 +68,7 @@ return . /proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, mutantrace, blood_type) - if(!istype(owner)) + if(!istype(owner, /mob/living/carbon/monkey) && !istype(owner, /mob/living/carbon/human)) return if(!owner.dna) owner.dna = new /datum/dna() @@ -96,6 +96,7 @@ domutcheck(owner) check_dna_integrity(owner) + return owner.dna /proc/check_dna_integrity(mob/living/carbon/character) if(!istype(character)) @@ -205,21 +206,23 @@ /////////////////////////// DNA HELPER-PROCS /////////////////////////// DNA MISC-PROCS -/proc/updateappearance(mob/living/carbon/human/H) - if(!istype(H) || !istype(H.dna)) +/proc/updateappearance(mob/living/carbon/C) + if(!check_dna_integrity(C)) return 0 - check_dna_integrity() - var/structure = H.dna.uni_identity - H.h_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) - H.f_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) - H.skin_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] - H.eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) - H.gender = (deconstruct_block(getblock(structure, DNA_GENDER_BLOCK), 2)-1) ? MALE : FEMALE - H.f_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] - H.h_style = hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), hair_styles_list.len)] + + var/structure = C.dna.uni_identity + C.gender = (deconstruct_block(getblock(structure, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE + if(istype(C, /mob/living/carbon/human)) + var/mob/living/carbon/human/H = C + H.h_color = sanitize_hexcolor(getblock(structure, DNA_HAIR_COLOR_BLOCK)) + H.f_color = sanitize_hexcolor(getblock(structure, DNA_FACIAL_HAIR_COLOR_BLOCK)) + H.skin_tone = skin_tones[deconstruct_block(getblock(structure, DNA_SKIN_TONE_BLOCK), skin_tones.len)] + H.eye_color = sanitize_hexcolor(getblock(structure, DNA_EYE_COLOR_BLOCK)) + H.f_style = facial_hair_styles_list[deconstruct_block(getblock(structure, DNA_FACIAL_HAIR_STYLE_BLOCK), facial_hair_styles_list.len)] + H.h_style = hair_styles_list[deconstruct_block(getblock(structure, DNA_HAIR_STYLE_BLOCK), hair_styles_list.len)] - H.update_body() - H.update_hair() + H.update_body() + H.update_hair() return 1 /proc/domutcheck(mob/living/carbon/M, connected, inj) @@ -393,7 +396,7 @@ del(animation) var/mob/living/carbon/human/O = new( src ) - O.gender = (deconstruct_block(getblock(M.dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? MALE : FEMALE + O.gender = (deconstruct_block(getblock(M.dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE if(M) if(M.dna) diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index d0e2c1739b3..615d232c919 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -305,7 +305,7 @@ W.layer = initial(W.layer) var/mob/living/carbon/human/O = new /mob/living/carbon/human( src ) - O.gender = (deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? MALE : FEMALE + O.gender = (deconstruct_block(getblock(dna.uni_identity, DNA_GENDER_BLOCK), 2)-1) ? FEMALE : MALE O.dna = dna dna = null O.real_name = chosen_dna.real_name From c8baf7748a41981eb95f90ffd658ca4f113b450e Mon Sep 17 00:00:00 2001 From: Pete Goodfellow Date: Sun, 12 May 2013 15:16:04 +0100 Subject: [PATCH 24/62] Reverting accidental changes. --- code/datums/spells/horsemask.dm | 1 - code/game/gamemodes/wizard/spellbook.dm | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/code/datums/spells/horsemask.dm b/code/datums/spells/horsemask.dm index cd243fb9933..f3ecc121516 100644 --- a/code/datums/spells/horsemask.dm +++ b/code/datums/spells/horsemask.dm @@ -30,7 +30,6 @@ var/obj/item/clothing/mask/horsehead/magichead = new /obj/item/clothing/mask/horsehead magichead.canremove = 0 //curses! - magichead.unacidable = 1 //our gift will be with them forever magichead.flags_inv = null //so you can still see their face magichead.voicechange = 1 //NEEEEIIGHH target.visible_message( "[target]'s face lights up in fire, and after the event a horse's head takes its place!", \ diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm index e431d85cc3f..cf018a8ad21 100644 --- a/code/game/gamemodes/wizard/spellbook.dm +++ b/code/game/gamemodes/wizard/spellbook.dm @@ -18,11 +18,10 @@ if(contract.used) user << "The contract has been used, you can't get your points back now." else - user.drop_item() user << "You feed the contract back into the spellbook, refunding your points." src.max_uses++ src.uses++ - del(O) + del (O) From 6c3d5c3e4be95c2b04eaa03bf789a89f6418b288 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Sun, 12 May 2013 10:18:34 -0600 Subject: [PATCH 25/62] Removed Roboticist from engineering_positions Used in assigning department-wide jobbans --- code/game/jobs/jobs.dm | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm index a587472d74a..c62958f84db 100644 --- a/code/game/jobs/jobs.dm +++ b/code/game/jobs/jobs.dm @@ -67,14 +67,13 @@ var/list/engineering_positions = list( "Chief Engineer", "Station Engineer", "Atmospheric Technician", - "Roboticist" ) var/list/medical_positions = list( "Chief Medical Officer", "Medical Doctor", - "Geneticist", + "Geneticist", //Part of both medical and science "Virologist", "Chemist" ) @@ -84,7 +83,7 @@ var/list/science_positions = list( "Research Director", "Scientist", "Geneticist", //Part of both medical and science - "Roboticist" //Part of both engineering and science + "Roboticist" ) From 9377f06ad9b43aff4ab79d8d187953f4ab42f384 Mon Sep 17 00:00:00 2001 From: supersayu Date: Sun, 12 May 2013 14:49:39 -0400 Subject: [PATCH 26/62] Sandbox improvements Reduced the overwhelming size of items list by removing huge categories into their own separate lists; this affects /obj/item/clothing and /obj/item/weapon/reagent_containers. Removes a bunch of unsanitary items from the spawn list. Makes RCD quick spawn button check for spawn disabled flag since it can destroy walls and floors with impunity. Adds cleanbot to quick spawn list. Removes the check for the spawn flag from the dialog construction, because it is cached; if the admin turns it on during the round, people who already have a sandbox panel will be unable to use it. Adds a disclaimer to the sandbox panel vis a vis admin disabling. --- code/game/gamemodes/sandbox/h_sandbox.dm | 82 +++++++++++++++++++----- 1 file changed, 65 insertions(+), 17 deletions(-) diff --git a/code/game/gamemodes/sandbox/h_sandbox.dm b/code/game/gamemodes/sandbox/h_sandbox.dm index db05e0a9cec..285c6b84e90 100644 --- a/code/game/gamemodes/sandbox/h_sandbox.dm +++ b/code/game/gamemodes/sandbox/h_sandbox.dm @@ -21,11 +21,17 @@ datum/hSB var/owner = null var/admin = 0 + var/clothinfo = null + var/reaginfo = null var/objinfo = null var/canisterinfo = null var/hsbinfo = null - var/global/list/spawn_forbidden = list(/obj/item/weapon/grab, /obj/item/tk_grab, /obj/item/weapon/dummy, /obj/item/assembly,/obj/item/device/onetankbomb) + var/global/list/spawn_forbidden = list( + /obj/item/weapon/grab, /obj/item/tk_grab, /obj/item/weapon/dummy, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you + /obj/item/assembly,/obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai, + /obj/item/device/uplink/hidden, /obj/item/smallDelivery, /obj/item/missile,/obj/item/projectile, + /obj/item/borg/sight,/obj/item/borg/overdrive,/obj/item/borg/stun) proc update() @@ -39,8 +45,6 @@ datum/hSB "Spawn Flashlight" = "hsbspawn&path=[/obj/item/device/flashlight]", "Spawn Toolbox" = "hsbspawn&path=[/obj/item/weapon/storage/toolbox/mechanical]", "Spawn Light Replacer" = "hsbspawn&path=[/obj/item/device/lightreplacer]", - "Spawn Rapid Construction Device" = "hsbrcd", - "Spawn RCD Ammo" = "hsbspawn&path=[/obj/item/weapon/rcd_ammo]", "Spawn Medical Kit" = "hsbspawn&path=[/obj/item/weapon/storage/firstaid/regular]", "Spawn All-Access ID" = "hsbaaid", @@ -50,32 +54,40 @@ datum/hSB "Spawn 50 Glass" = "hsbglass", "Spawn Full Cable Coil" = "hsbspawn&path=[/obj/item/weapon/cable_coil]", "Spawn Hyper Capacity Power Cell" = "hsbspawn&path=[/obj/item/weapon/cell/hyper]", + "Spawn Rapid Construction Device" = "hsbrcd", + "Spawn RCD Ammo" = "hsb_safespawn&path=[/obj/item/weapon/rcd_ammo]", "Spawn Airlock" = "hsbairlock", "Miscellaneous", "Spawn Air Scrubber" = "hsbscrubber", - "Spawn Canister" = "hsbcanister", + "Spawn Canister..." = "hsbcanister", "Spawn Welding Fuel Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/fueltank]", "Spawn Water Tank" = "hsbspawn&path=[/obj/structure/reagent_dispensers/watertank]", "Bots", + "Spawn Cleanbot" = "hsbspawn&path=[/obj/machinery/bot/cleanbot]", "Spawn Floorbot" = "hsbspawn&path=[/obj/machinery/bot/floorbot]", "Spawn Medbot" = "hsbspawn&path=[/obj/machinery/bot/medbot]") + if(!hsbinfo) hsbinfo = "
    Sandbox Panel

    " if(admin) hsbinfo += "Administration
    " hsbinfo += "- Toggle Object Spawning
    " hsbinfo += "- Toggle Item Spawn Panel Auto-close
    " + else + hsbinfo += "Some item spawning may be disabled by the administrators.
    " for(var/T in hrefs) var/href = hrefs[T] if(href) - hsbinfo += "- [T]
    " + hsbinfo += "- [T]
    " else hsbinfo += "
    [T]
    " - if(hsboxspawn) - hsbinfo += "
    - Spawn Other Item

    " + hsbinfo += "
    " + hsbinfo += "- Spawn Clothing...
    " + hsbinfo += "- Spawn Reagent Container...
    " + hsbinfo += "- Spawn Other Item...

    " usr << browse(hsbinfo, "window=hsbpanel") @@ -164,6 +176,9 @@ datum/hSB if("hsbglass") new/obj/item/stack/sheet/glass{amount=50}(usr.loc) + // + // All access ID + // if("hsbaaid") var/obj/item/weapon/card/id/gold/ID = new(usr.loc) ID.registered_name = usr.real_name @@ -171,7 +186,13 @@ datum/hSB ID.access = get_all_accesses() ID.name = "[ID.registered_name]'s ID Card ([ID.assignment])" + // + // RCD - starts with full clip + // Spawn check due to grief potential (destroying floors, walls, etc) + // if("hsbrcd") + if(!hsboxspawn) return + new/obj/item/weapon/rcd{matter=30;canRwall=1}(usr.loc) // @@ -193,25 +214,52 @@ datum/hSB // // Object spawn window // + + // Clothing + if("hsbcloth") + if(!hsboxspawn) return + + if(!clothinfo) + clothinfo = "Clothing (Reagent Containers) (Other Items)

    " + var/list/all_items = typesof(/obj/item/clothing) - /obj/item/clothing + for(var/typekey in spawn_forbidden) + all_items -= typesof(typekey) + for(var/O in reverselist(all_items)) + clothinfo += "[O]
    " + + usr << browse(clothinfo,"window=sandbox") + + // Reagent containers + if("hsbreag") + if(!hsboxspawn) return + + if(!reaginfo) + reaginfo = "Reagent Containers (Clothing) (Other Items)

    " + var/list/all_items = typesof(/obj/item/weapon/reagent_containers) - /obj/item/weapon/reagent_containers + for(var/typekey in spawn_forbidden) + all_items -= typesof(typekey) + for(var/O in reverselist(all_items)) + reaginfo += "[O]
    " + + usr << browse(reaginfo,"window=sandbox") + + // Other items if("hsbobj") if(!hsboxspawn) return if(!objinfo) - objinfo = "Items:

    " - for(var/O in reverselist(typesof(/obj/item/))) - var/allow = 1 - for(var/typekey in spawn_forbidden) - if(ispath(O,typekey)) - allow = 0 - break - if(!allow) - continue + objinfo = "Other Items (Clothing) (Reagent Containers)

    " + var/list/all_items = typesof(/obj/item/) - typesof(/obj/item/clothing) - typesof(/obj/item/weapon/reagent_containers) - /obj/item + for(var/typekey in spawn_forbidden) + all_items -= typesof(typekey) + + for(var/O in reverselist(all_items)) objinfo += "[O]
    " usr << browse(objinfo,"window=sandbox") // - // For the object spawn specifically, checks to see if it is turned off + // Safespawn checks to see if spawning is disabled. // if("hsb_safespawn") if(!hsboxspawn) From 0fe659c43c2db3cefa7bbf1c4ca15295650e45af Mon Sep 17 00:00:00 2001 From: carnie Date: Sun, 12 May 2013 20:29:24 +0100 Subject: [PATCH 27/62] Fixes #559 - Changelings are no longer so obviously faking when they are faking death. --- .../mob/living/carbon/human/examine.dm | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 2eb34249e7a..1be20bf25c8 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -199,7 +199,9 @@ else msg += "[t_He] has a strange masculine quality to [t_him].\n" + var/appears_dead = 0 if(stat == DEAD || (status_flags & FAKEDEATH)) + appears_dead = 1 if(getbrain(src))//Only perform these checks if there is no brain msg += "[t_He] [t_is] limp and unresponsive; there are no signs of life" @@ -252,18 +254,19 @@ msg += "" - if(stat == UNCONSCIOUS) - msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n" - else if(getBrainLoss() >= 60) - msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" + if(!appears_dead) + if(stat == UNCONSCIOUS) + msg += "[t_He] [t_is]n't responding to anything around [t_him] and seems to be asleep.\n" + else if(getBrainLoss() >= 60) + msg += "[t_He] [t_has] a stupid expression on [t_his] face.\n" - if(!key && getbrain(src) && stat != DEAD) - msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely\n" - else if(!client && getbrain(src) && stat != DEAD) - msg += "[t_He] [t_has] a vacant, braindead stare...\n" + if(!key && getbrain(src)) + msg += "[t_He] [t_is] totally catatonic. The stresses of life in deep-space must have been too much for [t_him]. Any recovery is unlikely\n" + else if(!client && getbrain(src)) + msg += "[t_He] [t_has] a vacant, braindead stare...\n" - if(digitalcamo) - msg += "[t_He] [t_is] repulsively uncanny!\n" + if(digitalcamo) + msg += "[t_He] [t_is] repulsively uncanny!\n" if(istype(usr, /mob/living/carbon/human)) From 4627e5459c1d121dcd69d0ecbc9edddb83bbeff2 Mon Sep 17 00:00:00 2001 From: carnie Date: Mon, 13 May 2013 01:48:41 +0100 Subject: [PATCH 28/62] *Fix for syringes *Fix for one icon_state being the wrong shade (apparently) --- .../reagents/reagent_containers/syringes.dm | 7 ++----- icons/mob/human.dmi | Bin 83056 -> 82674 bytes 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 9a2f683fe64..fa401d32e06 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -51,9 +51,6 @@ return if(ismob(target)) //Blood! - if(istype(target, /mob/living/carbon/slime)) - user << "You are unable to locate any blood." - return if(reagents.has_reagent("blood")) user << "There is already a blood sample in this syringe." return @@ -61,8 +58,8 @@ var/amount = src.reagents.maximum_volume - src.reagents.total_volume var/mob/living/carbon/T = target var/datum/reagent/B = new /datum/reagent/blood - if(!T.dna) - user << "You are unable to locate any blood. (To be specific, your target seems to be missing their DNA datum- report this to an admin.)" + if(!check_dna_integrity(T)) + user << "You are unable to locate any blood." return if(NOCLONE in T.mutations) //target done been et, no more blood in him user << "You are unable to locate any blood." diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi index a47fafc11e172492e36c4197fdfe825b53482a26..ef7bddb8235d7cf7e5ac824b48af4b00b6d9f5e8 100644 GIT binary patch literal 82674 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 z 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⪚Q7dOJq3r2 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 literal 83056 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%0A1S9@5gMHLx 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 Date: Mon, 13 May 2013 08:43:14 -0600 Subject: [PATCH 29/62] Removing changes to the dme --- tgstation.dme | 37 ------------------------------------- 1 file changed, 37 deletions(-) diff --git a/tgstation.dme b/tgstation.dme index dec58e71123..b4d0e7df24d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -6,43 +6,6 @@ // BEGIN_FILE_DIR #define FILE_DIR . -#define FILE_DIR "html" -#define FILE_DIR "icons" -#define FILE_DIR "icons/effects" -#define FILE_DIR "icons/mecha" -#define FILE_DIR "icons/misc" -#define FILE_DIR "icons/mob" -#define FILE_DIR "icons/obj" -#define FILE_DIR "icons/obj/assemblies" -#define FILE_DIR "icons/obj/atmospherics" -#define FILE_DIR "icons/obj/clothing" -#define FILE_DIR "icons/obj/doors" -#define FILE_DIR "icons/obj/flora" -#define FILE_DIR "icons/obj/machines" -#define FILE_DIR "icons/obj/pipes" -#define FILE_DIR "icons/obj/power_cond" -#define FILE_DIR "icons/pda_icons" -#define FILE_DIR "icons/spideros_icons" -#define FILE_DIR "icons/stamp_icons" -#define FILE_DIR "icons/Testing" -#define FILE_DIR "icons/turf" -#define FILE_DIR "icons/vending_icons" -#define FILE_DIR "sound" -#define FILE_DIR "sound/AI" -#define FILE_DIR "sound/ambience" -#define FILE_DIR "sound/effects" -#define FILE_DIR "sound/hallucinations" -#define FILE_DIR "sound/items" -#define FILE_DIR "sound/machines" -#define FILE_DIR "sound/mecha" -#define FILE_DIR "sound/misc" -#define FILE_DIR "sound/piano" -#define FILE_DIR "sound/violin" -#define FILE_DIR "sound/voice" -#define FILE_DIR "sound/weapons" -#define FILE_DIR "tools" -#define FILE_DIR "tools/AddToChangelog" -#define FILE_DIR "tools/AddToChangelog/AddToChangelog" // END_FILE_DIR // BEGIN_PREFERENCES From 0c47147ab18b3d78da5b0bce4f4af17fe9b0cd5c Mon Sep 17 00:00:00 2001 From: Cheridan Date: Mon, 13 May 2013 12:20:12 -0500 Subject: [PATCH 30/62] Phase 2 of my master plan: -Adds a Service headset channel, given to the botanists, barman, and chef. The HoP also gets the service channel on his headset. Note: The Service Preset Server will have to be added to Telecomms on the map before the channel is usable. I'll put up the map when/if this gets merged. --- code/game/communications.dm | 3 ++- code/game/jobs/job/civilian.dm | 3 +++ code/game/machinery/telecomms/broadcaster.dm | 16 ++++++++-------- code/game/machinery/telecomms/presets.dm | 18 +++++++++--------- .../items/devices/radio/encryptionkey.dm | 12 +++++++++--- .../objects/items/devices/radio/headset.dm | 7 +++++++ code/game/objects/items/devices/radio/radio.dm | 6 +++--- code/modules/mob/living/say.dm | 2 ++ code/modules/research/message_server.dm | 6 +++--- .../scripting/Implementations/Telecomms.dm | 1 + 10 files changed, 47 insertions(+), 27 deletions(-) diff --git a/code/game/communications.dm b/code/game/communications.dm index 5220d157e75..c5fc236456c 100644 --- a/code/game/communications.dm +++ b/code/game/communications.dm @@ -107,9 +107,10 @@ var/list/radiochannels = list( "Deathsquad" = 1441, "Syndicate" = 1213, "Supply" = 1347, + "Service" = 1349, ) //depenging helpers -var/list/DEPT_FREQS = list(1351,1355,1357,1213,1441,1347) +var/list/DEPT_FREQS = list(1351,1355,1357,1213,1441,1347,1349) var/const/SEC_FREQ = 1359 //security, colored cyan in chat window var/const/COMM_FREQ = 1353 //command, colored gold in chat window var/const/SYND_FREQ = 1213 diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index e2cf380a9cc..b407cfaf904 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -16,6 +16,7 @@ if(!H) return 0 if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) @@ -54,6 +55,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -78,6 +80,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves) diff --git a/code/game/machinery/telecomms/broadcaster.dm b/code/game/machinery/telecomms/broadcaster.dm index 4e9d980c614..d50dfff32fa 100644 --- a/code/game/machinery/telecomms/broadcaster.dm +++ b/code/game/machinery/telecomms/broadcaster.dm @@ -348,8 +348,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" -// if(1349) -// freq_text = "Mining" + if(1349) + freq_text = "Service" if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -411,8 +411,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept blackbox.msg_deathsquad += blackbox_msg if(1213) blackbox.msg_syndicate += blackbox_msg -// if(1349) -// blackbox.msg_mining += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg else @@ -634,8 +634,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" -// if(1349) -// freq_text = "Mining" + if(1349) + freq_text = "Service" if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -692,8 +692,8 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept blackbox.msg_deathsquad += blackbox_msg if(1213) blackbox.msg_syndicate += blackbox_msg -// if(1349) -// blackbox.msg_mining += blackbox_msg + if(1349) + blackbox.msg_service += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg else diff --git a/code/game/machinery/telecomms/presets.dm b/code/game/machinery/telecomms/presets.dm index 0cd533cf274..4cce0abc451 100644 --- a/code/game/machinery/telecomms/presets.dm +++ b/code/game/machinery/telecomms/presets.dm @@ -30,7 +30,7 @@ id = "Hub" network = "tcommsat" autolinkers = list("hub", "relay", "s_relay", "m_relay", "r_relay", "science", "medical", - "supply", "common", "command", "engineering", "security", + "supply", "service", "common", "command", "engineering", "security", "receiverA", "receiverB", "broadcasterA", "broadcasterB") //Receivers @@ -41,7 +41,7 @@ id = "Receiver A" network = "tcommsat" autolinkers = list("receiverA") // link to relay - freq_listening = list(1351, 1355, 1347) // science, medical, supply + freq_listening = list(1351, 1355, 1347, 1349) // science, medical, supply, service //--PRESET RIGHT--// @@ -70,8 +70,8 @@ /obj/machinery/telecomms/bus/preset_two id = "Bus 2" network = "tcommsat" - freq_listening = list(1347) - autolinkers = list("processor2", "supply") + freq_listening = list(1347,1349) + autolinkers = list("processor2", "supply", "service") /obj/machinery/telecomms/bus/preset_three id = "Bus 3" @@ -132,12 +132,12 @@ id = "Supply Server" freq_listening = list(1347) autolinkers = list("supply") -/* -/obj/machinery/telecomms/server/presets/mining - id = "Mining Server" + +/obj/machinery/telecomms/server/presets/service + id = "Service Server" freq_listening = list(1349) - autolinkers = list("mining") -*/ + autolinkers = list("service") + /obj/machinery/telecomms/server/presets/common id = "Common Server" freq_listening = list() diff --git a/code/game/objects/items/devices/radio/encryptionkey.dm b/code/game/objects/items/devices/radio/encryptionkey.dm index 048b719bc53..fde473ff016 100644 --- a/code/game/objects/items/devices/radio/encryptionkey.dm +++ b/code/game/objects/items/devices/radio/encryptionkey.dm @@ -72,7 +72,7 @@ name = "Captain's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "cap_cypherkey" - channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0) + channels = list("Command" = 1, "Security" = 1, "Engineering" = 0, "Science" = 0, "Medical" = 0, "Supply" = 0, "Service" = 0) /obj/item/device/encryptionkey/heads/rd name = "Research Director's Encryption Key" @@ -102,7 +102,7 @@ name = "Head of Personnel's Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "hop_cypherkey" - channels = list("Supply" = 1, "Command" = 1, "Security" = 0) + channels = list("Supply" = 1, "Command" = 1, "Service" = 1, "Security" = 0) /* /obj/item/device/encryptionkey/headset_mine name = "Mining Radio Encryption Key" @@ -120,4 +120,10 @@ name = "Supply Radio Encryption Key" desc = "An encyption key for a radio headset. Contains cypherkeys." icon_state = "cargo_cypherkey" - channels = list("Supply" = 1) \ No newline at end of file + channels = list("Supply" = 1) + +/obj/item/device/encryptionkey/headset_service + name = "Service Radio Encryption Key" + desc = "An encyption key for a radio headset. Contains cypherkeys." + icon_state = "srv_cypherkey" + channels = list("Service" = 1) \ No newline at end of file diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index cf2a5cced33..af5c2fe4ce3 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -156,6 +156,13 @@ item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_cargo +/obj/item/device/radio/headset/headset_service + name = "service radio headset" + desc = "Headset used by the foodservice and entertainment staff. To access the service channel, use :q." + icon_state = "srv_headset" + item_state = "headset" + keyslot2 = new /obj/item/device/encryptionkey/headset_service + /obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob) // ..() user.set_machine(src) diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm index 8d08999cb9b..add810a65ee 100644 --- a/code/game/objects/items/devices/radio/radio.dm +++ b/code/game/objects/items/devices/radio/radio.dm @@ -473,8 +473,8 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use freq_text = "Engineering" if(SEC_FREQ) freq_text = "Security" -// if(1349) -// freq_text = "Mining" + if(1349) + freq_text = "Service" if(1347) freq_text = "Supply" //There's probably a way to use the list var of channels in code\game\communications.dm to make the dept channels non-hardcoded, but I wasn't in an experimentive mood. --NEO @@ -521,7 +521,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use if(1213) blackbox.msg_syndicate += blackbox_msg if(1349) - blackbox.msg_mining += blackbox_msg + blackbox.msg_service += blackbox_msg if(1347) blackbox.msg_cargo += blackbox_msg else diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index 4f12b17ef9d..cb42415eac0 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -14,6 +14,7 @@ var/list/department_radio_keys = list( ":a" = "alientalk", "#a" = "alientalk", ".a" = "alientalk", ":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate", ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", + ":q" = "Service", "#q" = "Service", ".q" = "Service", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", @@ -30,6 +31,7 @@ var/list/department_radio_keys = list( ":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk", ":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate", ":U" = "Supply", "#U" = "Supply", ".U" = "Supply", + ":Q" = "Service", "#Q" = "Service", ".Q" = "Service", ":G" = "changeling", "#G" = "changeling", ".G" = "changeling", //kinda localization -- rastaf0 diff --git a/code/modules/research/message_server.dm b/code/modules/research/message_server.dm index 3571d3a2244..24b807d4a30 100644 --- a/code/modules/research/message_server.dm +++ b/code/modules/research/message_server.dm @@ -191,7 +191,7 @@ var/obj/machinery/blackbox_recorder/blackbox var/list/msg_security = list() var/list/msg_deathsquad = list() var/list/msg_syndicate = list() - var/list/msg_mining = list() + var/list/msg_service = list() var/list/msg_cargo = list() var/list/datum/feedback_variable/feedback = new() @@ -216,7 +216,7 @@ var/obj/machinery/blackbox_recorder/blackbox BR.msg_security = msg_security BR.msg_deathsquad = msg_deathsquad BR.msg_syndicate = msg_syndicate - BR.msg_mining = msg_mining + BR.msg_service = msg_service BR.msg_cargo = msg_cargo BR.feedback = feedback BR.messages = messages @@ -257,7 +257,7 @@ var/obj/machinery/blackbox_recorder/blackbox feedback_add_details("radio_usage","SEC-[msg_security.len]") feedback_add_details("radio_usage","DTH-[msg_deathsquad.len]") feedback_add_details("radio_usage","SYN-[msg_syndicate.len]") - feedback_add_details("radio_usage","MIN-[msg_mining.len]") + feedback_add_details("radio_usage","SRV-[msg_service.len]") feedback_add_details("radio_usage","CAR-[msg_cargo.len]") feedback_add_details("radio_usage","OTH-[messages.len]") feedback_add_details("radio_usage","PDA-[pda_msg_amt]") diff --git a/code/modules/scripting/Implementations/Telecomms.dm b/code/modules/scripting/Implementations/Telecomms.dm index f88bbde0e3e..97632823ef8 100644 --- a/code/modules/scripting/Implementations/Telecomms.dm +++ b/code/modules/scripting/Implementations/Telecomms.dm @@ -84,6 +84,7 @@ interpreter.SetVar("$engineering",1357) interpreter.SetVar("$security", 1359) interpreter.SetVar("$supply", 1347) + interpreter.SetVar("$service", 1349) // Signal data From cef6bd2786ea2b96f2e3b5e1803e9d3c94db7f1d Mon Sep 17 00:00:00 2001 From: Malkevin Date: Tue, 14 May 2013 17:02:35 +0100 Subject: [PATCH 31/62] Better Mop and Cart love Slight tweak to the behavior of attacking the janicart with a mop. Changed it so that it stores the mop when it is soaked (or the bucket is empty), as I'm sure most players would prefer their mop to always be fully soaked when they remove it from the cart. Also changed the examine text from 'water' to 'liquid' as it was misleading. It can actually be filled with any reagent, even welder fuel...or acid... or blood... or dr.gibb...space lube... you get the picture. --- code/game/objects/structures/janicart.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index 330f5d5f57d..c67918ec0b6 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -23,7 +23,7 @@ /obj/structure/janitorialcart/examine() set src in usr - usr << "[src] \icon[src] contains [reagents.total_volume] unit\s of water!" + usr << "[src] \icon[src] contains [reagents.total_volume] unit\s of liquid!" ..() //everything else is visible, so doesn't need to be mentioned @@ -38,7 +38,7 @@ user << "You put [I] into [src]." else if(istype(I, /obj/item/weapon/mop)) - if(I.reagents.total_volume < 1) //if it's at all wet, we assume they want to store the mop. + if(I.reagents.total_volume < 5) //if it's not completely soaked we assume they want to wet it, otherwise store it if(reagents.total_volume < 1) user << "[src] is out of water!" else From 951ba1bedeb8df151342c81112bb05c6362e0bdc Mon Sep 17 00:00:00 2001 From: Malkevin Date: Tue, 14 May 2013 17:42:46 +0100 Subject: [PATCH 32/62] changed wetness check from constant to variable reference --- code/game/objects/structures/janicart.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/janicart.dm b/code/game/objects/structures/janicart.dm index c67918ec0b6..3f12b48d581 100644 --- a/code/game/objects/structures/janicart.dm +++ b/code/game/objects/structures/janicart.dm @@ -38,7 +38,7 @@ user << "You put [I] into [src]." else if(istype(I, /obj/item/weapon/mop)) - if(I.reagents.total_volume < 5) //if it's not completely soaked we assume they want to wet it, otherwise store it + if(I.reagents.total_volume < I.reagents.maximum_volume) //if it's not completely soaked we assume they want to wet it, otherwise store it if(reagents.total_volume < 1) user << "[src] is out of water!" else From 18d25a6bf56620128fbaf03f8cf8ca6d18611663 Mon Sep 17 00:00:00 2001 From: Cheridan Date: Tue, 14 May 2013 15:32:06 -0500 Subject: [PATCH 33/62] -Changes the channel hotkey from Q to V --- code/modules/mob/living/say.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/say.dm b/code/modules/mob/living/say.dm index cb42415eac0..2eda94c37f1 100644 --- a/code/modules/mob/living/say.dm +++ b/code/modules/mob/living/say.dm @@ -14,7 +14,7 @@ var/list/department_radio_keys = list( ":a" = "alientalk", "#a" = "alientalk", ".a" = "alientalk", ":t" = "Syndicate", "#t" = "Syndicate", ".t" = "Syndicate", ":u" = "Supply", "#u" = "Supply", ".u" = "Supply", - ":q" = "Service", "#q" = "Service", ".q" = "Service", + ":v" = "Service", "#v" = "Service", ".v" = "Service", ":g" = "changeling", "#g" = "changeling", ".g" = "changeling", ":R" = "right hand", "#R" = "right hand", ".R" = "right hand", @@ -31,7 +31,7 @@ var/list/department_radio_keys = list( ":A" = "alientalk", "#A" = "alientalk", ".A" = "alientalk", ":T" = "Syndicate", "#T" = "Syndicate", ".T" = "Syndicate", ":U" = "Supply", "#U" = "Supply", ".U" = "Supply", - ":Q" = "Service", "#Q" = "Service", ".Q" = "Service", + ":V" = "Service", "#V" = "Service", ".V" = "Service", ":G" = "changeling", "#G" = "changeling", ".G" = "changeling", //kinda localization -- rastaf0 From a7617f5c8a16cfbabcf424ffe9562598400f6f16 Mon Sep 17 00:00:00 2001 From: Tastyfish Date: Tue, 14 May 2013 18:23:08 -0400 Subject: [PATCH 34/62] revert out lazybots commit --- code/modules/mob/living/silicon/login.dm | 4 ---- code/modules/mob/living/silicon/robot/life.dm | 8 +++++++- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/code/modules/mob/living/silicon/login.dm b/code/modules/mob/living/silicon/login.dm index 719ee0728ea..32e0c8d3460 100644 --- a/code/modules/mob/living/silicon/login.dm +++ b/code/modules/mob/living/silicon/login.dm @@ -2,8 +2,4 @@ if(mind && ticker && ticker.mode) ticker.mode.remove_cultist(mind, 1) ticker.mode.remove_revolutionary(mind, 1) - - verbs -= /mob/living/verb/lay_down - verbs -= /mob/living/verb/mob_sleep - ..() \ No newline at end of file diff --git a/code/modules/mob/living/silicon/robot/life.dm b/code/modules/mob/living/silicon/robot/life.dm index e54265107cf..e25a987aadb 100644 --- a/code/modules/mob/living/silicon/robot/life.dm +++ b/code/modules/mob/living/silicon/robot/life.dm @@ -30,7 +30,6 @@ SetParalysis(min(paralysis, 30)) // SetWeakened(min(weakened, 20)) sleeping = 0 - resting = 0 adjustBruteLoss(0) adjustToxLoss(0) adjustOxyLoss(0) @@ -72,6 +71,13 @@ if(getOxyLoss() > 50) Paralyse(3) + if(src.sleeping) + Paralyse(3) + src.sleeping-- + + if(src.resting) + Weaken(5) + if(health < config.health_threshold_dead && src.stat != 2) //die only once death() From 6ae715a6cfceb7ab12276b89c3b3da57701aed23 Mon Sep 17 00:00:00 2001 From: Cheridan Date: Tue, 14 May 2013 21:59:26 -0500 Subject: [PATCH 35/62] -Updates the headset descriptions. --- code/game/objects/items/devices/radio/headset.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index af5c2fe4ce3..d91b6538d70 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -95,7 +95,7 @@ /obj/item/device/radio/headset/heads/captain name = "captain's headset" - desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :m - medical, :n - science." + desc = "The headset of the boss. Channels are as follows: :c - command, :s - security, :e - engineering, :u - supply, :v - service, :m - medical, :n - science." icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/captain @@ -130,7 +130,7 @@ /obj/item/device/radio/headset/heads/hop name = "head of personnel's headset" - desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :c - command, :s - security" + desc = "The headset of the guy who will one day be captain. Channels are as follows: :u - supply, :v - service, :c - command, :s - security" icon_state = "com_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/heads/hop @@ -158,7 +158,7 @@ /obj/item/device/radio/headset/headset_service name = "service radio headset" - desc = "Headset used by the foodservice and entertainment staff. To access the service channel, use :q." + desc = "Headset used by the foodservice staff, tasked with keeping the station full and happy. To access the service channel, use :v." icon_state = "srv_headset" item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_service From d1f896ddbd80d5ccd0e538f656f785a416acf2f0 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Tue, 14 May 2013 22:29:38 -0600 Subject: [PATCH 36/62] [MAP] Fixed batons in the thunderdome not having a cell. --- maps/tgstation.2.1.2.dmm | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/maps/tgstation.2.1.2.dmm b/maps/tgstation.2.1.2.dmm index d5b2ffecb43..7700dbc4b06 100644 --- a/maps/tgstation.2.1.2.dmm +++ b/maps/tgstation.2.1.2.dmm @@ -166,8 +166,8 @@ "adj" = (/obj/structure/grille,/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/plating,/area/shuttle/escape_pod3/station) "adk" = (/obj/structure/closet/secure_closet/injection,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) "adl" = (/obj/structure/table,/obj/item/weapon/storage/box/bodybags,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "dark"},/area/security/prison) -"adm" = (/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/device/assembly/signaler,/obj/item/weapon/storage/box/prisoner,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/security/prison) -"adn" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/security/prison) +"adm" = (/obj/structure/table,/obj/item/clothing/suit/straight_jacket,/obj/item/clothing/glasses/sunglasses/blindfold,/obj/item/clothing/mask/muzzle,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/security/prison) +"adn" = (/obj/structure/table,/obj/item/device/radio/electropack,/obj/item/device/assembly/signaler,/obj/item/weapon/storage/box/prisoner,/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/security/prison) "ado" = (/obj/structure/table,/obj/machinery/atmospherics/unary/vent_scrubber{dir = 1; on = 1; scrub_N2O = 0; scrub_Toxins = 0},/obj/item/weapon/razor{pixel_x = -6},/obj/item/stack/medical/ointment{pixel_y = 4},/obj/item/stack/medical/bruise_pack{pixel_x = 10; pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/inaprovaline{pixel_x = 5; pixel_y = -2},/turf/simulated/floor{icon_state = "whitehall"; dir = 1},/area/security/prison) "adp" = (/obj/structure/closet/secure_closet/brig{anchored = 1},/turf/simulated/floor{icon_state = "red"; dir = 1},/area/security/prison) "adq" = (/obj/machinery/door/firedoor/border_only,/obj/machinery/door/airlock/glass_security{name = "Prison Wing"; req_access_txt = "2"},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"},/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,/turf/simulated/floor{icon_state = "red"; dir = 9},/area/security/prison) @@ -6404,14 +6404,14 @@ "cth" = (/turf/unsimulated/floor{dir = 8; icon_state = "carpetside"},/area/wizard_station) "cti" = (/obj/effect/landmark/start{name = "wizard"},/turf/unsimulated/floor{icon_state = "carpet"; dir = 2},/area/wizard_station) "ctj" = (/turf/unsimulated/floor{dir = 4; icon_state = "carpetside"},/area/wizard_station) -"ctk" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"ctk" = (/obj/structure/rack,/obj/item/clothing/under/color/red,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/red,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/red,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "ctl" = (/obj/machinery/door/poddoor{id = "thunderdomegen"; name = "General Supply"},/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "ctm" = (/obj/effect/landmark{name = "tdome2"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome2) "ctn" = (/obj/machinery/door/poddoor{id = "thunderdome"; name = "Thunderdome Blast Door"},/turf/unsimulated/floor{name = "plating"},/area/tdome) "cto" = (/turf/simulated/floor{icon_state = "red"; dir = 8},/area/tdome) "ctp" = (/turf/simulated/floor{icon_state = "green"; dir = 4},/area/tdome) "ctq" = (/obj/effect/landmark{name = "tdome1"},/turf/unsimulated/floor{name = "plating"},/area/tdome/tdome1) -"ctr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) +"ctr" = (/obj/structure/rack,/obj/item/clothing/under/color/green,/obj/item/clothing/shoes/brown,/obj/item/clothing/suit/armor/tdome/green,/obj/item/clothing/head/helmet/thunderdome,/obj/item/weapon/melee/baton/loaded,/obj/item/weapon/melee/energy/sword/green,/turf/unsimulated/floor{icon_state = "dark"},/area/tdome) "cts" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "ctt" = (/obj/machinery/door/window{dir = 4; name = "Infirmary"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) "ctu" = (/obj/machinery/door/window/westright{name = "Tool Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/syndicate_station/start) @@ -8066,7 +8066,7 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiaaSabJaaOaaQaaSabKaaQaaSaaSabLaaQaaOaaOaaVabMabNabOabPabQabRabSabTaaVabUabVabWabGabXaaWabYabZabtacaabuabtabtacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacbaccacdaceacfacgachaciacjacgackaclacmacnaaVacoacpacqacqacrabSabSacsaaVactacuacvabGacwaaWacxacyaczabtacAacBacCacCacDaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaafacEacFacGacHacIacJacKacLacMacMacNacOacPacQaaVacoacoacRacSacTacUacUacVaaVacWacXacYacZadaaaWadbadcaddadeadfadgadhadiadjaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadkadlaaOadnadmadoaaOadpadpadpaaOadqadraaVadsadsadtaduadvadwaaVadxaaVadyaaWadzaaWadAaaWadBadcadCabtadDadEacCacCadFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaiadkadlaaOadmadnadoaaOadpadpadpaaOadqadraaVadsadsadtaduadvadwaaVadxaaVadyaaWadzaaWadAaaWadBadcadCabtadDadEacCacCadFaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaiaaiaaiaaiaaiaaiaaOaaOaaOaaOaaOaaOadGadHaaVadIadJadKadLadMadNaaVadOadPadQadRadSadTadUadVadWadXabtacaabtabtabtacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaafaaaaaaaafaaaadYadZadZadZaeaaebaecaedaeeaefaegaehaeiaejaekaelaemaenaeoaepaeoaeqaeraesaetaeuaevaewaexaeyaeyaezaeAaeAaeAaeAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaafaafaaaaaaaafaaaaeBaeCaeDaeEaeFaeGaecaedaeHaeIaeJaeKaeLaeMaeKaeNaeOaePaeQaeRaeSaeTaeUaeVaeWaeXaeYabtabtaeZaeZafaaeyafbafcaeAaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa @@ -9534,4 +9534,3 @@ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa "} - From 1273a75ceb7a42d2888df9303f27bbd12be8b8fb Mon Sep 17 00:00:00 2001 From: Yvar Date: Wed, 15 May 2013 21:23:40 +1000 Subject: [PATCH 37/62] Wholesale A-star replacement I wish I'd just been able to update the original version, but something kept going wrong. This version creates paths of identical lengths (not necessarily the same paths!) while evaluating, on average, only 35% of the tiles that the original algorithm would. Seems like a decent improvement. Also fixes some grammar in the mulebot file. --- code/defines/procs/AStar.dm | 323 +++++++++++++--------------- code/game/machinery/bots/mulebot.dm | 8 +- 2 files changed, 155 insertions(+), 176 deletions(-) diff --git a/code/defines/procs/AStar.dm b/code/defines/procs/AStar.dm index 0af47ba12c6..04a6180750c 100644 --- a/code/defines/procs/AStar.dm +++ b/code/defines/procs/AStar.dm @@ -1,185 +1,164 @@ -//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:31 +priorityqueue + var/pathnode/nodes[] //list of pathnodes, sorted descending by f_score + New() + nodes = new() -/* -A Star pathfinding algorithm -Returns a list of tiles forming a path from A to B, taking dense objects as well as walls, and the orientation of -windows along the route into account. -Use: -your_list = AStar(start location, end location, adjacent turf proc, distance proc) -For the adjacent turf proc i wrote: +priorityqueue/proc/insert(pathnode/n) + if (!nodes.len) + nodes.Add(n) + else + //linear search - slower than binary but guaranteed to work! + var/pos = nodes.len + while (pos > 0 && compare(n,nodes[pos]) > 0) + pos-- + nodes.Insert(pos+1,n) + +priorityqueue/proc/extract_last() + var/pathnode/t = nodes[nodes.len] + nodes.Cut(nodes.len) + return t + +priorityqueue/proc/compare(pathnode/a, pathnode/b) + return (a.f_score - b.f_score) + +pathnode + var/turf/me //turf + var/pathnode/parent //pathnode this turf was discovered from + var/f_score //total path-length of this turf + var/g_score //length of path to this turf + + New(m,p,f,g) + me = m + parent = p + f_score = f + g_score = g + +/******************** +/A* pathfinding algorithm +/This version updated May 2013 by Yvarov +/Returns a list of turfs along the discovered path, in order from start to finish. +/ +/A* is more complex than can be easily explained here, but basically +/it checks tiles, assigning a score f = g + h where +/g = distance from start & h = minimum distance to end, and repeats with +/new tiles starting with the smallest f_score. It's capable of finding +/a path (assuming one exists), without getting stuck in wrong turns or +/unnecessarily checking unpromising tiles. +/ +/The syntax for calling remains roughly the same as the version this replaces, +/minus two arguments (ones that were never given by any of +/the procs that called it anyway). + +Possible procs to use for adjacency (there may be others): /turf/proc/AdjacentTurfs -And for the distance one i wrote: -/turf/proc/Distance -So an example use might be: +/turf/proc/AdjacentTurfsSpace +/turf/proc/CardinalTurfsWithAccess (best for most occasions, four-directional) -src.path_list = AStar(src.loc, target.loc, /turf/proc/AdjacentTurfs, /turf/proc/Distance) +Possible procs to use for adjacency: +/turf/proc/Distance_cardinal (requires four-directional adjacency proc) +/turf/proc/Distance (requires eight-directional adjacency proc) -Note: The path is returned starting at the END node, so i wrote reverselist to reverse it for ease of use. +Arguments: +/turf/start_turf: The turf to start the path from. +/turf/dest_turf: The turf to finish the path on. +adjacent_proc: The proc used to find adjacent tiles. When called, id is provided as an argument. + For the best path to be found, it must only output tiles that could be reached in + one move AND aren't occupied by something else, like a wall. +distance_proc: Formula to use for calculating distance. +maxnodes: Not used. Maximum number of nodes to examine; values for it were never provided. + To avoid an (unlikely) infinite loop, a cutoff occurs at somewhat less than it took + the old algorithm to path across the station. +max_length: If the path is longer, return only this many elements of it (starting from the front). + It can only be shortened after finding the whole path, so doesn't save any time, + but as different values were provided throughout the code it's kept for compatibility. +id: Supplied to the adjacency proc for doors/etc. Default is null. +/var/turf/exclude: Turfs to avoid when finding a path. Default is null. -src.path_list = reverselist(src.pathlist) +Nodes not kept at all from previous version (which were never supplied): +"Mintargetdist: Minimum distance to the target before path returns, could be used to get +near a target, but not right to it - for an AI mob with a gun, for example." +"Minnodedist: Minimum number of nodes to return in the path, could be used to give a path a minimum +length to avoid portals or something i guess?? Not that they're counted right now but w/e." +*********************/ +proc/AStar(turf/start_turf, turf/dest_turf, adjacent_proc, distance_proc, maxnodes, max_length, id=null, var/turf/exclude=null) + set background=1 //don't hog the CPU + var/const/DEPTH_BIAS = 0.5 //preference of discovered paths. decrease with extreme caution and don't set >1! + //var/evaluations = 0 //Total number of tiles examined, including discards and duplicates. Used for debugging + var/lpct = 0 //Loop counter - turfs properly examined. Debugging and infinite loop prevention. + var/pathnode/checked[] = new() //list of pathnodes already examined + var/priorityqueue/pq = new /priorityqueue() //list of pathnodes not yet examined, sorted descending by f_score + var/pathnode/current //current pathnode being examined + var/next_g //calculated g_score of a potential turf + var/next_f //calculated f_score of a potential turf + var/skip //used for internal logic branching, don't touch. + var/pathnode/temp //temporary pathnode used for comparison, don't touch. -Then to start on the path, all you need to do it: -Step_to(src, src.path_list[1]) -src.path_list -= src.path_list[1] or equivilent to remove that node from the list. + //sanity check to avoid a huge waste of CPU time on impossible tasks + for(var/obj/O in dest_turf) + if(O.density && !istype(O, /obj/machinery/door) && !(O.flags & ON_BORDER)) + var/list/path = new //something is blocking the destination + return path -Optional extras to add on (in order): -MaxNodes: The maximum number of nodes the returned path can be (0 = infinite) -Maxnodedepth: The maximum number of nodes to search (default: 30, 0 = infinite) -Mintargetdist: Minimum distance to the target before path returns, could be used to get -near a target, but not right to it - for an AI mob with a gun, for example. -Minnodedist: Minimum number of nodes to return in the path, could be used to give a path a minimum -length to avoid portals or something i guess?? Not that they're counted right now but w/e. -*/ + pq.insert(new /pathnode(start_turf, null, call(start_turf,distance_proc)(dest_turf),0)) //add the starting turf and manhattan distance to the queue! -// Modified to provide ID argument - supplied to 'adjacent' proc, defaults to null -// Used for checking if route exists through a door which can be opened + while (!pq.nodes.len || lpct < 1500) //maximum for DEPTH_BIAS=0.5 is 958 loops to Research Division (originally 2743) + lpct++ + current = pq.extract_last() + checked.Add(current) -// Also added 'exclude' turf to avoid travelling over; defaults to null + if (!current) //no more possibilities, or an unhandled error + //world << "Impossible path" + var/list/path = new //returning 0 will get runtime errors + return path //FAILURE + if (current.me == dest_turf) //reached the destination + var/list/path = new() + path.Add(current.me) + while (current.parent) //recreate path by looping through parents + current = current.parent + path.Add(current.me) + //world << "Path found! ([path.len] steps, [lpct] loops, [evaluations] evaluations)" -PriorityQueue - var/L[] - var/cmp - New(compare) - L = new() - cmp = compare - proc - IsEmpty() - return !L.len - Enqueue(d) - var/i - var/j - L.Add(d) - i = L.len - j = i>>1 - while(i > 1 && call(cmp)(L[j],L[i]) > 0) - L.Swap(i,j) - i = j - j >>= 1 - - Dequeue() - if(!L.len) return 0 - . = L[1] - Remove(1) - - Remove(i) - if(i > L.len) return 0 - L.Swap(i,L.len) - L.Cut(L.len) - if(i < L.len) - _Fix(i) - _Fix(i) - var/child = i + i - var/item = L[i] - while(child <= L.len) - if(child + 1 <= L.len && call(cmp)(L[child],L[child + 1]) > 0) - child++ - if(call(cmp)(item,L[child]) > 0) - L[i] = L[child] - i = child - else - break - child = i + i - L[i] = item - List() - var/ret[] = new() - var/copy = L.Copy() - while(!IsEmpty()) - ret.Add(Dequeue()) - L = copy - return ret - RemoveItem(i) - var/ind = L.Find(i) - if(ind) - Remove(ind) -PathNode - var/datum/source - var/PathNode/prevNode - var/f - var/g - var/h - var/nt // Nodes traversed - New(s,p,pg,ph,pnt) - source = s - prevNode = p - g = pg - h = ph - f = g + h - source.bestF = f - nt = pnt - -datum - var/bestF -proc - PathWeightCompare(PathNode/a, PathNode/b) - return a.f - b.f - - AStar(start,end,adjacent,dist,maxnodes,maxnodedepth = 30,mintargetdist,minnodedist,id=null, var/turf/exclude=null) - -// world << "A*: [start] [end] [adjacent] [dist] [maxnodes] [maxnodedepth] [mintargetdist], [minnodedist] [id]" - var/PriorityQueue/open = new /PriorityQueue(/proc/PathWeightCompare) - var/closed[] = new() - var/path[] - start = get_turf(start) - if(!start) return 0 - - open.Enqueue(new /PathNode(start,null,0,call(start,dist)(end))) - - while(!open.IsEmpty() && !path) - { - var/PathNode/cur = open.Dequeue() - closed.Add(cur.source) - - var/closeenough - if(mintargetdist) - closeenough = call(cur.source,dist)(end) <= mintargetdist - - if(cur.source == end || closeenough) - path = new() - path.Add(cur.source) - while(cur.prevNode) - cur = cur.prevNode - path.Add(cur.source) - break - - var/L[] = call(cur.source,adjacent)(id) - if(minnodedist && maxnodedepth) - if(call(cur.source,minnodedist)(end) + cur.nt >= maxnodedepth) - continue - else if(maxnodedepth) - if(cur.nt >= maxnodedepth) - continue - - for(var/datum/d in L) - if(d == exclude) - continue - var/ng = cur.g + call(cur.source,dist)(d) - if(d.bestF) - if(ng + call(d,dist)(end) < d.bestF) - for(var/i = 1; i <= open.L.len; i++) - var/PathNode/n = open.L[i] - if(n.source == d) - open.Remove(i) - break - else - continue - - open.Enqueue(new /PathNode(d,cur,ng,call(d,dist)(end),cur.nt+1)) - if(maxnodes && open.L.len > maxnodes) - open.L.Cut(open.L.len) - } - - var/PathNode/temp - while(!open.IsEmpty()) - temp = open.Dequeue() - temp.source.bestF = 0 - while(closed.len) - temp = closed[closed.len] - temp.bestF = 0 - closed.Cut(closed.len) - - if(path) - for(var/i = 1; i <= path.len/2; i++) + for(var/i = 1; i <= path.len/2; i++) //reverse path path.Swap(i,path.len-i+1) - return path + if (path.len > max_length) //Truncate list at max_length (if necessary) + path.Cut(max_length,0) + return path //SUCCESS + + next_g = current.g_score + DEPTH_BIAS + var/adjacent = call(current.me,adjacent_proc)(id) + for (var/next_turf in adjacent) + //evaluations++ + if (next_turf == exclude) + continue + skip = 0 + next_f = next_g + call(next_turf,distance_proc)(dest_turf) + var/i = 0 + while ( i < checked.len && !skip) + i++ + temp = checked[i] + if (temp.me == next_turf) //if this turf has already been checked + skip = 1 + if (temp.f_score > next_f) //BUT the current path to it is better + checked[i] = new /pathnode(next_turf, current, next_f, next_g) + //then update it + if (!skip) //if it hasn't been checked + i = 0 + while (i < pq.nodes.len && !skip) + i++ + temp = pq.nodes[i] + if (temp.me == next_turf) //if this turf was already on the openlist + if (temp.f_score > next_f) //BUT the current path to it is better + pq.nodes.Cut(i,i+1) //then remove it + skip = 2 + else + skip = 1 //otherwise leave it and don't add this version + if (!(skip % 2)) + pq.insert(new /pathnode(next_turf, current, next_f, next_g)) + + + //world << "Didn't find a path within [evaluations] evaluations and [lpct] loops." + var/list/path = new //prevents runtime errors + return path //FAILURE + //This return should only be reached if the path is too long, and the while loop gives up. diff --git a/code/game/machinery/bots/mulebot.dm b/code/game/machinery/bots/mulebot.dm index 8f56a805db5..cecbf903b3e 100644 --- a/code/game/machinery/bots/mulebot.dm +++ b/code/game/machinery/bots/mulebot.dm @@ -201,7 +201,7 @@ var/global/mulebot_count = 0 if(5,6) dat += "Calculating navigation path" if(7) - dat += "Unable to locate destination" + dat += "Unable to reach destination" dat += "" dat += "Current Load: [load ? load.name : "none"]
    " @@ -225,7 +225,7 @@ var/global/mulebot_count = 0 if(load) dat += "
    Unload Now
    " - dat += "
    The maintenance hatch is closed
    " + dat += "
    The maintenance hatch is closed.
    " else if(!ai) @@ -590,7 +590,7 @@ var/global/mulebot_count = 0 blockcount++ mode = 4 if(blockcount == 3) - src.visible_message("[src] makes an annoyed buzzing sound", "You hear an electronic buzzing sound.") + src.visible_message("[src] makes an annoyed buzzing sound.", "You hear an electronic buzzing sound.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0) if(blockcount > 5) // attempt 5 times before recomputing @@ -608,7 +608,7 @@ var/global/mulebot_count = 0 return return else - src.visible_message("[src] makes an annoyed buzzing sound", "You hear an electronic buzzing sound.") + src.visible_message("[src] makes an annoyed buzzing sound.", "You hear an electronic buzzing sound.") playsound(src.loc, 'sound/machines/buzz-two.ogg', 50, 0) //world << "Bad turf." mode = 5 From 514ca15100cb1f48ed158d058d9e95b901d62af0 Mon Sep 17 00:00:00 2001 From: supersayu Date: Wed, 15 May 2013 13:20:16 -0400 Subject: [PATCH 38/62] Missed an exception for a door that does not have a glass doortype --- code/game/gamemodes/sandbox/airlock_maker.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/gamemodes/sandbox/airlock_maker.dm b/code/game/gamemodes/sandbox/airlock_maker.dm index 96854aa76d1..adde1d030f2 100644 --- a/code/game/gamemodes/sandbox/airlock_maker.dm +++ b/code/game/gamemodes/sandbox/airlock_maker.dm @@ -104,7 +104,7 @@ datum/airlock_maker var/target_type = "/obj/machinery/door/airlock" if(glassdoor) if(paintjob != "none") - if(paintjob in list("external","highsecurity")) // no glass version + if(paintjob in list("external","highsecurity","maintenance")) // no glass version target_type += "/[paintjob]" else target_type += "/glass_[paintjob]" From e8a7e462e5b8ccebfd04798d940a3c88e253f042 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Wed, 15 May 2013 15:31:43 -0500 Subject: [PATCH 39/62] Reverted throwforce changes --- code/game/objects/items/stacks/sheets/glass.dm | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm index d2883467f9f..ccb90f45339 100644 --- a/code/game/objects/items/stacks/sheets/glass.dm +++ b/code/game/objects/items/stacks/sheets/glass.dm @@ -231,12 +231,16 @@ /* * Glass shards - TODO: Move this into code/game/object/item/weapons */ -/obj/item/weapon/shard/pickup() +/obj/item/weapon/shard/Bump() - if (prob(20)) - src.throwforce = 15 - else - src.throwforce = 4 + spawn( 0 ) + if (prob(20)) + src.force = 15 + else + src.force = 4 + ..() + return + return /obj/item/weapon/shard/New() @@ -298,4 +302,4 @@ H.UpdateDamageIcon(0) else user << "\The [src] cuts into your hand!" - user.take_organ_damage(force/2) \ No newline at end of file + user.take_organ_damage(force/2) From c52efbb9eacb2190ddf44770b640440858d85f46 Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Wed, 15 May 2013 15:51:52 -0500 Subject: [PATCH 40/62] Updated Changelog (again) --- html/changelog.html | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 14825d595ec..29e64e5c51e 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -48,8 +48,9 @@ Stuff which is in development and not yet visible to players or just code relate should be listed in the changelog upon commit tho. Thanks. --> - - + + +

    11 May 2013

    Malkevin updated:

    @@ -62,9 +63,9 @@ should be listed in the changelog upon commit tho. Thanks. -->

    7 May 2013

    Ikarrus updated:

      -
    • Raised damage dealt by toolboxes, reduced damage dealt by fire extinguishers.
    • +
    • As a part of the most recent round of budget cuts, toolboxes will now be made with a cheaper but heavier alloy. HR reminds employees to avoid being struck with toolboxes, as any toolbox-related injuries are not covered under the general enployee health plan.
    -
    +

    5 May 2013

    @@ -72,7 +73,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
    • Cargo manifests from CentComm may contain errors. Stamp them DENIED for refunds. Doesn't apply to secure or large crates. Check the orders console for CentComm feedback.
    -
    +

    2 May 2013

    @@ -83,7 +84,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Made grey backpacks slightly less ugly
  • - +

    24 April 2013

    @@ -137,7 +138,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • Stun batons/prods now work off power cells, which can be removed and replaced! Use a screwdriver to remove the battery.
  • - +

    17 April 2013

    @@ -146,7 +147,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • If the configuration option is enabled, AIs and or Cyborgs will not be able to communicate vocally. This means they cannot talk normally and need to use alternative methods to do so
  • - +

    10 April 2013

    @@ -159,7 +160,7 @@ should be listed in the changelog upon commit tho. Thanks. -->
  • NT bluespace engineers have ironed-out that little issue with the teleporter occasionally malfunctioning and dropping users into deep space. Please note, however, that bluespace teleporters are still sensitive experimental technology, and should be Test Fired before use to ensure proper function.
  • - +

    9 April 2013

    @@ -2729,4 +2730,4 @@ should be listed in the changelog upon commit tho. Thanks. -->

    Some icons by Yusuke Kamiyamane. All rights reserved. Licensed under a Creative Commons Attribution 3.0 License.

    - + From b27321b6e2380fa7f41e47e90398b474c3747a9a Mon Sep 17 00:00:00 2001 From: Ikarrus Date: Wed, 15 May 2013 15:53:36 -0500 Subject: [PATCH 41/62] Update changelog.html --- html/changelog.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index 29e64e5c51e..3c2c59e58af 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -63,7 +63,7 @@ should be listed in the changelog upon commit tho. Thanks. -->

    7 May 2013

    Ikarrus updated:

      -
    • As a part of the most recent round of budget cuts, toolboxes will now be made with a cheaper but heavier alloy. HR reminds employees to avoid being struck with toolboxes, as any toolbox-related injuries are not covered under the general enployee health plan.
    • +
    • As a part of the most recent round of budget cuts, toolboxes will now be made with a cheaper but heavier alloy. HR reminds employees to avoid being struck with toolboxes, as toolbox-related injuries are not covered under the company's standard health plan.
    From 3443ee23190b3cd9f22ec0a3035f99bfc15b0681 Mon Sep 17 00:00:00 2001 From: Yvar Date: Thu, 16 May 2013 20:40:01 +1000 Subject: [PATCH 42/62] A-star fixes Will obey the maxnodes parameter if it's provided (although perhaps not in the way that it was originally meant?) The only one that uses it is disease, and it wasn't an issue there, but at least in future it won't be a problem. Also slightly increased the maximum loop count from 1500 to 1800, on the off-chance that the previous value was pessimistically low. In the initial station this doesn't go past 1000, but if bots understand doors their paths might get squiggly. --- code/defines/procs/AStar.dm | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/code/defines/procs/AStar.dm b/code/defines/procs/AStar.dm index 04a6180750c..b18366dfed4 100644 --- a/code/defines/procs/AStar.dm +++ b/code/defines/procs/AStar.dm @@ -65,9 +65,9 @@ adjacent_proc: The proc used to find adjacent tiles. When called, id is provide For the best path to be found, it must only output tiles that could be reached in one move AND aren't occupied by something else, like a wall. distance_proc: Formula to use for calculating distance. -maxnodes: Not used. Maximum number of nodes to examine; values for it were never provided. - To avoid an (unlikely) infinite loop, a cutoff occurs at somewhat less than it took - the old algorithm to path across the station. +maxnodes: Maximum _depth_ of nodes to examine; currently used only by disease. + Not equal to the number of nodes to examine (lpct, internal) or the maximum path + length returned (max_length below). max_length: If the path is longer, return only this many elements of it (starting from the front). It can only be shortened after finding the whole path, so doesn't save any time, but as different values were provided throughout the code it's kept for compatibility. @@ -95,17 +95,21 @@ proc/AStar(turf/start_turf, turf/dest_turf, adjacent_proc, distance_proc, maxnod //sanity check to avoid a huge waste of CPU time on impossible tasks for(var/obj/O in dest_turf) - if(O.density && !istype(O, /obj/machinery/door) && !(O.flags & ON_BORDER)) + if (O.density && (!istype(O, /obj/machinery/door) || !(O.flags & ON_BORDER))) var/list/path = new //something is blocking the destination return path pq.insert(new /pathnode(start_turf, null, call(start_turf,distance_proc)(dest_turf),0)) //add the starting turf and manhattan distance to the queue! - while (!pq.nodes.len || lpct < 1500) //maximum for DEPTH_BIAS=0.5 is 958 loops to Research Division (originally 2743) - lpct++ + for (lpct = 0; lpct < 1800; lpct++) //maximum for DEPTH_BIAS=0.5 is 958 loops to Research Division (originally 2743) + if (!pq.nodes.len) break + current = pq.extract_last() checked.Add(current) + next_g = current.g_score + DEPTH_BIAS + //if (maxnodes && next_g > (maxnodes*DEPTH_BIAS)) continue + if (!current) //no more possibilities, or an unhandled error //world << "Impossible path" var/list/path = new //returning 0 will get runtime errors @@ -126,7 +130,6 @@ proc/AStar(turf/start_turf, turf/dest_turf, adjacent_proc, distance_proc, maxnod path.Cut(max_length,0) return path //SUCCESS - next_g = current.g_score + DEPTH_BIAS var/adjacent = call(current.me,adjacent_proc)(id) for (var/next_turf in adjacent) //evaluations++ From 4ca036543c7ca9d2880a74130d2f60b0498e9a6a Mon Sep 17 00:00:00 2001 From: Cheridan Date: Thu, 16 May 2013 15:16:21 -0500 Subject: [PATCH 43/62] -Updates DJ station infosheet. -Adds service headsets to barman/botanist closets (chef doesn't get one for now since he doesn't have a closet, all his spare stuff is just placed in a crate) --- code/game/jobs/job/civilian.dm | 6 +++--- code/game/objects/items/devices/radio/headset.dm | 2 +- .../structures/crates_lockers/closets/job_closets.dm | 2 ++ .../structures/crates_lockers/closets/secure/hydroponics.dm | 1 + code/modules/paperwork/paper.dm | 2 +- 5 files changed, 8 insertions(+), 5 deletions(-) diff --git a/code/game/jobs/job/civilian.dm b/code/game/jobs/job/civilian.dm index b407cfaf904..5f2c56d9b4e 100644 --- a/code/game/jobs/job/civilian.dm +++ b/code/game/jobs/job/civilian.dm @@ -16,7 +16,7 @@ if(!H) return 0 if(H.backbag == 2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back) if(H.backbag == 3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back) - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_srv(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/bartender(H), slot_w_uniform) @@ -55,7 +55,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_srv(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/chef(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/suit/chef(H), slot_wear_suit) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) @@ -80,7 +80,7 @@ equip(var/mob/living/carbon/human/H) if(!H) return 0 - H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_service(H), slot_ears) + H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_srv(H), slot_ears) H.equip_to_slot_or_del(new /obj/item/clothing/under/rank/hydroponics(H), slot_w_uniform) H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes) H.equip_to_slot_or_del(new /obj/item/clothing/gloves/botanic_leather(H), slot_gloves) diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index d91b6538d70..c9adef0d22d 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -156,7 +156,7 @@ item_state = "headset" keyslot2 = new /obj/item/device/encryptionkey/headset_cargo -/obj/item/device/radio/headset/headset_service +/obj/item/device/radio/headset/headset_srv name = "service radio headset" desc = "Headset used by the foodservice staff, tasked with keeping the station full and happy. To access the service channel, use :v." icon_state = "srv_headset" diff --git a/code/game/objects/structures/crates_lockers/closets/job_closets.dm b/code/game/objects/structures/crates_lockers/closets/job_closets.dm index 9ca47e845f9..37f3623c35c 100644 --- a/code/game/objects/structures/crates_lockers/closets/job_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/job_closets.dm @@ -18,6 +18,8 @@ ..() sleep(2) new /obj/item/clothing/head/that(src) + new /obj/item/device/radio/headset/headset_srv(src) + new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/clothing/head/that(src) new /obj/item/clothing/under/sl_suit(src) new /obj/item/clothing/under/sl_suit(src) diff --git a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm index 9568e0eab1c..32d7ace167f 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/hydroponics.dm @@ -20,6 +20,7 @@ new /obj/item/weapon/storage/bag/plants/portaseeder(src) new /obj/item/clothing/under/rank/hydroponics(src) new /obj/item/device/analyzer/plant_analyzer(src) + new /obj/item/device/radio/headset/headset_srv(src) new /obj/item/clothing/head/greenbandana(src) new /obj/item/weapon/minihoe(src) new /obj/item/weapon/hatchet(src) diff --git a/code/modules/paperwork/paper.dm b/code/modules/paperwork/paper.dm index b2495c0f730..c97fa96e0fe 100644 --- a/code/modules/paperwork/paper.dm +++ b/code/modules/paperwork/paper.dm @@ -323,7 +323,7 @@ /obj/item/weapon/paper/djstation name = "paper - 'DJ Listening Outpost'" - info = "Welcome new owner!

    You have purchased the latest in listening equipment. The telecommunication setup we created is the best in listening to common and private radio fequencies. Here is a step by step guide to start listening in on those saucy radio channels:
    1. Equip yourself with a multi-tool
    2. Use the multitool on each machine, that is the broadcaster, receiver and the relay.
    3. Turn all the machines on, it has already been configured for you to listen on.
    Simple as that. Now to listen to the private channels, you'll have to configure the intercoms, located on the front desk. Here is a list of frequencies for you to listen on.